NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
Pytorch是一个基于Python的计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算;2、包含自动求导系统的深度神经网络。
Numpy创建的数组(ndarray)和Pytorch创建的张量(Tensors)具有相似的形式,但是Tensors具有可以使用GPU计算的优点。
1、使用确切的数据创建ndarray(numpy.array())
import numpy as np
a = np.array([4, 5, 6])
2、创建指定形状和dtype的未初始化数组(numpy.empty())
数组元素为随机值
import numpy as np
x = np.empty([3,2], dtype = int)
##若不指定dtype,则数据类型为float
3、创建初始化的数组
下面举几个例子
#全为0的数组
a = np.zeros((2, 2))
#全为1的数组
b = np.ones((2,2))
4、从现有数据创建数组(numpy.asarray())
import numpy as np
x = [1,2,3]
a = np.asarray(x)
#这里的X可以是列表、元组等等
5、来自数值范围的数组
(1)numpy.arange(start, stop, step):给定起点、终点和步长
(2)numpy.linspace(start, stop, num):给定起点、终点和数组元素个数
本文主要用于对比pytorch和numpy,对于相关例子不再详述,大家可以上网查一些资料
1、使用确切的数据创建Tensors(torch.tensor())
a = torch.tenosr(4) ##tensor(4)
b = torch.tensor((2, 3)) ##tensor([2,3])
2、创建一个指定形状、不初始化的张量(torch.empty())
x = torch.empty(5, 3) ##生成一个数值不初始化的二维5X3张量
3、torch.tensor和torch.Tensor的区别
(1)torch.Tensor是主要的tensor类,所有的tensor都是torch.Tensor的实例。而torch.tensor是一个函数,返回的是一个tensor;
(2)torch.Tensor(data)是将输入的data转化torch.FloatTensortorch
tensor(data):将data转化为torch.FloatTensor、torch.LongTensor等类型,转化类型依据于data的类型或者dtype的值;
torch.Tensor同时具有torch.tensor和torch.empty的功能,但是使用torch.Tensor可能会使你的代码confusing
4、创建初始化的张量
(1)torch.eye(n, m=None, out=None):返回一个2维张量,对角线位置全1,其它位置全0
(2)torch.from_numpy(ndarray):从已知的numpy数组创建
(3)torch.ones(*sizes, out=None):返回全为1的张量
(4)torch.zeros(*sizes, out=None):返回全为0的张量
5、来自数值范围的张量
(1)torch.arange(start, stop, step):给定起点、终点和步长
(2)torch.linspace(start, end, steps=100, out=None):给定起点、终点和张量元素个数