脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - pytorch中函数tensor.numpy()的数据类型解析

pytorch中函数tensor.numpy()的数据类型解析

2022-07-16 09:59ilove_Moretz Python

这篇文章主要介绍了pytorch中函数tensor.numpy()的数据类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

函数tensor.numpy()的数据类型

今天写代码的时候,要统计一下标签数据里出现的类别总数和要分类的分类数是不是一致的。

我的做法是把tensor类型的数据转变成list,然后用Counter函数做统计。

代码如下:

?
1
2
3
4
from collections import Counter
List_counter = Counter(List1)
#List1就是待统计的数据,是一维的列表。生成的List_counter是一个字典,键是数据,
#对应的值是数据出现的频率

在做这个统计的时候,突然发现,我的数据是float的类型,这是不应该出现的,因为标签数据在处理的时候都是整型数据。

经过一番查找后,发现是tensor.numpy()返回值数据类型的原因。这个函数的返回值是float类型的

tensor数据和numpy数据转换中注意的一个问题

在pytorch中,把numpy.array数据转换到张量tensor数据的常用函数是torch.from_numpy(array)或者torch.Tensor(array)

第一种函数更常用,然而在pytorch0.4中已经舍弃了这种函数

下面一个简单的编程实验说明这两种方法的区别

实验在pytorch0.4框架下进行

pytorch中函数tensor.numpy()的数据类型解析

运行程序之后,结果是

pytorch中函数tensor.numpy()的数据类型解析

可以看出修改数组a的元素值,张量b的元素值也改变了,但是张量c却不变。

修改张量c的元素值,数组a和张量b的元素值都不变。

这说明torch.from_numpy(array)是做数组的浅拷贝,torch.Tensor(array)是做数组的深拷贝

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/ilove_Moretz/article/details/110304733

延伸 · 阅读

精彩推荐