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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉德萨姆ys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值