首页 > 编程语言 >ValueError:only one element tensors can be converted to Python scalars解决办法

ValueError:only one element tensors can be converted to Python scalars解决办法

时间:2022-11-24 10:56:13浏览次数:63  
标签:tensor Python torch list scalars gpu numpy ValueError ndarray

问题描述

深度学习初学者的我在使用pytorch debug深度神经网络模型的时候,list,tensor,array之间的转化太复杂了,总是傻傻分不清。这次又遇到问题:ValueError:only one element tensors can be converted to Python scalars。

解决办法

原因:要转换的list里面的元素包含多维的tensor。
一般list 转 torch.tensor只需要

tensor=torch.tensor(list)

但是要转换的list里面的元素包含多维的tensor,应该使用

val= torch.tensor([item.cpu().detach().numpy() for item in val]).cuda()

这是由于 gpu上的 tensor 不能直接转为 numpy; 须要先在 cpu 上完成操做,再回到 gpu 上。

补充

1.torch.Tensor 转 numpy

ndarray = tensor.numpy()

若是是在 gpu,命令以下

ndarray = tensor.cpu().numpy() 

这是由于 gpu上的 tensor 不能直接转为 numpy

2.numpy 转 torch.Tensor

tensor = torch.from_numpy(ndarray) 

3.torch.Tensor 转 list

list = tensor.numpy().tolist()  

先转 numpy,后转 list

4.list 转 numpy

ndarray = np.array(list)

5.numpy 转 list

list = ndarray.tolist()

参考链接:https://www.shangmayuan.com/a/fc6aaa7ff67443c68dbf3966.html

标签:tensor,Python,torch,list,scalars,gpu,numpy,ValueError,ndarray
From: https://www.cnblogs.com/chaofengya/p/16921135.html

相关文章

  • python代码报错No module named numpy问题
    1一般在“控制面板+cmd”中安装​​numpy​​在​​命令行​​窗口中输入"pipinstallnumpy"此时安装的numpy并不在python的目录行中则会出现Nomodulenamednumpy报错,即......
  • Python基础之字符串
    一、认识字符串字符串是Python中最常⽤的数据类型。我们⼀般使⽤引号来创建字符串。创建字符串很简单,只要为变量分配⼀个值即可。1、字符串特征⼀对引号字符串name1='To......
  • Python的特点有哪些?
    python的五个特点:1、简单易学python是一种代表简单主义思想的语言,阅读一个良好的python程序就感觉像是在读英语段落一样,尽管这个英语段的语法要求非常严格。python最大的优......
  • python主要可以做什么
    python主要可以做Web和Internet开发、科学计算和统计、桌面界面开发、软件开发、后端开发等领域的工作。Python是一种解释型脚本语言。Python可以应用于众多领域,如:数据分......
  • python 爬虫自学要多久
    一周或者一个月。如果完全靠自己自学,又是从零基础开始学习Python的情况下,按照每个人的学习和理解能力的不同,我认为大致上需要半年到一年半左右的时间。当然了,Python学习起来......
  • Python11-eg
    实例01(创建SQLite数据库文件)1importsqlite32#连接到SQLite数据库3#数据库文件是mrsoft.db,如果文件不存在,会自动再当前目录创建4conn=sqlite3.connect('mrsoft.db'......
  • Python爬取某个网站的图片
    最近需要将某个网站的图片爬取下来,想尽了很多办法,后来使用python的爬虫技术将其爬取出来importrequestsdefdownload_save_img(img_url,file_name):headers={......
  • 初识Python
    初识Pythonpython解释器Python解释器是一个计算机程序,用来翻译python代码,并提交给计算机执行功能:1.翻译代码到二进制2.提交给计算机运行\1.计算机只认识什么?0和1\2......
  • Python - tesserocr
    目录安装安装教程:https://cuiqingcai.com/31102.html自己在安装过程中遇到的错误:RuntimeError:TesseractlibrarynotfoundinLIBPATH:[]可以直接使用whl文件来......
  • Python 添加记录到有自增长ID的表,如何获取新产生的ID
    关系型数据库设计时,将ID列设为自动增长列是很普遍的方式,那么在python用insert 插入数据后如何获取由数据库产生的ID,从而获取新加的记录呢?一般的方法是在表里加一个gu......