使用Pytorch创建张量以及使用numpy创建数组的异同点

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
Pytorch是一个基于Python的计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算;2、包含自动求导系统的深度神经网络。
Numpy创建的数组(ndarray)和Pytorch创建的张量(Tensors)具有相似的形式,但是Tensors具有可以使用GPU计算的优点。

使用Numpy创建数组

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,对于相关例子不再详述,大家可以上网查一些资料

使用Pytorch创建张量

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):给定起点、终点和张量元素个数

你可能感兴趣的:(pytorch,python,numpy)