PyTorch

PyTorch是一个基于Numpy的科学计算包,作为Numpy的替代,向用户提供使用GPU强大功能的能力。作为一款深度学习平台,向用户提供最大的灵活性和速度。

Pytorch基本语法

创建矩阵

1.创建初始化矩阵torch.empty(5,3)创建初始化矩阵,未进行赋值操作,内容随机。
2.创建初始化全零矩阵torch.zeros(5,3)创建行为5,列为3的全零矩阵。
3.直接通过数据创建矩阵torch.tensor([1.3,4.5])
4.通过news_methods方法得到张量。
x = torch.rand(5,3) x = x.mew_ones(5,3,dtype=torch.double)
然后使用randn_like方法得到尺寸相同的新张量
y = torch.randn_like(x,dtype=torch.float)

得到张量尺寸

利用size()得到张量尺寸,也可以使用a,b = x.size()分别得到x的行列数。

张量运算

张量相加方法可以是使用x+y或者torch.add(x+y)。可以设置空张量result接受运算结果,torch.add(x,y,out=result)
| add | 相加 |
| sum | 累加 |
| sub | 相减 |
| mul | 想乘 |
| div | 相除 |

原地置换,使用y.add_(x)在y的本身上加上x。

改变张量形状

设置一个随机的张量x = torch.randn(4,4),张量为4行4列。
tensor.view()操作需要保证元素数据总量不变y = x.view(16)
-1代表自动匹配个数z = x.view(-1,8)设置为8列,行自动匹配,要保证行列设置的数为总元素个数的因数。

Torch Tensor和Numpy array之间相互转换。

Torch Tensor和Numpy array共享底层的内存空间,因此改变其中一个值,另一个也会随之改变。
定义一个包含5个1的张量,a = torch.ones(5)将torch转换为numpy类型数据,b = a.numpy()。对a修改时,b的内容也随之改变,a、b共享一个内存空间。
·将Torch Tensor转换为Numpy Array类型:
b = a.numpy()
·将Numpy Array类型转换为Torch Tensor类型:
b = Torch.from_numpy(a)
使用任意的Tensors可以用.to()方法来将其移动到任意设备之上。
device = torch.device(“cuda”)
x = x.to(device) 将x从CPU移动到显卡GPU
y = y.to(“CPU”) 将y从GPU移动到CPU

Pytorch初步应用

构建一个神经网络

构建神经网络典型流程:

·定义一个拥有可学习参数的神经网络
·遍历训练数据集
·处理输入数据使其流经神经网络
·计算损失值
·将网络参数的梯度进行反向传播
·以一定的规则更新网络的权重


本文作者: Alone
本文链接: https://blog.nosecurity.cn/posts/29182.html
版权声明: 本博客所有文章除特别声明外,均为原创,采用 CC BY-SA 4.0 协议 ,转载请注明出处!