Как сделать классификацию слов с помощью Tensorflow tflearn

Я искал в Интернете приличную документацию или примеры с описанием, но ничего не нашел. Что я пытаюсь сделать, так это классифицировать слово или небольшие фразы (максимум 3 слова) и присвоить им приоритетный «тег». (Например: Stephen Hawking => 1, Mr. Red => 0) Я пытался сделать это с Multilayer perceptron, но там я не могу использовать слова в качестве тестовых данных. Поэтому я пытаюсь сделать это с помощью RNN, используя библиотеку tflearn для TensorFlow. Проблема в том, что я не могу найти никакой документации о том, как я должен предварительно обрабатывать данные или как я должен передавать данные на уровень LSTM.

Я написал немного кода:

data, labels = load_csv(r'C:\Users\xxxx\Desktop\Machine Learning\Getting Started\Data\train_dataset_rnn.csv', categorical_labels=True, n_classes=2, delim=';')

net = tflearn.input_data(shape=[None, 1])
net = tflearn.lstm(net, 128, 1)
net = tflearn.fully_connected(net, 2, activation='softmax')
net = tflearn.regression(net)
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=32, show_metric=True)

Данные имеют форму => "имя"; 0/1

Когда я выполняю этот код, я получаю эту ошибку:

ValueError: Invalid Activation.

Может кто-нибудь, пожалуйста, помогите мне немного лучше понять этот слой/алгоритм?

Спасибо заранее


person primef    schedule 27.02.2017    source источник


Ответы (1)


Насколько я понял, LSTM принимает 3D-ввод -> [batch_size, sequence_length, vector_representation]. В вашем случае вы можете установить длину последовательности равной 3 (максимальная длина последовательности). Я обычно делаю отображение из слова в представление 300d GloVe. Таким образом, входные данные будут выглядеть так:

net = tflearn.input_data(shape=[None, 3, 300])

Я не уверен в ошибке, но я думаю, вам также нужно указать регрессию следующим образом:

net = tflearn.layers.core.fully_connected(net, 2, activation='softmax')
net = tflearn.layers.estimator.regression(net, optimizer='adam', learning_rate=LEARNING_RATE,
                     loss='categorical_crossentropy', name='target')
person Aryo Pradipta Gema    schedule 09.03.2017