我正在尝试使用TensorFlow复制用于语义分割的完全卷积网络的结果。
我被困在将训练图像输入到计算图中。全卷积网络使用VOC PASCAL数据集进行训练。然而,数据集中的训练图像具有不同的大小。
我只想问他们是否对训练图像进行了预处理,使它们具有相同的大小,以及他们是如何对图像进行预处理的。如果没有,他们是否只是将不同大小的图像批量输入FCN?是否可以将一批不同大小的图像输入到TensorFlow的计算图中?有没有可能使用队列输入而不是占位符呢?
发布于 2016-08-20 21:46:07
不可能将不同大小的图像输入到单个输入批次中。每个批次可以有一个未定义的样本数量(这通常是批次大小,下面用None说明),但每个样本必须具有相同的维度。
当你训练一个完全卷积网络时,你必须像一个网络一样训练它,在最后有完全连接的层。因此,输入批次中的每个输入图像必须具有相同的宽度、高度和深度。调整它们的大小。
唯一的区别是,当完全连接的层为输入批次中的每个样本(形状[None, num_classes])输出单个输出向量时,完全卷积输出类的概率图。
在训练过程中,当输入图像的维数等于网络的输入维数时,输出将是具有形状[None, 1, 1, num_classes]的概率图。
您可以使用tf.squeeze从输出张量中删除大小为1的维度,然后计算损失和精度,就像对完全连接的网络所做的那样。
在测试时,当您以大于输入尺寸的尺寸馈送网络图像时,输出将是大小为[None, n, n, num_classes]的概率图。
发布于 2018-04-05 22:59:56
https://stackoverflow.com/questions/39050557
复制相似问题