Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.nn.conv2d

TensorFlow 1 wersja Zobacz źródło na GitHub

Oblicza splot 2-D danych input i 4-D filters tensory.

input napinacz może mieć stopień 4 lub wyżej, gdzie wymiary kształtu [:-3] są uważane wymiary wsadowe ( batch_shape ).

Biorąc pod uwagę napinacz wejście kształt batch_shape + [in_height, in_width, in_channels] i filtr / jądra tensor kształcie [filter_height, filter_width, in_channels, out_channels] , to op wykonuje następujące:

  1. Spłaszcza filtr do matrycy 2-D w kształcie [filter_height * filter_width * in_channels, output_channels] .
  2. Ekstrakty łatek obraz z tensora wejściowego, aby utworzyć wirtualne tensor kształtu [batch, out_height, out_width, filter_height * filter_width * in_channels] .
  3. Dla każdego plastra prawym mnoży macierz filtr i wektor plastra obrazu.

W szczegółach, z domyślnym formatem NHWC,

 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]
 

Musi mieć strides[0] = strides[3] = 1 . Do najczęstszych przypadku samych kroków poziomej i pionowej, strides = [1, stride, stride, 1] .

Wykorzystanie przykład:

x_in = np.array([[
  [[2], [1], [2], [0], [1]],
  [[1], [3], [2], [2], [3]],
  [[1], [1], [3], [3], [0]],
  [[2], [2], [0], [1], [1]],
  [[0], [0], [3], [1], [2]], ]])
kernel_in = np.array([
 [ [[2, 0.1]], [[3, 0.2]] ],
 [ [[0, 0.3]],[[1, 0.4]] ], ])
x = tf.constant(x_in, dtype=tf.float32)
kernel = tf.constant(kernel_in, dtype=tf.float32)
tf.nn.conv2d(x, kernel, strides=[1, 1, 1, 1], padding='VALID')
<tf.Tensor: shape=(1, 4, 4, 2), dtype=float32, numpy=..., dtype=float32)>

input Tensor . Musi to być jeden z następujących typów: half , bfloat16 , float32 , float64 . Tensora z szeregu co najmniej 4. Kolejność wymiar jest interpretowane zgodnie z wartością data_format ; z cały but-3-wewnętrznych wymiarów działających jak wymiary wsadowych. Szczegóły poniżej.
filters Tensor . Muszą mieć ten sam typ jako input . A4 D tensor kształcie [filter_height, filter_width, in_channels, out_channels]
strides Int lub lista ints , które ma długość 1 , 2 lub 4 . Kroczyć okna przesuwnego dla każdego wymiaru input . Jeżeli pojedyncza wartość jest replikowany w H i W wymiarze. Standardowo N i C wymiary są ustawione na 1. Kolejność wymiar określony przez wartość data_format , patrz poniżej.
padding Albo string "SAME" lub "VALID" wskazujący typ algorytmu dopełnienie do użytku lub lista wskazując wyraźne Podkładki na początku i na końcu każdego wymiaru. Gdy wyraźnie wyściółka jest używany i jest data_format "NHWC" powinno być w postaci [[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]] . Gdy wyściółka stosowane jawne i data_format jest "NCHW" powinno być w postaci [[0, 0], [0, 0], [pad_top, pad_bottom], [pad_left, pad_right]] .
data_format Opcjonalny string od: "NHWC", "NCHW" . Domyślnie "NHWC" . Określ format danych danych wejściowych i wyjściowych. Z domyślnym formacie „NHWC”, dane są przechowywane w kolejności: batch_shape + [height, width, channels] . Alternatywnie, mogą być w formacie „NCHW” kolejność przechowywania danych: batch_shape + [channels, height, width] .
dilations Int lub listy ints , który ma długość 1 , 2 lub 4 , domyślnie 1. Współczynnik dylatacyjnej dla każdego wymiaru input . Jeżeli pojedyncza wartość jest replikowany w H i W wymiarze. Standardowo N i C wymiary są ustawione na 1. W przypadku zestaw k> 1, nie będzie k 1 pominięto między komórkami każdego elementu filtracyjnego w tym wymiarze. Kolejność wymiar jest określony przez wartość data_format , patrz wyżej szczegóły. Dylatacje w wymiarach wsadowych, jak i wgłębne, gdy 4-d napinacz musi wynosić 1.
name Nazwę operacji (opcjonalnie).

Tensor . Ma taki sam typ jak input i tego samego kształtu zewnętrznego wsadowym.