我的模型在进行预测时希望接收两个输入数组。 (值,标签)
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
仅返回一个数组值?
如何检查序列类返回的值?