iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >tensor与numpy的相互转换
  • 864
分享到

tensor与numpy的相互转换

pytorch 2023-09-05 10:09:24 864人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

tensor与numpy的相互转换 1. numpy转tensor命令1:torch.tensor()命令2:torch.as_tensor()命令3:torch.from_numpy()区别

tensor与numpy的相互转换

1. numpy转tensor

命令1:torch.tensor()

在这里插入图片描述

 a = np.random.random(size=(4,5)) b = torch.tensor(a,dtype=torch.float)====输出========>> aarray([[0.93866392, 0.5665604 , 0.32893379, 0.77752777, 0.59380636],       [0.09680724, 0.09611474, 0.69760508, 0.9120742 , 0.07956756],       [0.46761691, 0.7771953 , 0.23979901, 0.52539619, 0.99063046],       [0.05881101, 0.77289148, 0.22587614, 0.6438252 , 0.82986165]])>>btensor([[0.9387, 0.5666, 0.3289, 0.7775, 0.5938],        [0.0968, 0.0961, 0.6976, 0.9121, 0.0796],        [0.4676, 0.7772, 0.2398, 0.5254, 0.9906],        [0.0588, 0.7729, 0.2259, 0.6438, 0.8299]])

注意
在这里插入图片描述

命令2:torch.as_tensor()

在这里插入图片描述

>>> c =torch.as_tensor(a)>>> ctensor([[0.9387, 0.5666, 0.3289, 0.7775, 0.5938],        [0.0968, 0.0961, 0.6976, 0.9121, 0.0796],        [0.4676, 0.7772, 0.2398, 0.5254, 0.9906],        [0.0588, 0.7729, 0.2259, 0.6438, 0.8299]], dtype=torch.float64)

命令3:torch.from_numpy()

在这里插入图片描述

>>> d = torch.from_numpy(a)>>> dtensor([[0.9387, 0.5666, 0.3289, 0.7775, 0.5938],        [0.0968, 0.0961, 0.6976, 0.9121, 0.0796],        [0.4676, 0.7772, 0.2398, 0.5254, 0.9906],        [0.0588, 0.7729, 0.2259, 0.6438, 0.8299]], dtype=torch.float64)

区别:转换之后,numpy.array和tensor中的数据是否仍指向相同的内存地址

  • torch.from_numpy(np.array)torch.as_tensor(),均会指向相同的内存地址。
  • torch.tensor()不会指向相同的内存地址,是深度copy。从下面的实例可以看到,修改numpy的值,tensor的值不会改变
n = np.ones(5)t = torch.as_tensor(n)t1 = torch.from_numpy(n)t2 = torch.tensor(n)print('numpy n = ', n)print('torch t =', t)print('torch t1 =', t1)print('torch t2 =', t2)n += 1print("\nafter add 1, numpy = ", n)print('torch t = ', t)print('torch t1 = ', t1)print('torch t2 = ', t2)# 输出。numpy n =  [1. 1. 1. 1. 1.]torch t = tensor([1., 1., 1., 1., 1.], dtype=torch.float64)torch t1 = tensor([1., 1., 1., 1., 1.], dtype=torch.float64)# numpy +1之后,三种方式转换出来的tensor的变化after add 1, numpy =  [2. 2. 2. 2. 2.]torch t =  tensor([2., 2., 2., 2., 2.], dtype=torch.float64)torch t1 =  tensor([2., 2., 2., 2., 2.], dtype=torch.float64)torch t2 =  tensor([1., 1., 1., 1., 1.], dtype=torch.float64)

2. tensor转numpy

命令1:tensor.numpy()

命令2:np.array(tensor)

对比

  • tensor.numpy()之后,仍会指向相同的内存地址
  • np.array(tensor)之后,不会指向相同的内存地址
t = torch.ones(5)n1 = t.numpy()n2 = np.array(t)print('numpy n1 = ', n1)print('numpy n2 = ', n2)print('torch t =', t)t += 1print("\nafter +1 ")print("numpy n1= ", n1)print("numpy n2 = ", n2)print('torch = ', t)# 输出结果numpy n1 =  [1. 1. 1. 1. 1.]numpy n2 =  [1. 1. 1. 1. 1.]torch t = tensor([1., 1., 1., 1., 1.])after +1 numpy n1=  [2. 2. 2. 2. 2.]numpy n2 =  [1. 1. 1. 1. 1.]  # 没有改变torch =  tensor([2., 2., 2., 2., 2.])

注意:

GPU上的tensor不能和numpy直接转换。必须先转换为CPU上的tensor。

# 如果一个tensor的device是GPU,先使用如下命令转为CPUtensor.cpu()  # 再使用tensor.numpy()进行转化tensor.data.numpy()# tensor到GPUtensor.GPU()

参考

  1. https://PyTorch.org/docs/1.2.0/torch.html#torch.as_tensor

来源地址:https://blog.csdn.net/weixin_44769214/article/details/126273031

--结束END--

本文标题: tensor与numpy的相互转换

