tensorflow - 回归问题的神经网络损失大于 9000
问题描述
我制作了一个具有 15 个特征或列的 NN,每个特征/列的范围从 -50 到 +100,并且输出应该始终为正。
问题在于损失和准确性,每个时期的损失都很大
代码如下:
td = pd.read_csv('data.csv')
tg = train_data.pop('RESULT')
dataset = tf.data.Dataset.from_tensor_slices((td.values, tg.values))
td = dataset.shuffle(len(td)).batch(1)
model = tf.keras.Sequential([
tf.keras.layers.Dense(20, activation='relu'),
tf.keras.layers.Dense(20, activation='relu'),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam',loss=tf.keras.losses.MeanSquaredError())
model.fit(td, epochs=100)
解决方案
由于您使用的是回归,我认为使用均方误差很好。由于可能的目标值差异很大,因此损失如此之高,我并不感到惊讶。我建议找到一种方法来缩放值以使方差更接近 1,也许通过应用 log 函数。此外,由于您的输入包含从 -50 到 +100 不等的值,我还建议将这些值缩放为 [-1, 1] 之类的值。
推荐阅读
- javascript - 'info' 和 'history' 在 tensorflow.js 的模型中未定义
- mono - 导入 clr 给出未解析的符号
- wordpress - wordpress 生成的 URL 上的 Apache RewriteRule
- excel - VBA 全局声明
- c++ - Doxygen 如何记录使用预处理器找到的头文件
- json - 我面临 **JSON 解析错误:无法在 Spring Boot 项目中反序列化 START_OBJECT 令牌中的 `java.util.HashSet` 实例**
- php - 使用路径和值变量更新 PHP 数组
- html - 给定 HTML 时使用 CSS 自定义 Radio 组
- kubernetes - 如何区分 Pod 身份?
- php - PHP中服务器端的指纹比较