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 协议 ,转载请注明出处!