一、pytorch学习笔记之简单分类器的构建

1.下载训练集数据和测试集数据

2.利用pytorch定义一个CNN:

 CNN结构:conv1-->relu-->pool-->conv2-->relu-->pool-->view()-->fc1-->relu-->fc2-->relu-->f3

pytorch中神经网络的一般形式:

class Net(nn.Module):

        def __init__(self):

                super(Net,self).__init__

                self.conv1=nn.Conv2d(3,6,5)

                self.conv2=nn.Conv3d(3,16,5)

                self.pool=nn.MaxPool2d(2,2)

                self.fc1=nn.Linear(16*5*5,120)

                self.fc2=nn.Linear(120,84)

                self.fc3=nn.Linear(84,10)

        def forward(self,x):

                x=self.pool(F.relu(self.conv1(x)))

                x=self.pool(F.relu(self.conv2(x)))

                x=x.view(-1,16*5*5)

                x=F.relu(self.fc1(x))

                x=F.relu(self.fc2(x))

                x=self.fc3(x)

return x

net=Net()

3.定义loss function和优化函数

import torch.optim as optim

criterion=nn.CrossEntropyLoss()

optimizer=optim.SGD(net.parameters(),lr=0.001,momentum=0.9)

4训练

for epoch in range(num_epochs)

    running_loss=0.0

    for  每个minibatch

            inputs,labels=data

            optimizer.zero_grad()#梯度清零

            outputs=net(intputs)#前向传播

            loss=criterion(outputs,labels)#计算损失

            loss.backward()#反向传播

           optimizer.step()#更新参数

  输出loss


猜你喜欢

转载自blog.csdn.net/qq_40103460/article/details/80244041
今日推荐