本文链接: https://www.lsjlt.com/news/395100.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • tensor与numpy的相互转换
    tensor与numpy的相互转换 1. numpy转tensor命令1:torch.tensor()命令2:torch.as_tensor()命令3:torch.from_numpy()区别...
    99+
    2023-09-05
    pytorch
  • Tensor和Numpy互相转换
    常用的API例子 1 tensor转为numpy ps:  gpu下的tensor不能直接转numpy,需要先转到cpu tensor后再转为numpy.cpu().numpy() 1 tensor.numpy() x = torch.r...
    99+
    2023-08-31
    numpy python 深度学习
  • Tensor和NumPy相互转换的方法
    目录Tensor转NumPyNumPy数组转 Tensor我们很容易用 numpy() 和 from_numpy() 将 Tensor 和NumPy中的数组相互转换。 但是需要注意的...
    99+
    2023-03-19
    Tensor和NumPy相互转换 Tensor NumPy 转换
  • Tensor和NumPy相互转换的实现
    目录1. Tensor 转 NumPy2. NumPy 数组转 Tensor3. torch.tensor() 将 NumPy 数组转换成 Tensor我们很容易用numpy()和f...
    99+
    2023-02-10
    Tensor NumPy转换 Tensor NumPy 相互转换
  • Tensor和NumPy相互转换的方法是什么
    这篇文章主要介绍“Tensor和NumPy相互转换的方法是什么”,在日常操作中,相信很多人在Tensor和NumPy相互转换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Tensor和NumPy相...
    99+
    2023-07-05
  • tensor如何转换成numpy
    tensor转换成numpy的方法:1、创建一个PaddlePaddle的Tensor对象;2、使用numpy()方法将其转换为NumPy数组;3、使用print()函数打印出转换后的NumPy数组即可。本教程操作系统:windows10系...
    99+
    2023-11-22
    tensor numpy
  • 浅谈tensorflow与pytorch的相互转换
    目录1.变量预定义2.创建变量并初始化3.语句执行4.tensor5.其他函数本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflo...
    99+
    2022-11-12
  • ByteArrayOutputStream与InputStream互相转换方式
    目录ByteArrayOutputStream与InputStream互相转换InputStream 转为 ByteArrayOutputStreamByteArrayOutputS...
    99+
    2022-11-12
  • Python 图片与pdf相互转换
    使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作。 PDF 转为图片 需新建文件夹 pdf2png import fitz import glob def rightinput(desc): ...
    99+
    2023-01-31
    图片 Python pdf
  • NDArray与numpy.ndarray怎么互相转换
    本篇内容主要讲解“NDArray与numpy.ndarray怎么互相转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NDArray与numpy.ndarray怎么互相转换”吧!NDArray与...
    99+
    2023-06-30
  • PHP数组与JSON互相转换
    PHP数组与JSON互相转换,数组转json:json_encode();json转数组:json_decode(); 使用json_encode转json时会发现中文字符会出现乱码 只需要在json_encode();函数中加入JS...
    99+
    2023-09-10
    json php 数组 Powered by 金山文档
  • Canvas与Image怎么互相转换
    今天小编给大家分享一下Canvas与Image怎么互相转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2022-10-19
  • NDArray与numpy.ndarray互相转换方式
    目录NDArray与numpy.ndarray互相转换NumPy与ndarray简介NumPy简介数组ndarrayNDArray与numpy.ndarray互相转换 import ...
    99+
    2022-11-11
  • Android中String与int相互转换
    目录一、如何将字串 String 转换成整数 int?这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?二、 如何将整数 int 转换成字串 String...
    99+
    2022-11-12
  • JavaBeanMap实现Bean与Map的相互转换
    目录bean转Mapmap转BeanbeanMap实现以及高性能的原因net.sf.cglib.beans.BeanMap用法 bean转Map @Data public class...
    99+
    2022-11-21
    BeanMap Bean与Map的相互转换 BeanMap Bean与Map转换
  • Map与JavaBean相互转换的工具类
    下面就来分享工具类的内容: 使用范围:JavaBean类对象的属性不能是数组、List、Set、Map public class MapBeanUtil {         pu...
    99+
    2022-11-13
  • List与数组之间的相互转换
    文章目录 一、前言二、List列表与对象数组(一)对象List转对象数组1、toArray()方法2、Stream流的toArray()方法3、for循环 (二)、对象数组转对象Lis...
    99+
    2023-09-04
    java
  • Python - 列表与字典相互转换
    字符串转列表s = 'abc'a = list(s)['a','b','c']列表转为字符串''.join(a)字符串转换为元组s='abc't = tuple(s)元组转换为字符串''.join(t)列表转换为元组l = ['a','b'...
    99+
    2023-01-31
    字典 列表 Python
  • Base64字符串与图片的相互转换
    本篇博客记载的是一个我们在开发过程中很常用的一个小功能,就是我们在处理图片的时候做数据存放到数据库的功能,我们存放的不再是本地路径而是一个Base64的字符串! 然后我们在取值的时候又将Base64转换为一个图片文件的做法 简单的两个步骤:...
    99+
    2023-10-20
    java mybatis
  • PYTHON时间与字符串的互相转换
    这篇文章主要讲解了“PYTHON时间与字符串的互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PYTHON时间与字符串的互相转换”吧!1、字符串转换成时间[in]from d...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作