python - Tensorflow 2残差块,加法
问题描述
我无法正确实施 Residual 块。尝试将 input_tensor 和卷积层的结果相加时,出现形状不匹配的错误。我不知道如何解决。我明白了
ValueError: Operands could not be broadcast together with shapes (25, 32) (25, 31)
(25, 31) 是 input_tensor 的大小。我认为padding='same'
在 conv 层中设置了它(25,32),这就是我不能添加它们的原因。
实际上,打印形状会给出:
input.shape= (None, 25, 31)
out.shape= (None, 25, 32)
批量大小是第一个暗淡。
我如何填充 input_tensor,例如用零填充以使其形状相同?或者,还有更好的方法?
解决方案
弄清楚了:
out = tf.keras.layers.Add()([out, tf.pad(input_tensor, [[0,0],[0,0],[0,1]])])
推荐阅读
- java - 从 openjdk11 访问 com.sun.* 类
- excel - 用于复制并粘贴到 BS 列的下一个空行的宏
- pybind11 - VS2017 与 pybind11 一起使用时会引发链接器错误
- c# - 等待第三方 API 回调
- c# - UWP C#:从本地磁盘打开 HTML 文件到默认浏览器
- javascript - addEventListener 没有在按键上触发
- php - 如果身体标签通过子主题具有“家”类
- python - 用Python模拟退火算法解决旅行商问题
- python-3.x - 如何使用 Youtube Data API v3 获取 youtube 频道中的所有视频标题?
- google-admin-sdk - 查询 Admin Report API 以了解用户活动时未返回任何项目