Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将fit_生成器与暹罗网络一起使用时出错_Python_Tensorflow_Machine Learning_Keras_Generator - Fatal编程技术网

Python 将fit_生成器与暹罗网络一起使用时出错

Python 将fit_生成器与暹罗网络一起使用时出错,python,tensorflow,machine-learning,keras,generator,Python,Tensorflow,Machine Learning,Keras,Generator,我正在试着使机器适应使用发电机 在这方面,我们有: 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_pair

我正在试着使机器适应使用发电机

在这方面,我们有:

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_generator
data.shape
(2, 6, 300, 300, 3)
labels.shape
(6,)
因此,它是两个数组(用于NN输入),具有6个大小
300x300x3
(RGB)的图像(批量大小)

下面是
fit\u生成器()
的用法:

...
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...

有什么问题?

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

def my_generator(args):
    # ...
    yield [first_pair, second_pair], labels
其中,
第一对
第二对
的形状都是
(n\u样本,300,300,3)