Numpy中出现“ValueError: zero-size array to reduction operation maximum which has no identity”错误的调试笔记

文章目录[隐藏]

1 问题描述

在写作目标检测的代码时,遇到了这样的一个错误,

File “/home/…/…py”, line 121, in …
array = array/ array.max()
File “/home/…/python/anaconda/anaconda3/envs/conda-general/lib/python3.7/site-packages/numpy/core/_methods.py”, line 30, in _amax
return umr_maximum(a, axis, None, out, keepdims, initial, where)
ValueError: zero-size array to reduction operation maximum which has no identity

从错误信息上面来看,应该是数组“array”的“size”为0,所以无法进行计算;
那么具体是哪个运算呢?可以看到上面有说到“umr_maximum()”函数,所以可能跟“array.max()”函数有关;

2 解决方案

经过调试,我们发现出错的地方就是“array.max()”,具体原因就是这里的“array”的size其实为0,于是元素的个数为0,因而就不存在最大值,所以这里就是出错的原因;
在调试时,可以先对数据的规范性进行验证,这里需要验证数组array的size是否为0,可以使用下面的代码,

assert array.size != 0

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

songyuc

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

单目3D目标检测调研

单目3D目标检测调研 一、 简介 现有的单目3D目标检测方案主要方案主要分为两类,分别为基于图片的方法和基于伪雷达点云的方法。   基于图片的方法一般通过2D-3D之间的几何约束来学习,包括目标形状信息&#xff0