flux tensoriel : : opérations : : Conv2D

#include <nn_ops.h>

Calcule une convolution 2D à partir des tenseurs input et filter 4D.

Résumé

Étant donné un tenseur d'entrée de forme [batch, in_height, in_width, in_channels] et un tenseur de filtre/noyau de forme [filter_height, filter_width, in_channels, out_channels] , cette opération effectue les opérations suivantes :

  1. Aplatit le filtre en une matrice 2D avec la forme [filter_height * filter_width * in_channels, output_channels] .
  2. Extrait les patchs d'image du tenseur d'entrée pour former un tenseur virtuel de forme [batch, out_height, out_width, filter_height * filter_width * in_channels] .
  3. Pour chaque patch, multiplie à droite la matrice de filtre et le vecteur de patch d'image.

Dans le détail, avec le format NHWC par défaut,

output[b, i, j, k] =
    sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *
                    filter[di, dj, q, k]

Doit avoir strides[0] = strides[3] = 1 . Pour le cas le plus courant des mêmes foulées horizontales et de sommets, strides = [1, stride, stride, 1] .

Arguments :

  • scope : un objet Scope
  • entrée : Un tenseur 4-D. L'ordre des dimensions est interprété en fonction de la valeur de data_format , voir ci-dessous pour plus de détails.
  • filter : un tenseur de forme 4D [filter_height, filter_width, in_channels, out_channels]
  • foulées : tenseur 1-D de longueur 4. La foulée de la fenêtre glissante pour chaque dimension d' input . L'ordre des dimensions est déterminé par la valeur de data_format , voir ci-dessous pour plus de détails.
  • padding : Le type d’algorithme de remplissage à utiliser.

Attributs facultatifs (voir Attrs ) :

  • explicit_paddings : si padding est "EXPLICIT" , la liste des montants de remplissage explicites. Pour la ième dimension, la quantité de remplissage insérée avant et après la dimension est respectivement explicit_paddings[2 * i] et explicit_paddings[2 * i + 1] . Si padding n'est pas "EXPLICIT" , explicit_paddings doit être vide.
  • data_format : spécifiez le format de données des données d'entrée et de sortie. Avec le format par défaut « NHWC », les données sont stockées dans l'ordre : [lot, hauteur, largeur, canaux]. Alternativement, le format pourrait être « NCHW », l'ordre de stockage des données étant : [lot, canaux, hauteur, largeur].
  • dilatations : tenseur 1-D de longueur 4. Le facteur de dilatation pour chaque dimension d' input . Si défini sur k > 1, il y aura k-1 cellules ignorées entre chaque élément de filtre sur cette dimension. L'ordre des dimensions est déterminé par la valeur de data_format , voir ci-dessus pour plus de détails. Les dilatations dans les dimensions du lot et de la profondeur doivent être de 1.

Retours :

  • Output : Un tenseur 4-D. L'ordre des dimensions est déterminé par la valeur de data_format , voir ci-dessous pour plus de détails.

Constructeurs et Destructeurs

Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding)
Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding, const Conv2D::Attrs & attrs)

Attributs publics

operation
output

Fonctions publiques

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Fonctions statiques publiques

DataFormat (StringPiece x)
Dilations (const gtl::ArraySlice< int > & x)
ExplicitPaddings (const gtl::ArraySlice< int > & x)
UseCudnnOnGpu (bool x)

Structures

tensorflow : ops : Conv2D : Attrs

Setters d'attributs facultatifs pour Conv2D .

Attributs publics

opération

Operation operation

sortir

::tensorflow::Output output

Fonctions publiques

Conv2D

 Conv2D(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input filter,
  const gtl::ArraySlice< int > & strides,
  StringPiece padding
)

Conv2D

 Conv2D(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input filter,
  const gtl::ArraySlice< int > & strides,
  StringPiece padding,
  const Conv2D::Attrs & attrs
)

nœud

::tensorflow::Node * node() const 

opérateur :: tensorflow :: Entrée

 operator::tensorflow::Input() const 

opérateur :: tensorflow :: Sortie

 operator::tensorflow::Output() const 

Fonctions statiques publiques

Format de données

Attrs DataFormat(
  StringPiece x
)

Dilatations

Attrs Dilations(
  const gtl::ArraySlice< int > & x
)

Remplissages explicites

Attrs ExplicitPaddings(
  const gtl::ArraySlice< int > & x
)

UtiliserCudnnOnGpu

Attrs UseCudnnOnGpu(
  bool x
)