gpt4 book ai didi

python - 具有多个输入的 Keras 顺序模型

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:31 24 4
gpt4 key购买 nike

我正在制作一个 MLP 模型,它接受两个输入并产生一个输出。

我有两个输入数组(每个输入一个)和 1 个输出数组。神经网络有 1 个隐藏层和 2 个神经元。每个数组有 336 个元素。

model0 = keras.Sequential([
keras.layers.Dense(2, input_dim=2, activation=keras.activations.sigmoid, use_bias=True),
keras.layers.Dense(1, activation=keras.activations.relu, use_bias=True),
])

# Compile the neural network #
model0.compile(
optimizer = keras.optimizers.RMSprop(lr=0.02,rho=0.9,epsilon=None,decay=0),
loss = 'mean_squared_error',
metrics=['accuracy']
)

我试了两种方法,都报错。

model0.fit(numpy.array([array_1, array_2]),output, batch_size=16, epochs=100)

ValueError: Error when checking input: expected dense_input to have shape (2,) but got array with shape (336,)

第二种方式:

model0.fit([array_1, array_2],output, batch_size=16, epochs=100)

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 1 array(s), but instead got the following list of 2 arrays:

Similar question .但不使用顺序模型。

最佳答案

要解决这个问题,您有两种选择。

<强>1。使用顺序模型

在馈送到网络之前,您可以将两个数组连接成一个。假设这两个数组的形状为 (Number_data_points, ),现在可以使用 numpy.stack 方法合并数组。

merged_array = np.stack([array_1, array_2], axis=1)

model0 = keras.Sequential([
keras.layers.Dense(2, input_dim=2, activation=keras.activations.sigmoid, use_bias=True),
keras.layers.Dense(1, activation=keras.activations.relu, use_bias=True),
])

model0.fit(merged_array,output, batch_size=16, epochs=100)

<强>2。使用函数式 API。

当模型有多个输入时,这是最推荐的使用方式。

input1 = keras.layers.Input(shape=(1, ))
input2 = keras.layers.Input(shape=(1,))
merged = keras.layers.Concatenate(axis=1)([input1, input2])
dense1 = keras.layers.Dense(2, input_dim=2, activation=keras.activations.sigmoid, use_bias=True)(merged)
output = keras.layers.Dense(1, activation=keras.activations.relu, use_bias=True)(dense1)
model10 = keras.models.Model(inputs=[input1, input2], output=output)

现在您可以使用第二种方法来尝试拟合模型

model0.fit([array_1, array_2],output, batch_size=16, epochs=100)

关于python - 具有多个输入的 Keras 顺序模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55233377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com