Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.nn.convolution

TensorFlow 1 versi Lihat sumber di GitHub

Menghitung jumlah dari convolutions ND (sebenarnya korelasi silang).

Ini juga mendukung baik keluaran melangkah melalui opsional strides parameter atau lilit Atrous (juga dikenal sebagai konvolusi dengan lubang atau lilit melebar, berdasarkan kata Perancis "trous" yang berarti lubang dalam bahasa Inggris) melalui opsional dilations parameter. Saat ini, bagaimanapun, keluaran striding tidak didukung untuk convolutions Atrous.

Secara khusus, dalam kasus yang data_format tidak dimulai dengan "NC", mengingat pangkat (N + 2) input Tensor bentuk

[Num_batches, input_spatial_shape [0], ..., input_spatial_shape [N-1], num_input_channels],

peringkat (N + 2) filters Tensor bentuk

[Spatial_filter_shape [0], ..., spatial_filter_shape [N-1], num_input_channels, num_output_channels],

opsional dilations tensor bentuk N menentukan filter upsampling / input tingkat downsampling, dan daftar opsional N strides (default [1] * N), menghitung ini untuk setiap posisi keluaran spasial ND (x [0], ..., x [N-1]):

   output[b, x[0], ..., x[N-1], k] =
      sum_{z[0], ..., z[N-1], q}
          filter[z[0], ..., z[N-1], q, k] *
          padded_input[b,
                       x[0]*strides[0] + dilation_rate[0]*z[0],
                       ...,
                       x[N-1]*strides[N-1] + dilation_rate[N-1]*z[N-1],
                       q]
 

di mana b adalah indeks ke dalam batch, k adalah jumlah channel output, q adalah jumlah saluran masukan, dan z adalah ND spasial offset dalam filter. Di sini, padded_input diperoleh dengan nol padding masukan menggunakan bentuk tapis ruang efektif (spatial_filter_shape-1) * dilation_rate + 1 dan output melangkah strides seperti yang dijelaskan dalam komentar di sini .

Dalam hal data_format tidak dimulai dengan "NC" , yang input dan keluaran (tapi bukan filters ) hanya dialihkan sebagai berikut:

konvolusi (input, data_format, kwargs **) = tf.transpose (konvolusi (tf.transpose (input, [0] + kisaran (2, N + 2) + [1]), ** kwargs), [0, N 1] + kisaran (1, N + 1))

Hal ini diperlukan bahwa 1 <= N <= 3.

input An (N + 2) -D Tensor tipe T , bentuk [batch_size] + input_spatial_shape + [in_channels] jika data_format tidak dimulai dengan "NC" (default), atau [batch_size, in_channels] + input_spatial_shape jika data_format dimulai dengan " NC".
filters An (N + 2) -D Tensor dengan jenis yang sama seperti input dan bentuk spatial_filter_shape + [in_channels, out_channels] .
padding Sebuah string, baik "VALID" atau "SAME" . Algoritma padding.
strides Pilihan. Urutan N int> = 1. Menentukan output langkahnya. Default untuk [1] * N. Jika ada nilai langkah adalah> 1, maka semua nilai-nilai dilation_rate harus 1.
dilations Pilihan. Urutan N int> = 1. Menentukan tingkat downsampling penyaring upsampling / input. Dalam literatur, parameter yang sama kadang-kadang disebut input stride atau dilation . Ukuran filter yang efektif digunakan untuk konvolusi akan spatial_filter_shape + (spatial_filter_shape - 1) * (rate - 1) , diperoleh dengan menyisipkan (dilation_rate [i] -1) nol antara unsur-unsur berturut-turut dari filter asli pada setiap dimensi spasial i. Jika ada nilai dilation_rate adalah> 1, maka semua nilai-nilai langkah harus 1.
name nama opsional untuk tensor kembali.
data_format Sebuah string atau Tidak ada. Menentukan apakah saluran dimensi dari input dan keluaran adalah dimensi terakhir (default, atau jika data_format tidak dimulai dengan "NC"), atau dimensi kedua (jika data_format dimulai dengan "NC"). Untuk N = 1, nilai yang valid adalah "NWC" (default) dan "NCW". Untuk N = 2, nilai-nilai yang valid adalah "NHWC" (default) dan "NCHW". Untuk N = 3, nilai-nilai yang valid adalah "NDHWC" (default) dan "NCDHW".

Sebuah Tensor dengan jenis yang sama seperti input dari bentuk

[batch_size] + output_spatial_shape + [out_channels]

jika data_format adalah ada atau tidak dimulai dengan "NC", atau

[batch_size, out_channels] + output_spatial_shape

jika data_format dimulai dengan "NC", di mana output_spatial_shape tergantung pada nilai padding .

Jika bantalan == "SAMA": output_spatial_shape [i] = ceil (input_spatial_shape [i] / langkah [i])

Jika bantalan == "VALID": output_spatial_shape [i] = ceil ((input_spatial_shape [i] - (spatial_filter_shape [i] -1) * dilation_rate [i]) / langkah [i]).

ValueError Jika kedalaman input / output tidak cocok filters bentuk, jika padding selain "VALID" atau "SAME" , atau jika data_format tidak valid.