pytorch使用-tensor的基本操作解读

 更新时间:2022年12月13日 10:53:46   作者:大虾飞哥哥  
这篇文章主要介绍了pytorch使用-tensor的基本操作解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、tensor加减乘除

加法操作

import torch

x = torch.randn(2, 3)
y = torch.randn(2, 3)

z = x + y
print(z)

z = torch.add(x, y)
print(z)

y.add_(x)
print(y)

其他操作类似:减法:sub(-), 乘法:mul(*), 除法:div(/)

二、tensor矩阵运算

# 二维矩阵相乘
a = torch.full([2, 2], 3, dtype=torch.long)
b = torch.ones(2, 2, dtype=torch.long)

print(a)
print(b)
print(torch.mm(a, b))

#  matmul 和 @ 可以用于二维矩阵计算,也可以是多维
# 四维,计算的时候就是前两维不变,后两维进行计算。
a = torch.rand(1, 1, 3, 2)
b = torch.rand(1, 1, 2, 4)

c = torch.matmul(a, b)
print(a)
print(b)
print(c)

pow

a = torch.full([2, 2], 6)
print(a.pow(3))

a = torch.full([2, 2], 6)
print(a**2)
  • sqrt: 平方根
  • rsqrt: 平方根倒数
a = torch.full([2, 2], 1024)

print(a.sqrt())
print(a.rsqrt())
print(a**0.5)

exp log

a = torch.ones(2, 2)

print(torch.exp(a))
print(torch.log(a))
print(torch.log2(a))
  • .floor()——往下近似
  • .ceil()——往上近似
  • .trunc()——裁剪为整数部分
  • .frac()——裁剪成小数部分
a = torch.tensor(3.1415926)

print(a.floor())
print(a.ceil())
print(a.trunc())
print(a.frac())

torch.round()——四舍五入

a = torch.tensor(3.1415926)

print(a.round())

.item() 转化为python number

x = torch.randn(1)

print(x)
print(x.item())

四、tensor切片操作

a = torch.randn(4, 3)
print(a)

# 取第二列
print(a[:, 1])

# 取前两列
print(a[:, :2])

五、tensor改变形状

x = torch.randn(4, 4)
y = x.view(16)

# -1, 自动匹配个数
z = x.view(-1, 8)

print(x)
print(y)
print(z)

六、tensor 和 numpy.array相互转换

# 底层内存共享
x = torch.ones(5)
print(x)

y = x.numpy()
print(y)

x.add_(1)
print(y)

import numpy as np
x = np.ones(5)
y = torch.from_numpy(x)
print(y)

七、tensor 转到GPU上

if torch.cuda.is_available():
    
    device = torch.device("cuda")
    x = torch.randn(2, 3)
    print(x)

    y = x.to(device)
    print(y)

    z = torch.randn(2, 3, device="cuda")
    print(z)
    
    # 同时在GPU上才能相加
    print(y + z)

    # 转换会cpu
    print(z.to("cpu"))

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python文件编写好后如何实践

    python文件编写好后如何实践

    在本篇文章里小编给大家分享了关于python文件编写好后如何实践的相关内容,需要的朋友们可以参考下。
    2020-07-07
  • Python Numpy 实现交换两行和两列的方法

    Python Numpy 实现交换两行和两列的方法

    今天小编就为大家分享一篇Python Numpy 实现交换两行和两列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python协程用法实例分析

    python协程用法实例分析

    这篇文章主要介绍了python协程用法,实例分析Python中协议的概念、功能及使用方法,需要的朋友可以参考下
    2015-06-06
  • Python如何按单元格读取复杂电子表格(Excel)的数据

    Python如何按单元格读取复杂电子表格(Excel)的数据

    这篇文章主要介绍了Python如何按单元格读取复杂电子表格(Excel)的数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python中random.shuffle()函数用法代码案例

    Python中random.shuffle()函数用法代码案例

    random.shuffle方法,对元素进行重新排序,打乱原有的顺序,返回一个随机序列,该方法的作用类似洗牌,本文重点给大家介绍Python中random.shuffle()函数用法代码案例,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 在python中解决死锁的问题

    在python中解决死锁的问题

    这篇文章主要介绍了在python中解决死锁的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 对Python 字典元素进行删除的方法

    对Python 字典元素进行删除的方法

    这篇文章主要介绍了对Python 字典元素进行删除的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解Python在七牛云平台的应用(一)

    详解Python在七牛云平台的应用(一)

    这篇文章主要介绍了详解Python在七牛云平台的应用(一),涉及Python通过官方库对空间的操作,上传的步骤,操作方法等相关内容,以及完整的操作代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • python中random随机函数详解

    python中random随机函数详解

    大家好,本篇文章主要讲的是python中random随机函数详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • python pandas 数据排序的几种常用方法

    python pandas 数据排序的几种常用方法

    这篇文章主要介绍了python pandas数据排序的几种常用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09

最新评论