用pytorch实现吴恩达老师深度学习课程课后编程作业(课程二,第一周)

要做的事:
1 参数初始化
2 正则化

参数初始化
#model[0].weight是第0层的w参数,其他层可同样的方法初始化参数,初始化在建好model后使用,怎样建model参考上一篇。
# 0-1之间均匀分布
torch.nn.init.uniform_(model[0].weight, a=0, b=1)
# 初始化为常数0.5
torch.nn.init.constant_(model[0].weight, 0.5)
# 正态分布
torch.nn.init.normal_(model[0].weight)

正则化
正则化是用来减小过拟合的方法,这里给出L2正则化方法和dropout方法

L2正则化

optimizer = torch.optim.Adam(model.parameters(), lr=learn_rate,weight_decay=0.01)
#这里的weight_decay=0.01相当于λ参数。

dropout方法

model=torch.nn.Sequential(
    torch.nn.Linear(in_put,Hidden1,bias=True),
    torch.nn.ReLU(),
    torch.nn.Dropout(0.2),
    torch.nn.Linear(Hidden1,Hidden2,bias=True),
    torch.nn.ReLU(),
    torch.nn.Dropout(0.2),
    torch.nn.Linear(Hidden2,out_put,bias=True),
    torch.nn.Sigmoid(),
)
#在每层后边加上torch.nn.Dropout(0.2),0.2是随机架空该层20%神经元。

结合上篇看

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值