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

Ice*_*eak 1 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
Run Code Online (Sandbox Code Playgroud)

原来是:

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

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'
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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

np.load.__defaults__=(None, True, True, 'ASCII')
Run Code Online (Sandbox Code Playgroud)

这将更allow_pickle改为True.

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

np.load.__defaults__=(None, False, True, 'ASCII')
Run Code Online (Sandbox Code Playgroud)

干杯!