【深度学习】Pytorch建立各种网络、笔记

Lenet

网络有关


nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))
'''
参数:
  in_channel: 输入数据的通道数,例RGB图片通道数为3;
  out_channel: 输出数据的通道数,这个根据模型调整;
  kennel_size: 卷积核大小,可以是int,或tuple;kennel_size=2,意味着卷积大小2, kennel_size=(2,3),意味着卷积在第一维度大小为2,在第二维度大小为3;
  stride:步长,默认为1,与kennel_size类似,stride=2,意味在所有维度步长为2, stride=(2,3),意味着在第一维度步长为2,意味着在第二维度步长为3;
  padding: 零填充
'''
nn.Liner(self, in_features, out_features, bias=True)
class torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)


张量操作有关

# 均匀分布
torch.rand(*sizes, out=None) → Tensor
# 标准正态分布
torch.randn(*sizes, out=None) → Tensor
randn() #初始化一个均值为0,方差为1的随机数Tensor。
ones() #初始化一个全为1的Tensor。
zeros() #初始化一个全为0的Tensor。

'''view'''
x = x.view(-1, 16*5*5)	# 任意维度的张量变为适应维度的16*5*5长度张量 
# 如上层(40,16,5,5)变为(40,16*5*5)

dataset及dataloader定义

'''MNIST 使用pytorch预定义的接口加载手写数据集'''
train_dataset = mnist.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True)
test_dataset = mnist.MNIST(root='./data', train=False, transform=transforms.ToTensor(), download=True)

# Data loader
train_loader = DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)
test_loader = DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)

损失函数

CrossEntropyLoss(多分类)
该criterion将nn.LogSoftmax()和nn.NLLLoss()方法结合到一个类中

交叉熵

criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.1)
'''关于使用gpu'''
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
print(device)
net.to(device)# 将模型转移至device
net.train() # 模型开启训练模式
'''训练中数据'''
for i, data in enumerate(train_loader):
    images = data[0].to(device)
    labels = data[1].to(device)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值