(1)如果把本节中的两个丢弃概率超参数对调,会有什么结果?观察并分析实验结果,并给出你的结论。
drop_prob1=0.2,drop_prob2=0.5
两个丢弃概率超参数对调前
#定义神经网络模型,将各个层声明清楚
net=nn.Sequential(
d2l.FlattenLayer(),
nn.Linear(num_inputs,num_hiddens1),
nn.ReLU(),
nn.Dropout(drop_prob1),
nn.Linear(num_hiddens1,num_hiddens2),
nn.ReLU(),
nn.Dropout(drop_prob2),
nn.Linear(num_hiddens2,10))
#模型参数的初始化
for param in net.parameters():
nn.init.normal_(param,mean=0,std=0.01)
运行结果:
epoch 1, loss 0.0048, train acc 0.531, test acc 0.740
epoch 2, loss 0.0023, train acc 0.780, test acc 0.804
epoch 3, loss 0.0020, train acc 0.817, test acc 0.834
epoch 4, loss 0.0018, train acc 0.834, test acc 0.842
epoch 5, loss 0.0017, train acc 0.844, test acc 0.848
两个丢弃概率超参数对调后
#定义神经网络模型,将各个层声明清楚
net=nn.Sequential(
d2l.FlattenLayer(),
nn.Linear(num_inputs,num_hiddens1),
nn.ReLU(),
nn.Dropout(drop_prob2)<