神经网络的预测结果一样,请问我应该怎么改进?

  统计/机器学习 回归分析 数据竞赛 人工神经网络 TensorFlow    浏览次数:223        分享
1

我在预测自行车的练习赛中,定义了这样的一个神经网络,但是我预测的结果都是一样的,请问我该怎么改进!谢谢指导!

net = torch.nn.Sequential(
    torch.nn.Linear(7,100),    # 输入层到隐藏层
    torch.nn.Sigmoid(),
    torch.nn.Linear(100,1),    # 隐藏层到输出层
)
optimizer = torch.optim.Adam(net.parameters(),lr=0.02)
loss_func = torch.nn.MSELoss()
下面是训练过程!
for i in range(60):
    prediction = net(train)
    loss = loss_func(prediction,y_train)
    # 梯度归零
    optimizer.zero_grad()
    # 计算梯度
    loss.backward()
    # 更新结点
    optimizer.step()
    if i % 20 == 0:
        print(loss)

本应该输出的结果:

tensor([15., 48., 21., 11., 39., 12., 11., 67., 77., 2.])

Out

    tensor([[51.4017],

            [49.5164],

            [48.2066],

            [49.3453],

            [49.4258],

            [48.9165],

            [48.8166],

            [49.5939],

            [50.7129],

            [49.8309]], grad_fn=)

 

liuyang   2019-07-25 08:11



   1个回答 
0

我感觉你的预测值就是平均值,没有去进行收敛的。

问题可能是

1)你的输入值没有进行标准化处理

2)你的学习率设置不当,你可以减小试试

SofaSofa数据科学社区DS面试题库 DS面经

whs_ita   2019-07-25 17:07

谢谢了,我发现神经网络在处理这种问题时,效果没有机器学习的回归模型的好。 - liuyang   2019-07-25 17:12


  相关主题

请教一下:关于融合stack   1回答

模型融合问题   2回答

时下最流行的模型   1回答

如何在本地判断算法效果得到优化?   1回答

tensorflow 训练的时候输出nan   1回答

tf.placeholder(tf.float32, shape=(None, 1024))中的None是什么意思   1回答

一维数据怎么输入卷积网络。   2回答

tensorflow里出现的strides是什么意思   1回答

如何通过docker安装TensorFlow   1回答

pycharm+anaconda的安装问题   1回答

模仿tensorflow教程10-11的代码,报错,求解   1回答

tf.truncated_normal和tf.random_normal有什么区别?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!