TensorFlow函數:tf.nn.conv2d

2019-01-31 13:43 更新

tf.nn.conv2d函數

tf.nn.conv2d(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)

定義在:tensorflow/python/ops/gen_nn_ops.py.

請參閱指南:神經網絡>卷積運算

計算給定的4-D input和filter張量的2-D卷積.

給定形狀為[batch, in_height, in_width, in_channels]的輸入張量和形狀為[filter_height, filter_width, in_channels, out_channels]的濾波器/內核張量,此操作執(zhí)行以下操作:

  1. 將濾鏡展平為具有形狀[filter_height * filter_width * in_channels, output_channels]的二維矩陣.
  2. 從輸入張量中提取圖像補丁,以形成形狀為[batch, out_height, out_width, filter_height * filter_width * in_channels]的虛擬張量.
  3. 對于每個補丁,右對乘濾波器矩陣和圖像補丁矢量.

詳細說明,使用默認的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]

必須有strides[0] = strides[3] = 1.對于相同水平和頂點步幅的最常見情況,strides = [1, stride, stride, 1].

參數:

  • input:一個Tensor,必須是下列類型之一:half,bfloat16,float32,float64;一個4-D張量,維度順序根據data_format值進行解釋,詳見下文.
  • filter:一個Tensor,必須與input相同,形狀為[filter_height, filter_width, in_channels, out_channels]的4-D張量.
  • strides:ints列表,長度為4的1-D張量,input的每個維度的滑動窗口的步幅;維度順序由data_format值確定,詳見下文.
  • padding:string,可以是:"SAME", "VALID",要使用的填充算法的類型.
  • use_cudnn_on_gpu:bool,默認為True.
  • data_format:string,可以是"NHWC", "NCHW",默認為"NHWC";指定輸入和輸出數據的數據格式;使用默認格式“NHWC”,數據按以下順序存儲:[batch, height, width, channels];或者,格式可以是“NCHW”,數據存儲順序為:[batch, channels, height, width].
  • dilations:ints的可選列表,默認為[1, 1, 1, 1],長度為4的1-D張量,input的每個維度的擴張系數;如果設置為k> 1,則該維度上的每個濾鏡元素之間將有k-1個跳過的單元格;維度順序由data_format值確定,詳見上文;批次和深度尺寸的擴張必須為1.
  • name:操作的名稱(可選).

返回:

一個Tensor,與input具有相同的類型.

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號