Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
tensoreflusso:: ops:: Conv2D
#include <nn_ops.h>
Calcola una convoluzione 2D dato input
4D e tensori filter
.
Riepilogo
Dato un tensore di input di forma [batch, in_height, in_width, in_channels]
e un tensore di filtro/kernel di forma [filter_height, filter_width, in_channels, out_channels]
, questa operazione esegue quanto segue:
- Appiattisce il filtro in una matrice 2D con forma
[filter_height * filter_width * in_channels, output_channels]
. - Estrae patch di immagini dal tensore di input per formare un tensore virtuale di forma
[batch, out_height, out_width, filter_height * filter_width * in_channels]
. - Per ogni patch, moltiplica a destra la matrice del filtro e il vettore del patch dell'immagine.
Nel dettaglio, con il formato NHWC predefinito,
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]
Deve avere strides[0] = strides[3] = 1
. Per il caso più comune degli stessi passi orizzontali e vertici, strides = [1, stride, stride, 1]
.
Argomenti:
- scope: un oggetto Scope
- input: un tensore 4-D. L'ordine delle dimensioni viene interpretato in base al valore di
data_format
, vedere di seguito per i dettagli. - filter: un tensore di forma 4-D
[filter_height, filter_width, in_channels, out_channels]
- passi: tensore 1-D di lunghezza 4. Il passo della finestra scorrevole per ogni dimensione di
input
. L'ordine delle dimensioni è determinato dal valore di data_format
, vedi sotto per i dettagli. - riempimento: il tipo di algoritmo di riempimento da utilizzare.
Attributi facoltativi (vedi Attrs
):
- esplicitamente_paddings: se
padding
è "EXPLICIT"
, l'elenco degli importi di riempimento espliciti. Per la i-esima dimensione, la quantità di riempimento inserita prima e dopo la dimensione è rispettivamente explicit_paddings[2 * i]
e explicit_paddings[2 * i + 1]
. Se padding
non è "EXPLICIT"
, explicit_paddings
deve essere vuoto. - data_format: specifica il formato dei dati di input e output. Con il formato predefinito "NHWC", i dati vengono memorizzati nell'ordine di: [lotto, altezza, larghezza, canali]. In alternativa, il formato potrebbe essere "NCHW", l'ordine di archiviazione dei dati di: [batch, canali, altezza, larghezza].
- dilatazioni: tensore 1-D di lunghezza 4. Il fattore di dilatazione per ciascuna dimensione di
input
. Se impostato su k > 1, ci saranno k-1 celle saltate tra ciascun elemento filtro su quella dimensione. L'ordine delle dimensioni è determinato dal valore di data_format
, vedi sopra per i dettagli. Le dilatazioni delle dimensioni del lotto e della profondità devono essere pari a 1.
Resi:
-
Output
: un tensore 4-D. L'ordine delle dimensioni è determinato dal valore di data_format
, vedi sotto per i dettagli.
Attributi pubblici
Funzioni pubbliche
nodo
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operatore::tensorflow::Output
operator::tensorflow::Output() const
Funzioni pubbliche statiche
Attrs DataFormat(
StringPiece x
)
Dilatazioni
Attrs Dilations(
const gtl::ArraySlice< int > & x
)
Imbottiture esplicite
Attrs ExplicitPaddings(
const gtl::ArraySlice< int > & x
)
Utilizzare CudnnOnGpu
Attrs UseCudnnOnGpu(
bool x
)
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-25 UTC.
[null,null,["Ultimo aggiornamento 2025-07-25 UTC."],[],[],null,["# tensorflow::ops::Conv2D Class Reference\n\ntensorflow::ops::Conv2D\n=======================\n\n`#include \u003cnn_ops.h\u003e`\n\nComputes a 2-D convolution given 4-D `input` and `filter` tensors.\n\nSummary\n-------\n\nGiven an input tensor of shape `[batch, in_height, in_width, in_channels]` and a filter / kernel tensor of shape `[filter_height, filter_width, in_channels, out_channels]`, this op performs the following:\n\n\n1. Flattens the filter to a 2-D matrix with shape `[filter_height * filter_width * in_channels, output_channels]`.\n2. Extracts image patches from the input tensor to form a *virtual* tensor of shape `[batch, out_height, out_width, filter_height * filter_width * in_channels]`.\n3. For each patch, right-multiplies the filter matrix and the image patch vector.\n\n\u003cbr /\u003e\n\nIn detail, with the default NHWC format, \n\n```scdoc\noutput[b, i, j, k] =\n sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *\n filter[di, dj, q, k]\n```\n\n\u003cbr /\u003e\n\nMust have `strides[0] = strides[3] = 1`. For the most common case of the same horizontal and vertices strides, `strides = [1, stride, stride, 1]`.\n\nArguments:\n\n- scope: A [Scope](/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- input: A 4-D tensor. The dimension order is interpreted according to the value of `data_format`, see below for details.\n- filter: A 4-D tensor of shape `[filter_height, filter_width, in_channels, out_channels]`\n- strides: 1-D tensor of length 4. The stride of the sliding window for each dimension of `input`. The dimension order is determined by the value of `data_format`, see below for details.\n- padding: The type of padding algorithm to use.\n\n\u003cbr /\u003e\n\nOptional attributes (see [Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs)):\n\n- explicit_paddings: If `padding` is `\"EXPLICIT\"`, the list of explicit padding amounts. For the ith dimension, the amount of padding inserted before and after the dimension is `explicit_paddings[2 * i]` and `explicit_paddings[2 * i + 1]`, respectively. If `padding` is not `\"EXPLICIT\"`, `explicit_paddings` must be empty.\n- data_format: Specify the data format of the input and output data. With the default format \"NHWC\", the data is stored in the order of: \\[batch, height, width, channels\\]. Alternatively, the format could be \"NCHW\", the data storage order of: \\[batch, channels, height, width\\].\n- dilations: 1-D tensor of length 4. The dilation factor for each dimension of `input`. If set to k \\\u003e 1, there will be k-1 skipped cells between each filter element on that dimension. The dimension order is determined by the value of `data_format`, see above for details. Dilations in the batch and depth dimensions must be 1.\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output): A 4-D tensor. The dimension order is determined by the value of `data_format`, see below for details.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [Conv2D](#classtensorflow_1_1ops_1_1_conv2_d_1ae27dd9789ca39f5241ef6169e9602d98)`(const ::`[tensorflow::Scope](/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` filter, const gtl::ArraySlice\u003c int \u003e & strides, StringPiece padding)` ||\n| [Conv2D](#classtensorflow_1_1ops_1_1_conv2_d_1a66103d912b58ddc4cc8630ff2aee7cdc)`(const ::`[tensorflow::Scope](/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` filter, const gtl::ArraySlice\u003c int \u003e & strides, StringPiece padding, const `[Conv2D::Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs)` & attrs)` ||\n\n| ### Public attributes ||\n|-------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_conv2_d_1af9ad760317104d0f49e840991ec3b098) | [Operation](/versions/r2.0/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_conv2_d_1aaa248db46e3bf2bdff1daf72d5548c36) | `::`[tensorflow::Output](/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|-------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_conv2_d_1a0792a7741b724bc96b71180628af6375)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_conv2_d_1a9f4abe0db26277c44cb54ea09954944f)`() const ` | ` ` ` ` |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_conv2_d_1ac956ca095c170eabe93569934e8d1eb8)`() const ` | ` ` ` ` |\n\n| ### Public static functions ||\n|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|\n| [DataFormat](#classtensorflow_1_1ops_1_1_conv2_d_1abb338036c1cdf1dca0ca58eb4a1f1226)`(StringPiece x)` | [Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs) |\n| [Dilations](#classtensorflow_1_1ops_1_1_conv2_d_1ad1fd4cc8dd1e6d6fe15d3f4d57352a4f)`(const gtl::ArraySlice\u003c int \u003e & x)` | [Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs) |\n| [ExplicitPaddings](#classtensorflow_1_1ops_1_1_conv2_d_1a1745cff4561efd59e819a2374db7f925)`(const gtl::ArraySlice\u003c int \u003e & x)` | [Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs) |\n| [UseCudnnOnGpu](#classtensorflow_1_1ops_1_1_conv2_d_1ad94e81abdab43c58740cc2e9a522d35f)`(bool x)` | [Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs#structtensorflow_1_1ops_1_1_conv2_d_1_1_attrs) |\n\n| ### Structs ||\n|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\n| [tensorflow::ops::Conv2D::Attrs](/versions/r2.0/api_docs/cc/struct/tensorflow/ops/conv2-d/attrs) | Optional attribute setters for [Conv2D](/versions/r2.0/api_docs/cc/class/tensorflow/ops/conv2-d#classtensorflow_1_1ops_1_1_conv2_d). |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\nPublic functions\n----------------\n\n### Conv2D\n\n```gdscript\n Conv2D(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input filter,\n const gtl::ArraySlice\u003c int \u003e & strides,\n StringPiece padding\n)\n``` \n\n### Conv2D\n\n```gdscript\n Conv2D(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input filter,\n const gtl::ArraySlice\u003c int \u003e & strides,\n StringPiece padding,\n const Conv2D::Attrs & attrs\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n``` \n\nPublic static functions\n-----------------------\n\n### DataFormat\n\n```text\nAttrs DataFormat(\n StringPiece x\n)\n``` \n\n### Dilations\n\n```gdscript\nAttrs Dilations(\n const gtl::ArraySlice\u003c int \u003e & x\n)\n``` \n\n### ExplicitPaddings\n\n```gdscript\nAttrs ExplicitPaddings(\n const gtl::ArraySlice\u003c int \u003e & x\n)\n``` \n\n### UseCudnnOnGpu\n\n```text\nAttrs UseCudnnOnGpu(\n bool x\n)\n```"]]