在Keras中加载数据集时如何解决错误?

时间:2019-07-24 06:40:14

标签: python-3.x keras

当我加载“路透社”数据集时,出现错误

我尝试使用一些:

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'

2 个答案:

答案 0 :(得分:0)

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

因此在使用numpy之前,您只需将以下行添加到代码中即可:

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

这会将allow_pickle更改为True

然后在完成工作后将其修复

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

干杯!

答案 1 :(得分:0)

Refer this solution。这对我有用。

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

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

对此:

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

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