在 Keras 中加载数据集时如何修复错误?

Posted

技术标签:

【中文标题】在 Keras 中加载数据集时如何修复错误?【英文标题】:How to fix error when load dataset in Keras? 【发布时间】:2019-12-02 05:47:29 【问题描述】:

当我加载“reuters”数据集时,我得到一个错误

我尝试使用一些:

np_load_old = np.load
np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)
(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)
np.load = np_load_old

原来是:

from keras.datasets import reuters
import numpy as np
(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)

TypeError: () 获得了多个关键字参数值 'allow_pickle'

完整的追溯:

    TypeError                                 Traceback (most recent call last)
    <ipython-input-11-8669b9ae66ea> in <module>()
          1 from keras.datasets import reuters
    ----> 2 (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)
          3 
          4 

    2 frames
    <ipython-input-2-8333ca7e6c7f> in <lambda>(*a, **k)
          4 
          5 np_load_old = np.load
    ----> 6 np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)
          7 (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
     >     8 np.load = np_load_old

TypeError: <lambda>() got multiple values for keyword argument 'allow_pickle'

【问题讨论】:

请包括原始和完整的回溯。 你为什么用np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)覆盖np.load?您收到错误是因为 k 包含 allow_pickle,它现在是 allow_pickle=True 的副本。 感谢 ForceBru!我已被删除 (**k) 并且有效! 【参考方案1】:

所以我花了一段时间才弄明白,但我终于解决了。 因为我们的问题是np.load 的默认值,所以我们只需要更改它们(至少暂时)。

所以在使用 numpy 之前,您可以简单地将这一行添加到您的代码中:

np.load.__defaults__=(None, True, True, 'ASCII')

这会将allow_pickle 更改为True

然后当你完成你正在做的事情时修复它

np.load.__defaults__=(None, False, True, 'ASCII')

干杯!

【讨论】:

【参考方案2】:

Refer this solution。这对我有用。

我通过删除old() 中的**k 解决了这个问题。这是因为**k 包含allow_pickle。所以我的命令行从此改变:

np.load = lambda *a,**k: old(*a,allow_pickle=True,**k)

到这里:

np.load = lambda *a,**k: old(*a,allow_pickle=True)

如果您在执行更正的命令行之前已在old() 中运行了带有**k 的命令,请记住重新启动运行时。

【讨论】:

以上是关于在 Keras 中加载数据集时如何修复错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Azure ML Studio 在导入数据集时将特征列转换为 DateTime

尝试在 Keras 中加载顺序模型时出现“KeyError:0”

如何在张量流中加载本地图像?

加载图像时出现numpy memory错误

使用用户定义的函数在 spark 中加入数据集时需要填充其他信息

在 AppDomain 问题中加载具有依赖项的程序集