首页 > 其他分享 >tf.sparse.reshape ValueError: Cannot reshape a tensor with xxx elements to shape [x, None]

tf.sparse.reshape ValueError: Cannot reshape a tensor with xxx elements to shape [x, None]

时间:2024-12-05 16:57:16浏览次数:13  
标签:None elements tensor reshape shape sparse tf 1000

目录

项目场景

问题描述

报错信息

原因分析

解决方案

后续问题


项目场景

大口径超表面的逆向优化设计,需要处理大型稀疏张量,超过10^10次方个数据。


问题描述

在使用tf.sparse.SparseTensor将大批量三维稀疏张量整形成二维稀疏张量的时候,代码报错,用简单的代码举个例子:

import tensorflow as tf

indices = [(0, 0, 1), (0, 1, 0), (1, 0, 0)]

values = [1, 1, 1]

dense_shape = [1000, 2000, 2000]

tensor = tf.sparse.SparseTensor(indices, values, dense_shape)

reshape_tensor = tf.sparse.reshape(tensor, [1000, -1])

报错信息

Traceback (most recent call last):
  File "D:/Desktop/doctor/IOE/stagework/202408_broadband thermal imaging using meta optics/metabox-main/examples/test.py", line 11, in <module>
    reshape_tensor = tf.sparse.reshape(tensor, [1000, -1])
  File "C:\Users\Hamburg\.conda\envs\metabox_test\lib\site-packages\tensorflow\python\util\traceback_utils.py", line 153, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "C:\Users\Hamburg\.conda\envs\metabox_test\lib\site-packages\tensorflow\python\ops\sparse_ops.py", line 961, in sparse_reshape
    raise ValueError(
ValueError: Cannot reshape a tensor with -294967296 elements to shape [1000, None] (-294968000 elements).


原因分析

新的维度是[1000, -1],-1或者None意味着需要tensorflow自己确定第二维度的大小,所以需要计算1000*2000*2000再除以1000,但前面的1000*2000*2000是4000000000,已经大于int32的范围[-2147483648, 2147483647],所以报错信息里面也会提到新的维度是-294967296,这个数值就是4000000000-2147483647-2147483648-1 = -294967296


解决方案

import tensorflow as tf

indices = [(0, 0, 1), (0, 1, 0), (1, 0, 0)]

values = [1, 1, 1]

dense_shape = [1000, 2000, 2000]

tensor = tf.sparse.SparseTensor(indices, values, dense_shape)

reshape_tensor = tf.sparse.reshape(tensor, [1000, dense_shape[1]*dense_shape[2]])

提前帮tensorflow计算好第二维的大小就可以了


后续问题

现在这个方法处理数据还是够用的。但如果计算好的这个第二维大小也超过了int32的范围,代码还是会报错,就不知道怎么办了,可能需要切割处理后再合并,还求助一下各位大佬。

标签:None,elements,tensor,reshape,shape,sparse,tf,1000
From: https://blog.csdn.net/Han_burger/article/details/144269845

相关文章

  • arm-none-eabi-gdb无法运行
    在ubuntu24.02下arm-none-eabi-gdb无法运行。在STLINK驱动、OPENOCD配置正确的情况下,在STM32CUBEIDE中开启openocd调试或者直接使用命令arm-none-eabi-gdb./xxx.elf调试会得出如下错误arm-none-eabi-gdb:/lib/x86_64-linux-gnu/libncurses.so.5:version`NCURSES_5.3.2002101......
  • Input报错“Form elements must have labels: Element has no title attribute Elemen
    喵~项目开发难免会遇到些不解的问题,以下总结的是简化版,重在复现问题,解决问题。写表单时,如果只是单独写了input元素,发现在后台管理会飘红。感觉很奇怪,明明没有写错语法,为什么会飘红呢?1、写一段最普通的html页面2、右键,选择“检查”,打开后台管理器,指向input元素此时,可以看到......
  • 说说display:none和visibility:hidden的区别
    display:none和visibility:hidden都可以隐藏元素,但在如何隐藏以及对页面布局的影响方面有所不同:display:none彻底隐藏:元素完全从文档流中移除,就像它从未存在过一样。占据的空间会被其他元素填充。不占据空间:隐藏后的元素不占据任何空间,不会影响页面布局。无法响应事......
  • 请举例说明伪元素 (pseudo-elements) 有哪些用途?
    伪元素在前端开发中用途广泛,以下是一些常见的例子:1.样式化特定内容:::before和::after可以用来插入生成的内容,例如图标、计数器、引号等。.quote::before{content:open-quote;}.quote::after{content:close-quote;}::first-letter可以用来样式化第一......
  • 解决TypeError: 'NoneType' object is not subscriptable
    1.捕获异常的方式try:img_list=img_list["name"]except:img_list=""2.对象进行判断ifimg_list:img_list=img_list["name"]else:img_list=""demotextJson=json.loads(res.text)#转json对象iftextJson:##整个对象都......
  • 4.Python 函数(函数的定义、函数的传入参数、函数的返回值、None 类型、函数说明文档、
    一、函数快速入门1、函数概述函数是组织好的,可重复使用的,用来实现特定功能的代码段name="HelloWorld"name_length=len(name)print(f"{name}的长度为{name_length}")#HelloWorld的长度为11len()是Python内置的函数,是提前写好的,可以重复使用,实现统计长......
  • Deep-Live-Cam部署过程中出现AttributeError: ‘NoneType‘ object has no attribute
    安装Deep-Live-Cam过程中,我下载好了全部的requirements.txt里面的需要用到的第三方库,之后运行后成功出现以下界面,但是报错AttributeError:'NoneType'objecthasnoattribute'shape'报错如下翻阅了原项目的issues发现了相同的问题,找到解决方法:选择图片时图片的路径中不能......
  • 宝藏级Docker应用推荐(建议NAS/AllinOne用户收藏)
    梳理收集了个人比较常用的Docker应用,这些应用大多免费开源,能极大提高的提高日常工作效率,也能充分榨干家里闲置设备资源,比如NAS、个人PC、主机服务器等。一、家庭娱乐中心类家庭影音、漫画、小说等1、影视类Jellyfin、Emby(个人可以不开通专业版,免费版够用)推荐原因:看电影......
  • [1059] Operations of None in pandas
    Inpandas,handlingNonevalues(whicharerepresentedasNaNinDataFrames)isacommontask.Herearesomewaystodealwiththem:FilteringRowsFilterRowswithNoneValues:importpandasaspd#SampleDataFramedf=pd.DataFrame({'A......
  • CSS中元素将不再响应鼠标事件(如点击、悬停等)。pointer-events: none;
    按钮点击无效pointer-events:none; 是一种CSS样式规则,用于指定元素在用户与之交互时的行为。当应用了 pointer-events:none; 样式时,元素将不再响应鼠标事件(如点击、悬停等),即使用户点击该元素上的内容,也不会触发任何与该元素相关的事件。主要作用:禁用用户交互:当将 p......