赞
踩
最近在学习PyTorch,发现PyTorch的tensor与Numpy有不少的相似点,于是重新系统的复习了一下Numpy,并在记录想两者的一些知识点,以备不时之需。
np.random.random([3, 3]) #生成3行3列0到1之间随机数
np.random.randn(2, 3) #生成2行3列标准正态分布随机数
#补充
np.arrange([start,] stop[,step],dtype=None)
np.linspace(start, stop, num=50,endpoint=True, retstep=False, dtype=None) #自动生成线性等分向量
1.np.multiplay:数组或矩阵对应元素相乘,输出与相乘数组或矩阵大小一致。
2.np.dot():內积
补充:transpose在深度学习中常用将图片中表示颜色顺序的RGB改为GBR
(PS:numpy函数比math函数速度更快)
当数组的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时,沿着此轴运算时都用(或复制)此轴上的第一组值。
a)torch:类似于Numpy的通用数组库,可将张量类型转换为torch.cuda.TensorFloat,并在GPU上进行计算;
b)torch.autograd:用于构建计算图形并自动获取梯度的包;
c)torch.nn:具有共享层和损失函数的神经网络库;
d)torch.optim:具有通用优化计算法(SGD、Adam等)的优化包。
PyTorch的Tensor与Numpy相似,最大的区别为Numpy会把ndarray放在CPU中进行加速运算,而由Torch产生的Tensor会放在GPU中进行加速运算(假设当前环境有GPU)。
另外torch修改自身数据时,会在运算符带下划线后缀,如x.add_(y)。
(torch.Tensor与torch.tensor区别:
1.当传入数据时,torch.Tensor使用全局默认dtype(FloatTensor),而torch.tensor是从数据中推断数据类型;
2.torch.tensor(1)返回一个固定值1,而torch.Tensor(1)返回一个大小为1的张量,它是随机初始化的值)
注:本文根据微信读书《Python深度学习:基于PyTorch》整理。
链接: Python深度学习:基于PyTorch.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。