个人认为神经网络的的搭建代码虽然很简单,但是确实最为重要的一部分。话不多说,开始介绍。
神经网络的定义其实很简单,就是两部分,这个是基本的套路。
1)_init_() 初始化网络,定义网络的一些参数,以及他的层结构
2)forward() 定义层结构之间的关系
可能没太看明白,没关系看了代码你就会很清晰了
小demo:
import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module): #所有的模型都是Module的子类,都继承了他
def __init__(self): #类中定义的函数都有个参数self
super(Net,self).__init__()
self.conv1=nn.Conv2d(3,6,5)
#定义了一个卷积层,三个参数分别代表,输入的通道数,输出的#通道数(也就是过滤器的个数),还有过滤器的大小
self.pool=nn.MaxPool2d(2,2) #定义一个池化层,两个参数分别代表过滤器的大小和步长
self.conv2=nn.Conv2d(6,16,5)
self.fc1=nn.Linear(16*5*5,120) #定义一个全连接层
self.fc2=nn.Linear(120,84)
self.fc3&#