【Task1(2天)】PyTorch的基本概念
1.什么是Pytorch,为什么选择Pytroch?
2.Pytroch的安装
3.配置Python环境
4.准备Python管理器
5.通过命令行安装PyTorch
6.PyTorch基础概念
7.通用代码实现流程(实现一个深度学习的代码流程)
1.什么是Pytorch,为什么选择Pytroch?
PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。 它主要由Facebook的人工智能研究小组开发。Uber的"Pyro"也是使用的这个库
PyTorch是一个Python包,提供两个高级功能:
具有强大的GPU加速的张量计算(如NumPy)
包含自动求导系统的的深度神经网络
2.3.4.5.Pytroch的安装
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
将anaconda的位置加入系统环境变量即可
6.PyTorch基础概念
PyTorch算是相当简洁优雅且高效快速的框架
设计追求最少的封装,尽量避免重复造轮子
算是所有的框架中面向对象设计的最优雅的一个,设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法
大佬支持,与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
不错的的文档(相比FB的其他项目,PyTorch的文档简直算是完善了,参考Thrift),PyTorch作者亲自维护的论坛 供用户交流和求教问题
入门简单
7.通用代码实现流程(实现一个深度学习的代码流程)
class CNNnet(torch.nn.Module):
def __init__(self):
super(CNNnet,self).__init__()
self.conv1 = torch.nn.Sequential(
torch.nn.Conv2d(in_channels=1,
out_channels=16,
kernel_size=3,
stride=2,
padding=1),
torch.nn.BatchNorm2d(16),
torch.nn.ReLU()
)
self.conv2 = torch.nn.Sequential(
torch.nn.Conv2d(16,32,3,2,1),
torch.nn.BatchNorm2d(32),
torch.nn.ReLU()
)
self.conv3 = torch.nn.Sequential(
torch.nn.Conv2d(32,64,3,2,1),
torch.nn.BatchNorm2d(64),
torch.nn.ReLU()
)
self.conv4 = torch.nn.Sequential(
torch.nn.Conv2d(64,64,2,2,0),
torch.nn.BatchNorm2d(64),
torch.nn.ReLU()
)
self.mlp1 = torch.nn.Linear(2*2*64,100)
self.mlp2 = torch.nn.Linear(100,10)
def forward(self, x):
x = self.conv1(x)
x = self.conv2(x)
x = self.conv3(x)
x = self.conv4(x)
x = self.mlp1(x.view(x.size(0),-1))
x = self.mlp2(x)
return x
model = CNNnet()
print(model)