What is PyTorch

PyTorch,简单来说,就是以Python为基础,支持GPU计算和深度学习的平台。

Tensors

张量可以视作NumPy的ndarray,区别在于张量可以使用GPU加速。

由于PyTorch是在Python的基础上设计的,所以很多操作和Python很相像。

在使用张量前,先引入torch包:
x = torch.empty(5, 3)
在这里插入图片描述
在这里插入图片描述
可以在构建时指定数据类型,但要注意的一点是,类型前必须调用torch包,否则会报错:
在这里插入图片描述
在这里插入图片描述
也可以直接使用数据定义张量,张量的数据类型由输入数据决定:
在这里插入图片描述
在这里插入图片描述
还可以使用函数建立张量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里torch.size实际上是个tuple,可以对其做tuple的运算:

在这里插入图片描述

Operations



PyTorch的矩阵加减没什么好说的,可以用符号,也可以用函数来做,值得一提的是它在使用函数时可以将结果直接赋予变量。

在这里插入图片描述
减的函数是sub,点乘为mul,相乘为mm,除为div。此外,在函数名后加_,会让变量存储计算后的结果。

类似NumPy中的一些操作也是可以的:
在这里插入图片描述
reshape的函数是view——我的理解是相当于你划了指定长宽的框,然后把传进去的矩阵的值依次按顺序填好:
在这里插入图片描述
-1的意思是缺省,它的值根据其他值来推出:
在这里插入图片描述
-1可以放在任何位置,而且可以用于多维矩阵:
在这里插入图片描述
当你的张量只有一个元素时,可以使用item来获取其值:
在这里插入图片描述
这可以利用循环结构或随机存取来获得张量的值。

NumPy Bridge



可以使用类型转换函数将张量转换为NumPy,但反过来不行。

当张量存储在CPU中时,它和由它转换的NumPy共享存储,改变其中一个的值也会同步改变另一个:
在这里插入图片描述
从NumPy转换为张量要稍复杂些:
在这里插入图片描述
我们可以使用.to方法来将张量移动到其它设备上计算:
在这里插入图片描述
在运行后可以很明显地感到,结果比在cpu上运行要出得慢一些。这些时间应该是张量传递到cuda再传递回来所花的时间,由于数据量比较小,传递多花的时间要比计算节省的时间多很多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值