Я делаю модель нейронной сети, чтобы распределить чувства по фразам. Моя проблема не зависит от того, что я изменяю в моей модели, оценка точности всегда одинакова.
Я попытался добавить или удалить слои, изменить размер партии, изменить количество эпох, изменить активаторы и т. Д.
tokenizer = Tokenizer()
total_phrases = phrases_train.append([phrases_valid, phrases_test],
ignore_index = True)
tokenizer.fit_on_texts(total_phrases)
maxlen = max([len(s.split()) for s in total_phrases])
vocab_size = len(tokenizer.word_index) + 1
phrases_train_tokens = tokenizer.texts_to_sequences(phrases_train)
phrases_valid_tokens = tokenizer.texts_to_sequences(phrases_valid)
phrases_test_tokens = tokenizer.texts_to_sequences(phrases_test)
pad_phrases_train = pad_sequences(phrases_train_tokens, maxlen=maxlen,
padding='post')
pad_phrases_valid = pad_sequences(phrases_valid_tokens, maxlen=maxlen,
padding='post')
pad_phrases_test = pad_sequences(phrases_valid_tokens, maxlen=maxlen,
padding='post')
model = Sequential()
model.add(Embedding(vocab_size, 100, input_length=maxlen))
model.add(Dense(50, kernel_initializer='truncated_normal',
activation='relu'))
model.add(GRU(units=32, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=
['accuracy'])
model.fit(pad_phrases_train, sents_train, batch_size=250, epochs=50,
validation_data=(pad_phrases_valid, sents_valid), verbose=2)
model.evaluate(pad_phrases_test, sents_test)
Оценка всегда показывает точно 0,2057 балла. Я хочу достичь точности около 50%