【发布时间】:2016-10-07 12:25:03
【问题描述】:
我目前正在 tensorflow 中实现 FCN,以支持可变输入图像大小。
我有各种尺寸的图像,但不幸的是,我无法以不同于 1 的批量大小开始训练。
我正在通过以下方式使用提要字典:
feed_dict = {fcn.images: image_batch,
fcn.labels: labels_batch,
fcn.dropout_keep: dropout}
result = sess.run(list(tf_ops), feed_dict=feed_dict)
我已经试过了:
- 将
image_batch和labels_batch创建为 numpy 数组,但这不起作用,因为 numpy 数组不支持可变的某些维度。 - 创建
image_batch和labels_batch作为 numpy 数组列表。这里似乎 tensorflow 正在尝试调用numpy.array(image_batch)。 - 与
tf.pack()一起使用,很遗憾,这也不支持不同的图像尺寸
我的问题是: 有没有办法解决这个问题?
提前感谢您的任何建议和意见。
【问题讨论】:
-
无法设置不同的输入大小。 TensorFlow 无法对一批不同大小的输入应用标准操作(卷积、全连接层...)(因为它不能是数组,必须是列表)。跨度>
-
在批处理之前,您必须将所有图像填充或调整为相同大小。
-
感谢您的评论。我想在我的情况下,当我进行语义分割时,只将图像裁剪成更小的图像是有意义的。
-
确实如此。在测试时,您可以将图像分割成多个补丁,然后重新组合它们。
标签: python numpy machine-learning tensorflow