python - 具有可变输入形状的 Keras

标签 python tensorflow keras neural-network

我正在尝试构建一个模型,该模型应该采用两个可变长度的输入:

env_input1 = Input(shape=(None,), dtype='int32')
env_input2 = Input(shape=(None,), dtype='int32')
env = concatenate([env_input1, env_input2])
env = Dense(50, activation='relu')(env)
env = Dense(100, activation='relu')(env)
env = Dense(50, activation='relu')(env)
env_output = Dense(1)(env)
env_model = Model(inputs=[env_input1, env_input2], outputs=[env_output])
adam_opt = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
env_model.compile(loss='mse', optimizer=adam_opt, metrics=['accuracy'])

我收到此错误:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

有什么建议可以解决这个问题吗?

最佳答案

人工神经网络无法使用可变长度输入,因为网络中的第一个密集层不知道在训练之前要初始化的权重维度

但是在卷积神经网络的情况下,您可能在输入时具有可变的图像尺寸,因为在 Conv2D 的情况下,所有输入参数决定权重的尺寸。我们稍后在 CNN 的情况下使用全局平均池,在 CNN 特征提取器之后成功添加密集层分类器。

关于python - 具有可变输入形状的 Keras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775526/

相关文章:

python - 如何将多个 NumPy 数组输入 Keras 中的深度学习网络?

python - Selenium 启动但不加载页面

python - 两个 DF、pandas 的组合

python - None 背后的概念是什么?

tensorflow - 为什么我们在将数据输入 tensorflow 之前将其展平?

python - Tensorflow keras Matrix size-与极其简单的模型不兼容

python - SQLAlchemy 从两个具有空 LEFT JOIN 的表中选择返回空结果

python-3.x - 在 Tensorflow 2.1.0 中强制急切执行

tensorflow - 带有窥视孔的 LSTM 实现

keras - keras 和 tf.keras 模型之间的兼容性