SPP net用于可变大小的输入图像。 here中keras的SPP Net实现使用两个model.fit来处理两种尺寸的图像。我有278个不同大小的图像,所以在这种情况下如何使用model.fit?以及两个model.fit使用后如何计算效率和其他性能参数?我引用了一些来自spp paper的行,其中作者写了
对于单个网络接受可变输入大小,我们通过共享所有参数的多个网络对其进行近似,而这些网络中的每一个都使用固定输入大小进行训练。 在每个时代,我们使用给定的输入大小训练网络,并切换到下一个纪元的另一个输入大小。实验表明,这种多尺寸训练与传统的单一训练融合,可以提高测试的准确性。
我们是否应该使用尽可能多的时代。可变尺寸图像?
答案 0 :(得分:0)
您可以尝试使用生成器(请参见stanford.edu)。
如果所有图像的大小均不同,则批处理大小应为1。注意X和y形状。
class WordImageGeneratorSPP(object):
def __init__(self, shuffle=True):
self.shuffle = shuffle
def generate(self, items):
while 1:
if self.shuffle:
random.shuffle(items)
for item in items:
X = item[0]
y = item[1]
yield X, y
train_gen = WordImageGeneratorSPP().generate(train_data)
model.fit_generator(generator=train_gen, ...)
您可以绘制生成器的输出,但也应注意X和y形状。
import matplotlib.pyplot as plt
train_gen = WordImageGeneratorSPP().generate(train_data)
for X, y in train_gen:
plt.imshow(X)
plt.title(y)
plt.show()