【问题标题】:Tensorflow variable images size within single batch单个批次中的 TensorFlow 可变图像大小
【发布时间】: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)

我已经试过了:

  1. image_batchlabels_batch 创建为 numpy 数组,但这不起作用,因为 numpy 数组不支持可变的某些维度。
  2. 创建 image_batchlabels_batch 作为 numpy 数组列表。这里似乎 tensorflow 正在尝试调用 numpy.array(image_batch)
  3. tf.pack() 一起使用,很遗憾,这也不支持不同的图像尺寸

我的问题是: 有没有办法解决这个问题?

提前感谢您的任何建议和意见。

【问题讨论】:

  • 无法设置不同的输入大小。 TensorFlow 无法对一批不同大小的输入应用标准操作(卷积、全连接层...)(因为它不能是数组,必须是列表)。跨度>
  • 在批处理之前,您必须将所有图像填充或调整为相同大小。
  • 感谢您的评论。我想在我的情况下,当我进行语义分割时,只将图像裁剪成更小的图像是有意义的。
  • 确实如此。在测试时,您可以将图像分割成多个补丁,然后重新组合它们。

标签: python numpy machine-learning tensorflow


【解决方案1】:

所以我们可以关闭这个 - 引用上面的 Olivier Moindrot:

在批处理之前,您必须将所有图像填充或调整为相同大小。

请注意,在 Olivier 的回答之后,添加了一个新的 tf.image.decode_and_crop_jpeg 操作,可以使执行此操作更容易一些。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 2016-02-26
    • 2018-02-07
    • 1970-01-01
    • 2018-11-11
    • 2019-02-06
    • 1970-01-01
    • 2022-01-11
    • 2022-01-02
    相关资源
    最近更新 更多