convolution in tensorflow (tf.nn.conv)

来源:互联网 发布:黑色紧身小脚裤淘宝 编辑:程序博客网 时间:2024/05/22 09:02

Understanding convolution in tensorflow

Points should be noticed

The convolution ops sweep a 2-D filter over a batch of images, applying the filter to each window of each image of the appropriate size. The different ops trade off between generic vs. specific filters:
conv2d: Arbitrary filters that can mix channels together.
depthwise_conv2d: Filters that operate on each channel independently.
separable_conv2d: A depthwise spatial filter followed by a pointwise
filter.

from:
Neural Network | TensorFlow
https://www.tensorflow.org/api_guides/python/nn#Convolution

Explanation of the equation in API of tf.nn.conv2d

这里写图片描述

b in yellow shadow is for travering through the batch with images.
the variables in green shadow is for locating a patch.
In the equation, di and dj loop variable to traverse through the height and width of the patch in one image.
~~I’m not very sure about this.
q is for traversing through the channels of the image, with the step of strike[3]. ~~

ref:
tf.nn.conv2d | TensorFlow
https://www.tensorflow.org/api_docs/python/tf/nn/conv2d

tf.nn.conv[1d, 2d, 3d]

There are tf.nn.conv1d, tf.nn.conv2d and tf.nn.conv3d. Problems are there, which to be choosed and what’s the difference.
I have not studied this deep. For I am using tensorflow to processing images, it seems tf.nn.conv2d is for me. From my perspective, the difference of them are as following.

  • tf.nn.conv1d is for some linear structure, text, sound or some others.
  • tf.nn.conv2d is for structure appeared to be 2-D, such as image.
  • tf.nn.conv3d is for something not familiar to me. It seems to be applied in signal processing.