我试图在jupyter笔记本上从https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.py运行示例。由于我是Tflearn,Jupyter和DNN的新手,我无法调试错误是什么以及如何解决它。错误如下:
`TypeError Traceback (most recent call last)
<ipython-input-1-fa67bb48a391> in <module>()
38 testX = pad_sequences(testX, maxlen=100, value=0.)
39 # Converting labels to binary vectors
---> 40 trainY = to_categorical(trainY)
41 testY = to_categorical(testY)
42
TypeError: to_categorical() missing 1 required positional argument: 'nb_classes'`
我也无法理解它是如何加载数据集的。谢谢!
答案 0 :(得分:1)
在TFLearn的最新 stable 版本(撰写本文时为0.3.2),与pip
一起安装时,参数nb_classes
是必要的:
import tflearn
from tflearn.data_utils import to_categorical
from tflearn.datasets import imdb
train, test, _ = imdb.load_data(path = 'imdb.pkl', n_words = 10000, valid_portion = 0.1)
trainX, trainY = train
testX, testY = test
trainY[0:5]
# [0, 0, 0, 1, 0]
# this gives error:
trainY = to_categorical(trainY)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-4a293ba390bc> in <module>()
----> 1 trainY = to_categorical(trainY) #, nb_classes=2)
TypeError: to_categorical() takes exactly 2 arguments (1 given)
基本上,尽管措辞不同,但这与您获得的错误信息相同;包括nb_classes=2
解析它:
trainY = to_categorical(y=trainY, nb_classes=2)
trainY[0:5]
# array([[ 1., 0.],
# [ 1., 0.],
# [ 1., 0.],
# [ 0., 1.],
# [ 1., 0.]])
所以,我建议的是:
pip install tflearn
nb_classes=2
to_categorical
当然,只需使用nb_classes=2
更新代码即可,但也可能不会 - 请参阅this question以及我的答案。
答案 1 :(得分:0)
我遇到同样的问题。
看起来tflearn版本太低了,只有在较新版本中才不再需要nb_classes
参数。
您可以尝试更新到它的最新版本。 (不是来自pip install tflearn
。直到现在 - 2017/10/25
- 这还不够新。)
pip install git+https://github.com/tflearn/tflearn.git
或者您可以添加额外参数,这是一个表示类总数的整数,可以根据您使用的数据集而有所不同。