Dropout的使用主要是在定义网络结构
在01的基础上,把改变的网络结构放在这里了
# 定义网络结构
'''
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.layer1 = nn.Sequential【用顺序模型封装起来】(nn.Linear(784,500), nn.Dropout(p=0.5), nn.Tanh()【激活函数】)
self.layer2 = nn.Sequential(nn.Linear(500,300), nn.Dropout(p=0.5), nn.Tanh())
self.layer3 = nn.Sequential(nn.Linear(300,10), nn.Softmax(dim=1))【输出层一般不需要加dropout】
def forward(self,x):
# ([64, 1, 28, 28])->(64,784)
x = x.view(x.size()[0], -1)
x = self.layer1(x)
x = self.layer2(x)
x = self.layer3(x)
return x
'''
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.layer1 = nn.Sequential(nn.Linear(784,500), nn.Dropout(p=0.5), nn.Tanh())
self.layer2 = nn.Sequential(nn.Linear(500,300), nn.Dropout(p=0.5), nn.Tanh())
self.layer3 = nn.Sequential(nn.Linear(300,10), nn.Softmax(dim=1))
def forward(self,x):
# ([64, 1, 28, 28])->(64,784)
x = x.view(x.size()[0], -1)
x = self.layer1(x)
x = self.layer2(x)
x = self.layer3(x)
return x