资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

【PyTorch基础】(3)张量的类型转换

Python 更新时间: 发布时间: 计算机考试归档 最新发布

【PyTorch基础】(3)张量的类型转换

🤡博客主页:Code_文晓

🥰本文专栏:PyTorch基础

😻欢迎关注:感谢大家的点赞评论+关注,祝您学有所成!  


 本专栏所有代码都是在JupyterNotebook上写的,可以直接运行使用。  


目录

1.张量转换为numpy数组

2.numpy转换为张量

3.提取单个元素的张量


注意:以下所有代码最开始都需要导入这三行语句,后面不在重复导入。

import torchimport numpy as npimport random

1.张量转换为numpy数组

张量可以通过 张量.numpy()方法转化为numpy的ndarray数组;转换后的numpy数组和原来的张量共享内存空间.


# 1.张量转换为numpy数组 张量.numpy()data_tensor=torch.tensor([66,88,99])data_numpy=data_tensor.numpy()print(type(data_tensor)) # print(type(data_numpy)) # 
## 1.1 测试张量和numpy数组共享内存 更改data_numpy里面的数据data_numpy[0]=222print(data_numpy) #[222  88  99]#data_tensor的数据也随之更改print(data_tensor) #tensor([222,  88,  99]) 
## 1.2 使用copy()函数可以不共享内存data_tensor=torch.tensor([66,88,99])data_numpy=data_tensor.numpy().copy()data_numpy[0]=222print(data_numpy) #[222  88  99]#data_tensor的数据并未改变print(data_tensor) #tensor([66, 88, 99]) 

2.numpy转换为张量

2.1使用torch.form_numpy(),可以将ndarray数组转换为Tensor张量,默认共享内存,可以使用numpy的copy()函数避免共享内存。

2.2使用torch.tensor可以将ndarray数组转换为Tensor张量,默认不共享内存。


# 2.1 torch.from_numpy()将nump数组转换为tensor张量data_numpy=np.array([11,22,33])data_tensor=torch.from_numpy(data_numpy)print(type(data_numpy))print(type(data_tensor))## 测试共享内存data_numpy[0]=999print(data_numpy)print(data_tensor)## 使用numpy.copy()避免共享内存data_numpy=np.array([11,22,33])data_tensor=torch.from_numpy(data_numpy.copy())data_numpy[0]=999print(data_numpy)print(data_tensor)

 ​

# 2.2 torch.tensor() 将nump数组转换为tensor张量data_numpy=np.array([11,22,33])data_tensor=torch.tensor(data_numpy)print(type(data_numpy))print(type(data_tensor))## 2.1 测试torch.tensor()是否共享内存(不共享)data_numpy[0]=999print(data_numpy)print(data_tensor)

​ 


3.提取单个元素的张量

对于只有一个元素的张量,使用item方法将该值从张量中提取出来。

t1=torch.tensor(30)  # 标量t2=torch.tensor([30]) # 一维张量t3=torch.tensor([[30]]) # 二维张量print(t1.shape)print(t2.shape)print(t3.shape)## 单个元素的张量.item()方法可以将单个元素提取出来print(t1.item())print(t2.item())print(t3.item())## 注意:张量中只有一个元素,如果有多个元素的话,使用item函数可能就会报错# t4=torch.tensor([30,40])# print(t4.item())# ValueError: only one element tensors can be converted to Python scalars

 

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1095980.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【【PyTorch基础】(3)张量的类型转换】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2