如何将model.fit与keras一起应用于空间金字塔池网

如何将model.fit与keras一起应用于空间金字塔池网,keras,keras-2,Keras,Keras 2,SPP网络用于可变大小的输入图像。keras中的SPP网络实现使用两种模型。适用于两种大小的图像。我有278张不同大小的图片,所以在这种情况下如何使用model.fit?两个model.fit使用后,keras如何计算效率和其他性能参数?我引用了作者在spp写的几句话 对于接受可变输入大小的单个网络,我们通过共享所有参数的多个网络来近似它,而这些网络中的每一个都使用固定的输入大小进行训练在每个历元中,我们使用给定的输入大小训练网络,并为下一个历元切换到另一个输入大小。实验表明,该多尺度训练与传统

SPP网络用于可变大小的输入图像。keras中的SPP网络实现使用两种模型。适用于两种大小的图像。我有278张不同大小的图片,所以在这种情况下如何使用model.fit?两个model.fit使用后,keras如何计算效率和其他性能参数?我引用了作者在spp写的几句话

对于接受可变输入大小的单个网络,我们通过共享所有参数的多个网络来近似它,而这些网络中的每一个都使用固定的输入大小进行训练在每个历元中,我们使用给定的输入大小训练网络,并为下一个历元切换到另一个输入大小。实验表明,该多尺度训练与传统的单尺度训练一样收敛,具有更好的测试精度

我们应该使用相同数量的可变大小图像吗?

您可以尝试生成器(请参阅)


如果所有图像的大小不同,则批大小应为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, ...)
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()

可以绘制生成器输出,但也应注意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, ...)
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()

@Daniel Möller你能看到这个问题吗?请有人提供答案我能想到的一种方法是对图像的大小进行聚类,然后选择一定数量的聚类,并让固定的内核使用质心。