我正在尝试使用feed_dict参数将具有不同大小的2d numpy数组列表传递给卷积神经网络。
x = tf.placeholder(tf.float32, [batch_size, None, None, None])
y = tf.placeholder(tf.float32, [batch_size, 1])
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
optimizer.run(feed_dict={x: batch[0], y: batch[1], keep_prob: 0.5})
我收到以下错误:
ValueError: setting an array element with a sequence.
我知道批处理[0]必须包含大小相同的数组。 我试图找到一种方法来使用可变大小的批量数组来应用优化,但是所有建议的解决方案都要求调整数组的大小,这在我的情况下是不可能的,因为这些数组不是图像并且包含具有不同大小的DNA片段(任何修改)在数组的任何元素上都会导致丢失重要信息)
有人有想法吗?
答案 0 :(得分:1)
提供的矩阵需要跨行和列具有一致的大小。一行或一列的大小不能与其他行大小不同。
Matrix #1 Matrix #2
1 2 3 1 2 3
None 4 5 6
None 7 8 9
没有任何操作可以在Matrix#1上运行,这基本上就是你所拥有的。如果您想要提供可变大小的矩阵(matices中的大小不同,但行和列的大小不同)this 可以解决你的问题
参数数量:
形状:要进给的张量的形状(可选)。如果形状是 未指定,您可以提供任何形状的张量。
或者如果您正在寻找稀疏张量(tf.sparse_placeholder()
- 未定义的元素设置为零),this question可能有帮助。