完全卷积网络培训图像大小

时间:2016-08-20 04:44:21

标签: machine-learning computer-vision tensorflow deep-learning caffe

我试图使用TensorFlow复制完全卷积网络(FCN)的语义分段结果。

我坚持将训练图像输入到计算图中。完全卷积网络使用VOC PASCAL数据集进行培训。但是,数据集中的训练图像具有不同的大小。

我只想询问他们是否预处理了训练图像,使它们具有相同的大小以及它们如何预处理图像。如果没有,他们只是将不同大小的批量图像送入FCN吗?是否可以将一批中不同尺寸的图像输入TensorFlow中的计算图?是否可以使用队列输入而不是占位符来实现?

2 个答案:

答案 0 :(得分:2)

无法将不同大小的图像输入到单个输入批次中。每个批次都可能有不确定数量的样本(通常是批量大小,下面标有None),但每个样本必须具有相同的尺寸。

当你训练一个完全卷积网络时,你必须训练它,就像一个网络,最后有完全连接的层。 因此,输入批次中的每个输入图像必须具有相同的宽度,高度和深度。调整它们的大小。

唯一的区别是,当完全连接的层为输入批处理中的每个样本输出单个输出向量(形状[None, num_classes])时,完全卷积输出类的概率图。

在训练期间,当输入图像尺寸等于网络输入尺寸时,输出将是形状为[None, 1, 1, num_classes]的概率图。

您可以使用tf.squeeze从输出张量中删除尺寸1的尺寸,然后计算损耗和精度,就像使用完全连接的网络一样。

在测试时,当您输入尺寸大于输入的网络图像时,输出将是大小为[None, n, n, num_classes]的概率图。

答案 1 :(得分:0)

  1. 您可以使用批量大小= 1
  2. 您可以将图片大小调整为固定大小,如256,256
  3. 您可以将每个批次的大小调整为其内容的中间图像大小。