【发布时间】:2021-09-15 01:06:17
【问题描述】:
-
我正在尝试训练一个基本的神经网络,用于在数据集上进行回归以预测汽车的价格范围。线性回归模型对数据集表现不佳,因此制作了神经网络模型。 这是我使用的图层。
tf.keras.backend.clear_session() nmodel = Sequential() nmodel.add(tf.keras.layers.Dense(10, activation='relu', input_shape=[28,])) nmodel.add(tf.keras.layers.Dense(units=1)) -
编译后可以得到如下输出
opt = tf.keras.optimizers.Adam(learning_rate=.2) nmodel.compile(loss='mean_squared_error' , optimizer=opt, metrics=['accuracy']) -
这是我用来拟合它的最后一个函数。
keras_history = nmodel.fit(X_train, Y_train , batch_size=32 ,epochs=100 , validation_data=(X_test, Y_test)) -
训练集的损失通常在 5 个 epoch 后开始停滞,此后模型停止学习。该模型的准确率也很低,即~=0.0015。
-
我尝试了几种方法来解决这个问题。我一开始以为可能是学习率太小了,但是当我提高学习率时,它也不会学习。
-
我想移除激活函数,因为可能 relu 导致神经元在达到一定损失后死亡。那也没有结果。
-
我测试了不同数量的层和不同数量的神经元。最后,它们都对模型学习没有影响。
-
我曾经做过分类神经网络,这是我第一次做回归神经网络。我觉得我缺少一些非常基本的东西。
【问题讨论】:
-
代码必须在问题本身中作为文本,而不是作为外部链接。
-
@Dr.Snoopy 对不起。从现在开始,我将确保在问题中有代码。
-
准确率在这里不是一个正确的指标,它是用来分类的。
标签: python tensorflow keras neural-network regression