python - 神经网络错误不会改变
问题描述
我正在使用 TensorFlow 训练模型。在查看我的模型性能时,我得到了奇怪的结果。我构建了两个模型来对图像进行分类,一个使用 CNN,另一个使用传统的 ANN。下面是它们每个的代码设置。
#CNN model
model = Sequential()
model.add(Reshape((20, 60, 3)))
#model.add(Conv2D(128, (5, 5), (2, 2), activation='elu'))
#model.add(Conv2D(64, (4, 4), (2, 2), activation='elu'))
#model.add(Flatten())
#model.add(Dense(1, activation = 'elu'))
#model.add(Dense(25, activation = 'elu'))
#model.add(Dense(10, activation = 'elu'))
#model.add(Dense(1))
opt = keras.optimizers.RMSprop(lr=0.0009, decay=1e-6)
model.compile(Adam(lr = 0.0001), loss='mse', metrics = ['mae'])
history = model.fit(X_train, y_train, epochs = 20, validation_data=(X_val, y_val), batch_size= 32)
#ANN model
model = Sequential()
model.add(Reshape((20, 60, 3)))
#model.add(Flatten())
#model.add(Dense(10, activation = 'elu'))
#model.add(Dense(1))
opt = keras.optimizers.RMSprop(lr=0.0009, decay=1e-6)
model.compile(Adam(lr = 0.0001), loss='mse', metrics = ['mae'])
history = model.fit(X_train, y_train, epochs = 20, validation_data=(X_val, y_val), batch_size= 32)
然而,问题是我得到了几乎相同的损失,并且使用这两个模型的平均绝对误差指标,当我期望第二个模型的 mae 更高时。有谁知道为什么会这样?我的输入数据可能有问题吗?
PS 这个网络正在尝试进行回归以从图像中预测自动驾驶遥控车的转向角
编辑:
- 这是CNN的结束错误:
Epoch 20/20 113/113 [==============================] - 1s 5ms/step - loss: 0.0382 - mae: 0.1582 - val_loss: 0.0454 - val_mae: 0.1727 dict_keys(['loss', 'mae', 'val_loss', 'val_mae'])
- 这是ANN的结束错误:
Epoch 20/20 113/113 [==============================] - 0s 3ms/step - loss: 0.0789 - mae: 0.2187 - val_loss: 0.0854 - val_mae: 0.2300 dict_keys(['loss', 'mae', 'val_loss', 'val_mae'])
解决方案
我认为问题出在您的训练数据上,请尝试使用其他数据并再次检查结果
推荐阅读
- android - 从列表视图位置更改图像 alpha 并保存
- node.js - 如何在 React axios 中传入数组主体并在 Nodejs 服务器中接受数组数据主体
- javascript - 如果数组中存在文档字段值之一,则更新集合中的文档
- flutter - Column Flutter 内的水平滚动
- jquery - 显示此 jquery 数据的最佳方式
- html - 是否可以在 Angular 组件中解析 templateURL?
- android - 从存储在 StreamingDataPath 中的图像加载纹理
- python - 操作列表和字典
- javascript - 如何在 ChartsJS 中换行标签对象(嵌套数组不起作用)
- python - 如何从python中的数组中删除对象?