报错解决 ValueError: Object arrays cannot be loaded when allow_pickle=False

目录

  • 一、运行报错
  • 二、问题解决
  • 1.原因
  • 2.解决
  • 三、参考博文

一、运行报错

在这里插入图片描述

二、问题解决

1.原因

(1) numpy版本不向下兼容所导致的,在1.16.3往后的版本中 np.load(path, boolean) ,其中boolean (allow_pickle) 默认值为false。在numpy官方文档 中给出:

Changed in version 1.16.3: Made default False in response to CVE-2019-6446.
版本1.16.3中更改: 在响应 CVE-2019-6446 时默认为'False'

(2) 官方文档链接:Numpy.load

报错解决 ValueError: Object arrays cannot be loaded when allow_pickle=False_第1张图片
(3) 查看自己的numpy版本
注:在win10环境下,因为自己使用的环境是名为pytorch的环境,所以先激活了存在的环境查看,根据自己的情况进入或者自己在base环境中查看。
(3.1) 打开 Anaconda Prompt(anaconda),输入:

1. activate pytorch

2. python

3. import numpy
4. numpy.__version__

(3.2) 显示如下,版本大于1.16.3,所以allow_pickle默认为False

报错解决 ValueError: Object arrays cannot be loaded when allow_pickle=False_第2张图片

2.解决

(1)
方法1:降低版本,降到1.16.3以下:先卸载当前的numpy,再下载指定版本的numpy

pip uninstall numpy

pip install numpy==1.16.2  #指定版本小于1.16.3就可以

方法2:直接在numpy.load函数中设置allow_pickle=True(自己使用的此方法)
(2) 代码修改如下:
修改前:
报错解决 ValueError: Object arrays cannot be loaded when allow_pickle=False_第3张图片

修改后:
在这里插入图片描述

三、参考博文

其他方法

你可能感兴趣的:(python,numpy,开发语言)