基础学习——numpy与tensor张量的转换_numpy to tensor-程序员宅基地

技术标签: python  numpy  基础学习  

系列文章目录

Numpy学习——创建数组及常规操作(数组创建、切片、维度变换、索引、筛选、判断、广播)
Tensor学习——创建张量及常规操作(创建、切片、索引、转换、维度变换、拼接)
基础学习——numpy与tensor张量的转换
基础学习——关于list、numpy、torch在float和int等数据类型转换方面的总结



前言

在卷积神经网络时经常会用到numpy的数组变量类型与tensor张量类型之间的转换,在这里总结了一下。


一、numpy数组转tensor张量

#导入包
import numpy as np
import torch
a = np.random.normal(0, 1, (2, 3))
b= torch.tensor(a)
a,b

(array([[-0.37468825, 0.81942854, -1.56010579],
[-0.00805839, 0.9578339 , 1.95072451]]),
tensor([[-0.3747, 0.8194, -1.5601],
[-0.0081, 0.9578, 1.9507]], dtype=torch.float64))

a = np.random.normal(0, 1, (4, 5))
b= torch.from_numpy(a)
a,b

(array([[-0.47197733, 1.53828686, -1.72156097],
[-2.05017441, 1.23956538, -0.80934275]]),
tensor([[-0.4720, 1.5383, -1.7216],
[-2.0502, 1.2396, -0.8093]], dtype=torch.float64))

二、tensor张量转numpy数组

import numpy as np
import torch
t = torch.arange(1, 10).reshape(3, 3)
x = t.numpy()
t,x

(tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]),
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=int64))

x = t.detach().numpy() # 用了detach(),不需要计算梯度了

三、tensor张量转其他

使用.item将张量转化为单独的数值进行输出

a = torch.tensor(1)
a.item()

tensor(1)
1

t = torch.arange(10)
t1 = t.tolist()  #张量转化为列表
t2 = list(t)
t,t1,t2

(tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

[tensor(0),
tensor(1),
tensor(2),
tensor(3),
tensor(4),
tensor(5),
tensor(6),
tensor(7),
tensor(8),
tensor(9)]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45464524/article/details/127953053

智能推荐

全面解析开源大语言模型:BLOOM_bloom 模型,2024年最新讲的太透彻了-程序员宅基地

文章浏览阅读472次,点赞13次,收藏14次。BLOOM 作为一种先进的大型语言模型 (LLM),提供了广泛的优势,可以扩展到各种用户群。它的能力不仅直接影响某些专业人士和部门,而且具有更广泛的影响,间接影响更广泛的利益相关者。BLOOM 的开发和发布在现实世界中具有重大影响,无论是在其影响方面还是在它引发的争议方面。通过了解 BLOOM 的直接和间接用户,我们可以欣赏该模型的广泛影响力以及它为推动技术和社会进步做出贡献的多种方式。在快节奏的人工智能 (AI) 世界中,像 BLOOM 这样的大型语言模型 (LLM) 的相关性是一个持续讨论的话题。

Shell-diff用法_shell diff-程序员宅基地

文章浏览阅读1.1k次。文章目录1. 命令作用2. 语法3. 常用参数4. 小案列1. 命令作用逐行比较,告诉我们怎么把第一个文件改为第二个文件。显示出第一个文件和第二个文件的差异。2. 语法diff [options] file1.txt file2.txt # file1为比较文件 file2为基准比较文件.3. 常用参数 -b:不检查空格 -B:不检查空白行 -i:不检查大小写 -w:忽略所..._shell diff

【181113】C++ 实现可控的3D旋转立方体源代码_立方体表面微结构编程代码-程序员宅基地

文章浏览阅读1.9k次。VC++代码实现旋转立方体,没有使用DirectX、OpenGL,允许你拖动滑块改变旋转角度,也能让立方体围绕某一方向旋转,虽然功能不多,但是代码极具参考价值,像这类程序很能考验编程水平。源码下载地址:点击下载备用下载地址:点击下载..._立方体表面微结构编程代码

海洋污染全球告急:AI 可能是最后的防线-程序员宅基地

文章浏览阅读1.5k次。By 超神经场景描述:人类产生的废弃物有意无意地漂进大海,而这些废弃物中,许多类型的塑料无法分解,严重威胁着鱼类、海鸟、海洋爬行动物、海洋哺乳动物,以及船只和沿海居住区。..._ai技术对海洋保护的负面影响

【数据分析】探索性数据分析 -2_missing-ness-程序员宅基地

文章浏览阅读142次。%matplotlib inline%config InlineBackend.figure_format='retina'from __future__ import absolute_import, division, print_functionimport matplotlib as mplfrom matplotlib import pyplot as pltfrom mat..._missing-ness

使用sympy.solve求解方程_利用sympy的solve求解方程式-程序员宅基地

文章浏览阅读4.8k次。是中的一个科学计算库,提供了强大的符号计算体系,可用于多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。本文主要介绍使用库求解方程的方法。使用mathmath.expsympy.exp。_利用sympy的solve求解方程式

随便推点

ARM学习-ARM寻址方式与异常中断_arm prefetch指令-程序员宅基地

文章浏览阅读535次。1. ARM指令的寻址方式2. 异常中断_arm prefetch指令

# JAVA常见面试题-程序员宅基地

文章浏览阅读215次。zookeeper的分布式锁的实现原理是什么zk的分布式锁是基于zk的两个特性,第一是顺序节点的特性,第二是临时节点特性。顺序节点是假如多个客户端在某个目录下创建节点,zk会按照客户端发起创建请求的顺序来依次来创建节点,节点的末尾数字是递增的。序号的递增是由zk内部完成的。临时节点的意思是,当某个客户端断开链接时,其创建的节点就会被删除。根据这两个特性我们来模拟zk的分布式锁,比如在商品抢购场景中,一个客户端率先在这个商品id的目录下创建了临时顺序节点。后面的客户端再去这个商品id的目录下创建节点时跟据顺

Android导入项目时Gradle下载速度慢\超时\失败解决方法_导入gradle项目特别慢-程序员宅基地

文章浏览阅读9.4k次,点赞100次,收藏180次。解决Android导入项目时Gradle下载速度慢\超时\失败解决方法_导入gradle项目特别慢

html表格置顶代码,纯CSS实现表头固定的代码示例-程序员宅基地

文章浏览阅读428次。纯CSS实现表头固定之所以难,主要在两点。一是占有最大市场份额的IE6不支持position:fixed。另一个,是人们想破头都想在一起表格中实现这种效果。我们知道,CSS是负责表现,HTML是负责结构,同样的结构,换个样式,给人的感觉完全不同,这也说明人的眼睛是很容易受骗。因此前些狂热鼓吹p+CSS的日子里,人们总是想在页面去掉table,用p+span弄出了一个个“table”来。虽然这种事是..._表单顶部固定语法

Vue - Todos 案例-程序员宅基地

文章浏览阅读1.1k次,点赞6次,收藏7次。vue 实现 todos 具体代码思路和代码给 input 框绑定回车事件,回车后把数据请求到 vuex 中把数据保存至本地存储中给下拉箭头绑定点击事件,点击则给所有多选框进行反选判断是否选中,如果选中则禁用给数组进行过滤,然后渲染至页面中双击 input 框 则允许改变样式,平时则禁止改变_todos

程序调试利器GDB – 使用指南_gdb调试程序-程序员宅基地

文章浏览阅读1.7k次,点赞3次,收藏9次。GDB是GNU Debugger的简称,其作用是可以在程序运行时,检测程序正在做些什么。GDB程序自身是使用C和C++程序编写的,但可以支持除C和C++之外很多编程语言的调试。GDB原生支持调试的语言包含:•C•C++•D•Go•Object-C•OpenCL C•Fortran•Pascal•Rust•Modula-2•Ada此外,通过扩展GDB,也可以用来调试Python语言。_gdb调试程序