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"))

总结

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

相关文章

  • 详谈tensorflow gfile文件的用法

    详谈tensorflow gfile文件的用法

    今天小编就为大家分享一篇详谈tensorflow gfile文件的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法

    Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法

    今天小编就为大家分享一篇关于Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 使用Pycharm在运行过程中,查看每个变量的操作(show variables)

    使用Pycharm在运行过程中,查看每个变量的操作(show variables)

    这篇文章主要介绍了使用Pycharm在运行过程中,查看每个变量的操作(show variables),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 关于Python中的编码规范

    关于Python中的编码规范

    这篇文章主要介绍了关于Python中的编码规范,一千个程序员有一千套编码规范,统一的编码规范可以提高开发效率,需要的朋友可以参考下
    2023-04-04
  • Pycharm无法打开双击没反应的问题及解决方案

    Pycharm无法打开双击没反应的问题及解决方案

    这篇文章主要介绍了Pycharm无法打开,双击没反应,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Python实现希尔排序算法的原理与用法实例分析

    Python实现希尔排序算法的原理与用法实例分析

    这篇文章主要介绍了Python实现希尔排序算法,简单讲述了希尔排序的原理并结合具体实例形式分析了Python希尔排序的具体实现方法与使用技巧,需要的朋友可以参考下
    2017-11-11
  • Python 一键获取百度网盘提取码的方法

    Python 一键获取百度网盘提取码的方法

    这篇文章主要介绍了Python 一键获取百度网盘提取码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python之openpyxl模块的安装和基本用法(excel管理)

    python之openpyxl模块的安装和基本用法(excel管理)

    这篇文章主要给大家介绍了关于python之openpyxl模块的安装和基本用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • numpy.reshape()的函数的具体使用

    numpy.reshape()的函数的具体使用

    本文主要介绍了numpy.reshape()的函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python判断和循环语句的分析与应用

    Python判断和循环语句的分析与应用

    判断语句是用来筛选条件,过滤条件的。循环语句是用来解决重复性代码的问题,提高工作效率。今天的知识点不多,耐心看完吧
    2022-07-07

最新评论