神经网络使用包torch.nn
构建。
nn
依赖于autograd
定义模型并且区分。一个nn.Moudule
包含层(layers),以及一个返回输出(output)的前向(forward(input))方法。
上图是一个数字图片分类网络。这是一个简单的前馈网络,包括输入,通过几个层,最后产生输出。
一个典型的神经网络包含如下步骤:
- 定义一些具有可学习参数(或权重)的神经网络
- 数据集迭代(iterare)输入
- 通过网络处理输入
- 计算损失(即输出与正确的预测有多远)
- 将梯度传播回网络的参数中
- 更新网络的权重,通常使用的规则为:weight=weight-learning_rate*grdient
定义一个网络
#-*-coding:utf-8-*-
import torch
import torch.nn as nn
import torch.nn.functional as f
class Net(nn.Module):
def __init__(self):
super(Net,self).__init__()
self.conv1 = nn.Conv2d(1,6,5)
self.conv2 = nn.Conv2d(6,16,5)
self.fc1