keras.utils.Sequence在使用predict_generator时无法正常工作

时间:2019-04-30 08:13:12

标签: python tensorflow keras deep-learning

我的模型在进行预测时希望接收两个输入数组。 (值,标签)

    train_model = models.Model(inputs=[x, y], outputs=[out_seg, shared_decoder(masked_by_y, conv_cap_2_1, x )]) # [x:image,y: mask] // [out_seg:length, reconstruction output]

因此,我使用Sequence创建了以下课程。

class No_decoder_sequence(keras.utils.Sequence):
 def __init__(self, x_set, y_set, batch_size):
    self.x, self.y = x_set, y_set
    self.batch_size = batch_size

 def __len__(self):
    return int(np.ceil(len(self.x) / float(self.batch_size)))

 def __getitem__(self, idx):
    batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]
    batch_x = np.expand_dims(batch_x ,-1)
    batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]

    return np.array(batch_x), np.array(batch_y)

但是,当我尝试使用该类进行如下预测时,会发生错误:

 no_decoder_generator_1 = No_decoder_sequence(X_val_1, y_val_1, batch_size=1)
 y_predict_1, x_predict_1 = model.predict_generator(generator=no_decoder_generator_1, steps=len(X_val_1))
 y_predict_1 = np.asarray(y_predict_1)
 x_predict_1 = np.asarray(x_predict_1)  
  

ValueError:检查模型输入时出错:Numpy数组的列表   您传递给模型的信息不是模型期望的大小。   预期会看到2个数组,但得到以下1个列表   数组:[array([[[[0.9287956],。

为什么我的No_decoder_sequence仅返回一个数组值?

enter image description here

如何检查序列类返回的值?

0 个答案:

没有答案