python - ValueError: 必须完全定义新变量 (local1/weights) 的形状,而不是 (?, 1000)
问题描述
我是 TensorFlow 的新手。卷积之后,我的层的形状是,shape=(5, 5, 5, 5), dtype=float32
但是当我应用反卷积时,形状像shape=(?, 25, 25, 640)
,dtype=float32.
这意味着反卷积后批量大小没有正确显示(?符号)。对于反卷积,我使用了这个反卷积函数。
错误ValueError: 必须完全定义新变量 (local1/weights) 的形状,而不是 (?, 1000)。
我已经尝试过example1但效果不佳
解决方案
不同之处在于您发送的示例是一个张量,它得到了错误的数据。您的问题是反卷积滤波器的权重没有完全定义。权重不依赖于批量大小,并且需要具有固定大小,因此存在误差。我知道你理解了这个错误,只是想弄清楚你遇到的问题和这个例子有很大的不同。
我建议改用此功能:
tf.nn.conv2d_transpose()
它的定义就像您对普通卷积层所做的那样。它在 TensorFlow 中是默认的,我想知道您为什么一开始不使用它?
推荐阅读
- latex - tcolorbox 与 tabular、tabularx 兼容吗?
- laravel - 部署中的 Laravel 和 vue js
- linux - 如何使用 awk 从多个文件中搜索字符串?
- python - PYTHON Pandas:在两个数据框中用字符串求和
- sql - 缺少的括号在哪里?
- recursion - 有人能解释一下这个递归吗?谢谢
- reactjs - 警告:React 无法识别 DOM 元素上的 `secondaryFill` 属性
- python - 在我的 Pycharm CE 中找不到探查器选项
- reactjs - 如何调用路由路径 2,3,后跟 5,6,如果是 5,6,我应该重定向到另一个页面
- coq - 如何找到两个值之间的相等关系