首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[tensorflow][原创]关于传智播客3天带你玩转Python深度学习视频讲解的卷积层池化层输入输出可能存在错误

[tensorflow][原创]关于传智播客3天带你玩转Python深度学习视频讲解的卷积层池化层输入输出可能存在错误

作者头像
云未归来
发布2025-07-18 13:34:22
发布2025-07-18 13:34:22
500
举报

3天带你玩转Python深度学习老师讲解一个重要知识点可能错误,那就是关于卷积核池化输入和输出计算问题,padding=SAME时候输入和输出大小并不一定是一样的,但是里面讲解老师说padding=SAME输出和输入图像大小一样,这个证明是错的。老师说公式是 (输入大小-卷积核大小+2xpadding)/strides=输出大小,这个似乎有些问题,经过实际证明和谷歌提供的文档,应该是padding=SAME时候输出大小=Math.Ceil(输入大小/strides),而padding=Valid时候,输出大小为Math.ceil(输入大小-卷积核大小+1)/strides,不知道是不是我理解有问题呢,我通过代码查看应该我提供两个公式,而不是(输入大小-卷积核大小+2xpadding)/strides=输出大小,比如以下代码

import tensorflow as tf input = tf.Variable(tf.random_normal([1, 5, 5, 3])) filter = tf.Variable(tf.random_normal([3, 3, 3, 7])) result = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding="SAME") init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) # print(sess.run(result)) print(result.shape)

大家可以看看输入和输出实际不一样。先前我看了视频,我也深信不疑在padding=SAME输出和输入图像大小一样,但是偶然间看到很多人使用Math.Ceil(输入大小/strides)这个公式,我才开始怀疑,经过代码证明,(输入大小-卷积核大小+2xpadding)/strides=输出大小存在一些问题,希望这方面大牛出来解答一下,到底哪个公式才是正确的,以免后续计算错误

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档