Python 仅在添加验证选项时发生错误:Numpy数组不是模型预期的大小

Python 仅在添加验证选项时发生错误:Numpy数组不是模型预期的大小,python,numpy,keras,deep-learning,Python,Numpy,Keras,Deep Learning,奇怪的是,我得到了这样一个“检查模型输入错误:您传递给模型的Numpy数组列表不是模型预期的大小。”只有在我添加验证数据集选项时(如果我删除了代码中的验证部分,它才起作用)。 显然,(据我所知)输入了合适的验证数据形状以及培训数据集。我刚刚输入了与训练数据集完全相同的验证数据集 培训/验证输入表如下 部分_x_列/部分_estondo/部分_y_列:(7000,1)numpy阵列 x_val/estendo_val/y_val:(3000,1)numpy数组 我已经尝试过的(2种方法) 1) s

奇怪的是,我得到了这样一个“检查模型输入错误:您传递给模型的Numpy数组列表不是模型预期的大小。”只有在我添加验证数据集选项时(如果我删除了代码中的验证部分,它才起作用)。
显然,(据我所知)输入了合适的验证数据形状以及培训数据集。我刚刚输入了与训练数据集完全相同的验证数据集

培训/验证输入表如下

部分_x_列/部分_estondo/部分_y_列:(7000,1)numpy阵列 x_val/estendo_val/y_val:(3000,1)numpy数组

我已经尝试过的(2种方法)

1) stackoverflow中的另一篇文章建议在keras模型无法识别非numpy数组输入的情况下使用“np.array()”。然而,它在我的情况下不起作用。我认为这不是我的解决办法

2) 起初我认为这主要是因为括号不正确。所以我试着改变那部分。但两者都不起作用。(即使我将培训数据集输入为验证数据集)

----------跳过:只是创建数据集-----------

错误消息如下 ValueError:检查模型输入时出错:传递给模型的Numpy数组列表的大小不是模型预期的大小。预期会看到2个数组,但得到了以下1个数组的列表:[array([[1.60455704e-04,-9.37487497e-01], [9.99757528e-01,1.45345668e-01], [9.99548554e-01,2.66093564e-02], ..., [9.98771310e-01,-1.19436635e-01], [6.7000

def create_mean(inputs):
    x = inputs
    x = Dense(100, activation='relu')(x)
    x = Dense(1, activation='linear', name='mean_output')(x)
    return x


def create_std(inputs):
    x = inputs
    x = Dense(100, activation='relu')(x)
    x = Dense(1, activation='softplus', name='var_output')(x)
    return x


def generatesecmodel(name):
    inputs = keras.Input(shape=(second_input,))
    mean_branch = create_mean(inputs)
    var_branch = create_std(inputs)
    label_mean = Input(shape=(1,))
    model2 = Model(inputs=[inputs, label_mean], outputs=[mean_branch, var_branch])

    loss = 0.5 * K.log(var_branch + 1e-6) + 0.5 * K.square(label_mean - mean_branch) / (var_branch + 1e-6)

    model2.add_loss(loss)
    optimizer = optimizers.Adam(lr=0.1)
    model2.compile(optimizer=optimizer, loss=None)

    model2.fit([np.concatenate((partial_estendo, partial_x_train), axis=1), partial_y_train], epochs=num_epochs,
               batch_size=batch_size, validation_data=([np.concatenate((estendo_val, x_val), axis=1), y_val]))


model = generatesecmodel('test')