《动手学深度学习》戴口罩的胡萝卜组 - 户建坤 第二次打卡 (过欠拟合; 梯度消失爆炸;RNN进阶; 机器翻译;注意力机制与Seq2seq; Transformer; CNN基础)

过欠拟合以及解决方案

知识重点

1.K交叉验证没明白有什么用?
2.单层神经元个数, 相当于多项式拟合的次数, 但是好像神经网络都是1次方, 那到底是相当于层数加深? 还是单层参数变大? 还是目前的网络都不体现 x 的多次方???
3.难道需要和代码中构造的 3dim features 一样, 预处理特征或者特征工程的时候用别的工具提取次方信息? 也就是神经网络特征提取忽略了很多数学意义特征, 需要有 kaggle 里面好的特征工程的方法辅助.
4.opt 赋予 w 得到 opt_w 代替 w 参与计算. 但是之前直接 params list 传入 opt, 那种做法是怎样的? torch.optim.SGD(params=[net.weight], lr=lr, weight_decay=wd) 平时会用到吗? 还是 loss 多加上一部分, 看别人的代码好了.

def fit_and_plot_pytorch(wd):
    # 对权重参数衰减。权重名称一般是以weight结尾
    net = nn.Linear(num_inputs, 1)
    nn.init.normal_(net.weight, mean=0, std=1)
    nn.init.normal_(net.bias, mean=0, std=1)
    optimizer_w = torch.optim.SGD(params=[net.weight], lr=lr, weight_decay=wd) # 对权重参数衰减
    optimizer_b = torch.optim.SGD(params=[net.bias], lr=lr)  # 不对偏差参数衰减
    
    train_ls, test_ls = [], []
    for _ in range(num_epochs):
        for X, y in train_iter:
            l = loss(net(X), y).mean()
            optimizer_w.zero_grad()
            optimizer_b.zero_grad()
            
            l.backward()
            
            # 对两个optimizer实例分别调用step函数,从而分别更新权重和偏差
            optimizer_w.step()
            optimizer_b.step()
        train_ls.append(loss(net(train_features), train_labels).mean().item())
        test_ls.append(loss(net(test_features), test_labels).mean().item())
    d2l.semilogy(range(1, num_epochs + 1), train_ls, 'epochs', 'loss',
                 range(1, num_epochs + 1), test_ls, ['train', 'test'])
    print('L2 norm of w:', net.weight.data.norm().item())

5.标准的 opt 使用方法

optimizer = torch.optim.SGD(net.parameters(), lr=0.5)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, No
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值