基于Pytorch的网络设计语法1
第一种语法:
层层堆叠
import torch.nn as nn
import torch.functional as F
import torch.optim as optim
from collections import OrderedDict
class Net1(nn.Module):# 从nn.Module 继承
def __init__(self):# 在类的初始化函数里完成曾的构建
super(Net1,self).__init__()
self.conv1=nn.Conv2d(3,32,3,1,1)
self.dense1=nn.Linear(32*3*3,128)#全连接层
self.dense2 = nn.Linear(128,10)#全连接层
def forward(self,x):# 构建前向传播的流程
x=F.max_pool2d(F.relu(self.conv(x)),2)# 先卷积, 然后激活, 然后最大池化
x=x.view(x.size(0),-1)#拉伸 为1维
x=F.relu(self.dense1(x))# 全链接 ,然后激活
x=self.dense2(x)# 再次全链接
return x
gsznet = Net1()
print(gsznet)
if __name__ == '__main__':
print("XXXXXXXXXXXXXX")
×××××××××××
import torch.nn as nn
import torch.functional as F
import torch.optim as optim
from collections import OrderedDict
class Net1(nn.Module):# 从nn.Module 继承
def __init__(self):# 在类的初始化函数里完成曾的构建
super(Net1,self).__init__()
self.conv1=nn.Conv2d(3,32,3,1,1)# 卷积
self.relu=nn.ReLU()#激活
self.pool=nn.MaxPool2d(2)#最大值池化
self.dense1=nn.Linear(32*3*3,128)#全连接层
self.dense2 = nn.Linear(128,10)#全连接层
def forward(self,input_x):# 构建前向传播的流程
x=self.conv1(input_x)
x=self.relu(x)
x=self.pool(x)
#x=F.max_pool2d(F.relu(self.conv(x)),2)# 先卷积, 然后激活, 然后最大池化
x=x.view(x.size(0),-1)#拉伸 为1维
x = self.dense1(x) # 全链接
x = self.relu(x)
#x=F.relu(self.dense1(x))# 全链接 ,然后激活
x=self.dense2(x)# 再次全链接
return x
gsznet = Net1()
print(gsznet)
if __name__ == '__main__':
print("XXXXXXXXXXXXXX")

浙公网安备 33010602011771号