我正在尝试运行一个回归模型,它非常类似于Tensorflow教程(使用我自己的数据集)。我的数据和标签是numpy数组中的float
值,例如:
数据,varnameinput_array
:
[[0.63473794 0.16736857 0.19028714 1.38746357 1.00389089 1.78771353]
[0.58772032 0.19225393 0.22888241 1.41612279 1.09661261 1.52805896]
[0.37530531 0.19501039 0.24683006 1.31084661 1.14897087 0.86286696]
[0.29121152 0.19009779 0.255342 1.16257489 1.16012728 0.1838582 ]]
标签,varnamelabel_array
:
我的模型是用以下组件构建的:
model = keras.Sequential([
layers.Dense(64, activation=tf.nn.relu, input_shape=[len(input_array.keys())]),
layers.Dense(64, activation=tf.nn.relu),
layers.Dense(1)
])
optimizer = tf.keras.optimizers.RMSprop(0.001)
model.compile(loss='mean_squared_error',
optimizer=optimizer,
metrics=['mean_absolute_error', 'mean_squared_error'])
培训功能是:
history = model.fit(
input_array, label_array,
epochs=EPOCHS, validation_split = 0.2, verbose=0,
callbacks=[cp_callback])
对于任意数量的时间段,模型将返回:
loss mean_absolute_error ... val_mean_squared_error epoch
0 NaN NaN ... NaN 0
我不确定是什么非数字导致了这个问题,因为我给模型的所有值都是数字。在
我自己没有这个问题,刚开始使用keras。但是我读到过其他人在处理坏的条件数据时遇到了麻烦,而且更改优化器可能会解决问题。在
RMSprop1上的keras文档指出,它对递归网络很好,而在代码中则不是这样。在
我把代码简化了一点,它在colab中运行得很好。在
一般来说,我发现避免混合keras和tfapi是很有用的,除非需要这样做。我明白这并不是你的代码的问题所在,但我希望它能对你有所帮助。在
相关问题 更多 >
编程相关推荐