我正在阅读有关使用TF进行深度学习的卷积,源代码在Deep learning with Tensorflow。我读到了卷积层的定义:
def conv_layer(input, size_in, size_out, name="conv"):
with tf.name_scope(name):
w = tf.Variable(tf.truncated_normal([5, 5, size_in, size_out], stddev=0.1), name="W")
b = tf.Variable(tf.constant(0.1, shape=[size_out]), name="B")
conv = tf.nn.conv2d(input, w, strides=[1, 1, 1, 1], padding="SAME")
act = tf.nn.relu(conv + b)
return tf.nn.max_pool(act, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")
虽然我读到了一些相关的文件,但我仍然无法完全理解每个条目的含义
[5, 5, size_in, size_out]
以及以下代码的含义:
act = tf.nn.relu(conv + b)
return tf.nn.max_pool()
你能帮我解决这个基本问题吗?
提前致谢,
答案 0 :(得分:0)
我建议你开始阅读官方教程,然后才开始阅读官方教程的代码,稍后modified删除评论和解释。
您的private static int GetNumberBetweenZeroAndTweleve(int inputNumber)
{
if (inputNumber < 12)
return Math.Max(inputNumber, 1);
return inputNumber % 12 + 1;
}
是conv2d中传递的变量的形状,通过阅读文档
形状的核心张量[filter_height,filter_width,in_channels,out_channels]
in_channels是输入图像中的通道数。对于灰度图像,它为1,对于RGB为3. Out_channels是任意数字。
此代码的含义
[5, 5, size_in, size_out]
是CNN,relu和maxpooling的标准块。关于每个定义,都有大量的信息。