首页 > 解决方案 > ValueError: 必须完全定义新变量 (local1/weights) 的形状,而不是 (?, 1000)

问题描述

我是 TensorFlow 的新手。卷积之后,我的层的形状是,shape=(5, 5, 5, 5), dtype=float32但是当我应用反卷积时,形状像shape=(?, 25, 25, 640)dtype=float32.这意味着反卷积后批量大小没有正确显示(?符号)。对于反卷积,我使用了这个反卷积函数。

错误ValueError: 必须完全定义新变量 (local1/weights) 的形状,而不是 (?, 1000)。

我已经尝试过example1但效果不佳

标签: pythontensorflow

解决方案


不同之处在于您发送的示例是一个张量,它得到了错误的数据。您的问题是反卷积滤波器的权重没有完全定义。权重不依赖于批量大小,并且需要具有固定大小,因此存在误差。我知道你理解了这个错误,只是想弄清楚你遇到的问题和这个例子有很大的不同。

我建议改用此功能

 tf.nn.conv2d_transpose()

它的定义就像您对普通卷积层所做的那样。它在 TensorFlow 中是默认的,我想知道您为什么一开始不使用它?


推荐阅读