为了账号安全,请及时绑定邮箱和手机立即绑定

在 siamese 网络中使用 fit_generator 时出错

在 siamese 网络中使用 fit_generator 时出错

繁花不似锦 2021-09-28 20:53:18
我正在尝试调整Keras MNIST Siamese 示例以使用生成器。在示例中,我们有:model.fit([tr_pairs[:, 0], tr_pairs[:, 1]], tr_y,          batch_size=128,          epochs=epochs,          validation_data=([te_pairs[:, 0], te_pairs[:, 1]], te_y))试图找出生成器需要返回的形状,我做了:np.array([tr_pairs[:, 0], tr_pairs[:, 1]]).shape并得到(2, 108400, 28, 28)我的生成器然后返回这个:(data, labels) = my_generatordata.shape(2, 6, 300, 300, 3)labels.shape(6,)因此,它是两个数组(用于 NN 输入),具有 6 个大小为300x300x3(RGB) 的图像 (batch_size )。下面是fit_generator()用法:...input_shape = (300, 300, 3)...model.fit_generator(kbg.generate(set='train'),                     steps_per_epoch=training_steps,                    epochs=1,                    verbose=1,                    callbacks=[],                    validation_data=kbg.generate(set='test'),                    validation_steps=validation_steps,                    use_multiprocessing=False,                    workers=0)  我想我正在为 NN 提供相同的形状,但出现以下错误:ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 2 array(s), but instead gotthe following list of 1 arrays: [array([[[[[0.49803922, 0.48235294, 0.55686275],          [0.63137255, 0.61176471, 0.64313725],          [0.8627451 , 0.84313725, 0.84313725],          ...,          [0.58823529, 0.64705882, 0.631...怎么了?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

由于模型有两个输入层,生成器应该生成一个包含两个数组的列表作为两个输入层对应的输入样本,如下所示:


def my_generator(args):

    # ...

    yield [first_pair, second_pair], labels

其中first_pair和second_pair都具有 的形状(n_samples, 300, 300, 3)。


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 458 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信