在用于2D卷积的TensorFlow中,我们有:
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None,
data_format=None, name=None)
和
tf.contrib.layers.convolution2d(*args, **kwargs)
谢谢
答案 0 :(得分:15)
tf.contrib.layers.conv2d(...)
是TensorFlow提供的核心低级卷积功能。 tf.layers.conv2d
是围绕核心TensorFlow的更高级API构建的一部分。
请注意,在当前的TensorFlow版本中,部分图层现在也处于核心状态,例如tf.nn.conv2d
。
差别很简单,tf.layers.conv2d
是一个op,它会进行卷积,而不是其他任何东西。 def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
W_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
做得更多,例如它还为内核和偏见创建变量。
查看使用Tensorflow核心(here)的CNN上的Tensorflow教程。使用低级API,卷积层的创建方式如下:
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=32,
kernel_size=[5, 5],
padding="same",
activation=tf.nn.relu)
将其与CNN的TF图层教程(here)进行比较。使用TF图层卷积层创建如下:
tf.layers.conv2d
不知道您的使用案例:您很可能想要使用hosts:
。
答案 1 :(得分:0)
在 Tensorflow 2.x 中 tf.keras.layers.Conv2D
和 tf.keras.layers.Convolution2D
之间没有区别。
Here's the link for the illustration
在 tensorflow 2.x 中,keras
是 tensorflow
中的 API