2017-06-08 2 views
-1

J'utilise la version C++ de tensorflow et ont construit 'tensorflow pour Android' avec succès en utilisant en dessous de commande 'Bazel construire opt -c // tensorflow/examples/android: tensorflow_demo' comme décrit dans https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#bazeltensorflow Code Convolution Optimisation

J'essaie d'optimiser le code de convolution. Voici les problèmes rencontrés

  1. Impossible de trouver l'emplacement exact du code de convolution. je suis capable de déboguer le code ci-dessous jusqu'à ce que la fonction dans

« retour choisir ( Cond(), kernel.reshape (kernel_dims) .contract (entrée .extract_image_patches ( kernelRows, kernelCols, row_stride, col_stride, row_in_stride, col_in_stride, padding_type) .reshape (pre_contract_dims), contract_dims) .reshape (post_contract_dims), entrée .extract_image_patches (kernelRows, kernelCols, row_stride, col_stride, row_in_stride, col_in_s tride, padding_type) .reshape (pre_contract_dims) .contract (kernel.reshape (noyaux_dimensions), contract_dims) .reshape (post_contract_dims)); '

comme présent dans https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/eigen_spatial_convolutions.h

J'ai quelques questions liées à la fonction ci-dessus.

1.1 La fonction ci-dessus exécute-t-elle vraiment la convolution? Si oui, où est le code?

1.2 La contraction (fonction contractuelle) est-elle la même que la convolution? Si la convolution et la contraction sont identiques, pourquoi l'opération de contrat est-elle effectuée à la fois sur la matrice d'entrée et sur la matrice de noyau?

1.3 Où sont les définitions des fonctions - choisir, refaçonner, contracter, extraire des patches d'image, etc.?

2.Unable pour extraire des données (matrices) à partir de l'entrée et de la matrice du noyau est .Cet en référence à la même page dans la liaison au-dessus de

2.1 J'ai trouvé une ligne de crénage (kernel) » code; ' à la ligne 946 dans la page ci-dessus. Puis-je connaître la définition d'emplacement de la fonction ci-dessus? 2.2 Je ne parviens pas à extraire les matrices d'entrée et de noyau des tenseurs 4d (entrée et noyau) correspondants sous la forme d'un tableau flottant, car j'aimerais essayer d'optimiser le code de convolution en utilisant un traitement parallèle. Je n'ai trouvé aucune méthode pour convertir les matrices de tenseurs du Tenseur 4D en un tableau.

S'il vous plaît me aider à répondre aux questions ci-dessus

Répondre

0

Sa cueillette des fichiers eigen tensorflow du cache du chemin Linux.My était /.cache/bazel/_bazel_ashok/c54b442ed4139c7d8ad47f330eb538d6/external/eigen_archive