Tensor 和 NumPy 相互转换

我们很容易用numpy()from_numpy()TensorNumPy中的数组相互转换。但是需要注意的一点是: 这两个函数所产生的TensorNumPy中的数组共享相同的内存(所以他们之间的转换很快),改变其中一个时另一个也会改变!

文章目录

  • Tensor 和 NumPy 相互转换
    • 1. Tensor 转 NumPy
    • 2. NumPy 数组转 Tensor
    • 3. torch.tensor() 将 NumPy 数组转换成 Tensor

1. Tensor 转 NumPy

a = torch.ones(6)
b = a.numpy()
print(a, b)a += 1
print(a, b)
b += 1
print(a, b)
tensor([1., 1., 1., 1., 1., 1.]) [1. 1. 1. 1. 1. 1.]
tensor([2., 2., 2., 2., 2., 2.]) [2. 2. 2. 2. 2. 2.]
tensor([3., 3., 3., 3., 3., 3.]) [3. 3. 3. 3. 3. 3.]

2. NumPy 数组转 Tensor

import numpy as np
a = np.ones(7)
b = torch.from_numpy(a)
print(a, b)a += 1
print(a, b)
b += 1
print(a, b)
[1. 1. 1. 1. 1. 1. 1.] tensor([1., 1., 1., 1., 1., 1., 1.], dtype=torch.float64)
[2. 2. 2. 2. 2. 2. 2.] tensor([2., 2., 2., 2., 2., 2., 2.], dtype=torch.float64)
[3. 3. 3. 3. 3. 3. 3.] tensor([3., 3., 3., 3., 3., 3., 3.], dtype=torch.float64)

3. torch.tensor() 将 NumPy 数组转换成 Tensor

直接用torch.tensor()NumPy数组转换成Tensor,该方法总是会进行数据拷贝,返回的Tensor和原来的数据不再共享内存。

import numpy as np
a = np.ones((2,3))
c = torch.tensor(a)
a += 1
print('a:',a)
print('c:',c)
print(id(a)==id(c))
a: [[2. 2. 2.][2. 2. 2.]]
c: tensor([[1., 1., 1.],[1., 1., 1.]], dtype=torch.float64)
False

Tensor 和 NumPy 相互转换相关推荐

  1. PyTorch 笔记(10)— Tensor 与 NumPy 相互转换、两种共享内存以及两者的广播法则

    Tensor 与 NumPy 有很高的相似性,彼此之间的互操作也非常简单有效,需要注意的是 Tensor 与 NumPy 共享内存,由于 NumPy 历史悠久,所以遇到 Tensor 不支持的操作时, ...

  2. Variable、Tensor、Numpy的转换

    Tensor <--> Numpy Tensor与Numpy之间可以相互转换: 代码: [plain] view plaincopy import torch import numpy a ...

  3. python代码转换为pytorch_python基础教程Pytorch之Tensor和Numpy之间的转换的实现方法...

    为什么要相互转换: 1. 要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就 ...

  4. PyTorch 安装和基本运算— Tensor 的数据类型(浮点型、整型、随机浮点型等)、基本运算(绝对值、求和、裁剪、求商、求积、求幂等)、Tensor 与 Numpy 转换

    PyTorch 的安装可以到官网 https://pytorch.org/,选择适合自己机器以及安装方式,执行对应的命令即可. 除了安装 PyTorch 之外,建议也安装 torchvision 包. ...

  5. 2021-07-26 TypeError: can‘t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the

    can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. 意思是:如果 ...

  6. can‘t convert cuda:0 device type tensor to numpy

    can't convert cuda:0 device type tensor to numpy x是list,list内容是tensor cuda 代码: x = np.array(x) 则会报错: ...

  7. Pytorch中的variable, tensor与numpy相互转化

    来源:https://blog.csdn.net/m0_37592397/article/details/88327248 1.将numpy矩阵转换为Tensor张量 sub_ts = torch.f ...

  8. pytorch Tensor转numpy并解决RuntimeError: Can‘t call numpy() on Tensor that requires grad.报错

    解决方法 转numpy时使用Tensor.detach().numpy(): a = torch.ones(5) b = a.detach().numpy() print(b) 问题解析 当计算中的t ...

  9. Pytorch:Tensor和Numpy

    3.1.2 Tensor和Numpy Tensor和Numpy数组之间具有很高的相似性,彼此之间的互操作也非常简单高效.需要注意的是,Numpy和Tensor共享内存.由于Numpy历史悠久,支持丰富 ...

最新文章

  1. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
  2. python程序、画一个笑脸_如何使用canvas画一个微笑的表情(代码示例)
  3. typeorm 生成实体类_android常用orm框架greenDAO创建表生成实体类
  4. 是什么成就了卓越的程序员?
  5. boost linux 测试程序,Linux平台下安装 boost 库
  6. java 反射 接口工具类_Java 反射工具类 ReflectionUtils
  7. Combiner合并的使用案例
  8. 白板推导系列Pytorch-隐马尔可夫模型(HMM)
  9. pandas及numpy笔记
  10. (转)《精通比特币》原码分析:公钥、私钥、比特币地址
  11. Python3 - 深入学习Docker容器管理
  12. 项目管理十大知识领域
  13. Elasticsearch顶尖高手系列:高手进阶篇(二)
  14. Android 字体颜色渐变效果 Span实现
  15. 第十二节:通信之WLAN(Miracast)
  16. 化繁为简,我用”知晓推送”开发微信小程序订阅消息
  17. VMware虚拟磁盘VMDK格式说明书1.1---3 The Descriptor File描述文件
  18. 易支付程序对接固码支付
  19. 学业竞技实业网址窗口
  20. 图形验证码和短信验证码

热门文章

  1. 【优化算法】基于变异策略的改进型花朵授粉算法matlab源码
  2. jsp+ssm计算机毕业设计大方汽车租赁管理系统【附源码】
  3. MacBook Air 拆机组图
  4. linux 解压rar文件
  5. 『无法安装应用程序,因为XXXXXXXX的证书无效』解决方法。
  6. 网站优化之如何让友链更给力
  7. 中电金信:数字化转型|银行业数据中心数字化转型之驱动篇
  8. 初二因式分解奥数竞赛题_初中数学培优 七年级下 第九讲 因式分解的应用 许多竞赛题讲解...
  9. Nodejs+webSocket搭建多人聊天室
  10. Python黑技术:远程控制男朋友电脑(内附python教程分享)