Numpy & PyTorch知识点总结
前言
最近在学习PyTorch,发现PyTorch的tensor与Numpy有不少的相似点,于是重新系统的复习了一下Numpy,并在记录想两者的一些知识点,以备不时之需。
Numpy
1.np.random模块常用函数
np.random.random([3, 3]) #生成3行3列0到1之间随机数
np.random.randn(2, 3) #生成2行3列标准正态分布随机数
2.Numpy数组创建函数
#补充
np.arrange([start,] stop[,step],dtype=None)
np.linspace(start, stop, num=50,endpoint=True, retstep=False, dtype=None) #自动生成线性等分向量
3.Numpy算术运算
1.np.multiplay:数组或矩阵对应元素相乘,输出与相乘数组或矩阵大小一致。
2.np.dot():內积
4.Numpy中改变向量形状的函数
补充:transpose在深度学习中常用将图片中表示颜色顺序的RGB改为GBR
5.合并数组
6.Numpy中的几个常用通用函数
(PS:numpy函数比math函数速度更快)
7.Numpy广播机制
当数组的shape不相等时,Numpy会使用广播机制。广播规则:
1)让所有输入数组都向其中shape最长的数组看齐,不足的部分则通过在前面加1补齐,如:
a:2×3×2
b:3×2
则b向a看齐,在b的前面加1,变为:1×3×2
2)输出数组的shape是输入数组shape的各个轴上的最大值;
3)如果输入数组的某个轴和输出数组的对应轴的长度相同或者某个轴的长度为1时,这个数组能被用来计算,否则出错;
4)当输入数组的某个轴的长度为1时,沿着此轴运算时都用(或复制)此轴上的第一组值。
PyTorch
概述
1.Pytorch主要包组成:
a)torch:类似于Numpy的通用数组库,可将张量类型转换为torch.cuda.TensorFloat,并在GPU上进行计算;
b)torch.autograd:用于构建计算图形并自动获取梯度的包;
c)torch.nn:具有共享层和损失函数的神经网络库;
d)torch.optim:具有通用优化计算法(SGD、Adam等)的优化包。
2.PyTorch与Numpy区别
PyTorch的Tensor与Numpy相似,最大的区别为Numpy会把ndarray放在CPU中进行加速运算,而由Torch产生的Tensor会放在GPU中进行加速运算(假设当前环境有GPU)。
另外torch修改自身数据时,会在运算符带下划线后缀,如x.add_(y)。
1.创建Tensor
(torch.Tensor与torch.tensor区别:
1.当传入数据时,torch.Tensor使用全局默认dtype(FloatTensor),而torch.tensor是从数据中推断数据类型;
2.torch.tensor(1)返回一个固定值1,而torch.Tensor(1)返回一个大小为1的张量,它是随机初始化的值)
2.修改Tensor的形状
3.常用选择操作函数
4.常见逐元素操作
5.常见归并操作
6.常见比较操作
7.常用矩阵函数
8.PyTorch与Numpy函数对照表
注:本文根据微信读书《Python深度学习:基于PyTorch》整理。
链接: Python深度学习:基于PyTorch.