TensorFlow 中 conv2d 的确切含义

Posted 小径

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow 中 conv2d 的确切含义相关的知识,希望对你有一定的参考价值。

在读:

《TensorFlow:实战Google深度学习框架》 才云科技Caicloud, 郑泽宇, 顾思宇【摘要 书评 试读】图书
https://www.amazon.cn/gp/product/B06WGP12TV

 

结合:

【TensorFlow】tf.nn.conv2d是怎样实现卷积的? - xf__mao的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/mao_xiao_feng/article/details/53444333

neural network - What does tf.nn.conv2d do in tensorflow? - Stack Overflow
http://stackoverflow.com/questions/34619177/what-does-tf-nn-conv2d-do-in-tensorflow

 

现在总结出两个例子:

1. 尺寸的压缩:

input: [1,3,3,1]    # 3*3 的图,通道数 1

[[[[1],[2],[3]],
  [[4],[5],[6]],
  [[7],[8],[9]]]]

fitler: [2,2,1,1]   # 2*2 的卷积核,输入通道 1,输出通道 1
[
    [[[1]], [[100]]],
    [[[10000]],[[1000000]]]
]

result:

[[[[ 5040201.] [ 6050302.]]
   [[ 8070504.] [ 9080605.]]]]

 

IMG_20170402_150045

可见卷积是怎么进行的。

2. 通道的压缩

input: [1,3,3,2]    # 3*3 的图,通道数 2

[[[[1, 11],[2, 22],[3, 33]],
  [[4, 44],[5, 55],[6, 66]],
  [[7, 77],[8, 88],[9, 99]]]]

fitler: [1,1,2,1]   # 1*1 的卷积核,输入通道 2,输出通道 1
[[[[10],[1000]]]]

result:

[[[[ 11010.], [ 22020.], [ 33030.]],
   [[ 44040.], [ 55050.], [ 66060.]],
   [[ 77070.], [ 88080.], [ 99090.]]]]

可以看出通道压缩是怎么进行的。

 

使用 tf.const 注入可示踪的测试数据,比用 random_normal 构造数据要好懂的多。

以上是关于TensorFlow 中 conv2d 的确切含义的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow中踩过的坑

比较 Conv2D 与 Tensorflow 和 PyTorch 之间的填充

具有 padding='SAME' 的 Tensorflow/Keras Conv2D 层表现异常

TensorFlow conv2d实现卷积

理解卷积神经网络中的channel

tf.nn.conv2d 在 tensorflow 中做了啥?