Tensor 和 NumPy 相互转换

Tensor 和 NumPy 相互转换Tensor和NumPy相互转换我们很容易用numpy()和from_numpy()将Tensor和NumPy中的数组相互转换。但是需要注意的一点是:这两个函数所产生的Tensor和NumPy中的数组共享相同的内存(所以他们之间的转换很快),改变其中一个时另一个也会改变!1.Tensor转NumPya=torch.ones(6)b=a.numpy()print(a,b)a+=1print(a,b)b+=1print(a,b)tensor([1.,1.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Tensor 和 NumPy 相互转换

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

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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180185.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql文件导入sqlserver_mysql导入sql文件命令

    mysql文件导入sqlserver_mysql导入sql文件命令问题来源有的时候,在使用MySQL数据库建表时,可能不需要直接在mysql数据库中建表,而需要导入外部已有的数据库表文件,方便我们使用。那么导入的方法呢?这里介绍一个很普遍也很简单的方法,步骤如下:导入步骤打开MySQL数据库,黑窗界面,如图:这里输入密码‘root’,回车。。。先确定你要建立的数据库名字,比如这里我新建数据库名字叫“house-01”,如下图。(说明:如果sql文件的内容中有创建数据库的语句,或者想将表存放在已有的数据库,在这里就不需要再创建数据库。即直接使用已经

    2022年10月2日
    2
  • linux 误删文件恢复_centos删除的文件能恢复吗

    linux 误删文件恢复_centos删除的文件能恢复吗本文参考http://write.blog.csdn.net/postedit?ticket=ST-491405-OGjDDusZeyMgVQ7bHW7f-passport.csdn.net前言作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过……

    2022年8月21日
    7
  • VUE调试工具

    VUE调试工具3.VUE调试工具3.1调试工具安装到GitHub下载工具安装压缩包,解压到响应的文件夹。到解压的vue-devtools文件目录下安装依赖包。修改manifest.json文件,该文件在vue-devtools文件的\packages\shell-chrome下。把”persistent”:false改为”persistent”:true。”background”:{“scripts”:[“build/background.js”

    2025年8月11日
    2
  • 傅里叶变换的意义和理解(通俗易懂)

    傅里叶变换的意义和理解(通俗易懂)傅里叶变换的意义和理解(通俗易懂)这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严肃了。(您把教材写得好玩一点会…

    2022年7月17日
    15
  • 腾讯课堂视频下载_电脑腾讯会议不支持虚拟背景

    腾讯课堂视频下载_电脑腾讯会议不支持虚拟背景如果想把腾讯课堂里的视频下载到本地,这里提供一个方法。原理就是通过提取网页中的视频链接,进行下载。提取网页中的视频链接方法有很多。这里介绍通过浏览器插件的方式。1.我是在firefox附加组件里搜索“视频下载”找到的一款插件。flashvideodownloader,安装即可2.打开腾讯课堂网页版,播放想要下载的视频。浏览器会缓存你播放的视频,一般是5分钟一个。3.打开浏览器插件,它就会显示…

    2025年8月15日
    3
  • LDA模型学习之(二)——主题的理解

    LDA模型学习之(二)——主题的理解

    2021年8月17日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号