Можете предсказать другие данные из Кераса? - PullRequest
0 голосов
/ 29 сентября 2019

Я работаю над второй классификацией книг по содержанию книги через Keras.

Во-первых, классифицируйте ее по жанру после повторного разделения жанра. Например, фантастические романы можно классифицировать как использующие магию и / или нет.

Обратите внимание, что моя модель работает нормально. После обучения модели и сохранения ее в расширении .h5 файл затем показывает действительные результаты только в том же наборе тестовых данных . Проблема, которая меня интересует, это нормальное поведение?

ИЛИ

Должны ли мы изменить данные и продолжить обучение, чтобы определить другие книги?

X_train,X_test,y_train,y_test = preprocessing(garbage_remove(tconst))

top_words = 2000
max_words = 1250

model = Sequential()
model.add(Embedding(top_words, 32, input_length=max_words))
model.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(250, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

early_stopping = EarlyStopping(monitor='acc', min_delta=0, patience=3,
                verbose=0, mode='auto')
hist = model.fit(X_train, y_train, validation_data=(X_test, y_test),
                epochs=50, batch_size=128, verbose=1, callbacks=[early_stopping])

scores = model.evaluate(X_test, y_test, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))


from keras.models import load_model
model.save('temp1.h5') 

Например, пусть

temp1.h5 = Harry Potter - это данные X_test

Повторение вышеупомянутой модели (только изменение данных теста) после проверки с помощью `model.predict

temp2.h5 = Star Warz - это данные X_test

Когда одновременно используется одна модель, получается только один точный результат , т. Е.

(Harry Potter = temp1, Star Wars = temp2).

model = load_model('temp.h5')

a = model.predict(X_test)
k = 0
for i in a:
    k += i

print(k/len(a))

Случаи:

1) Использование temp1:

  • Гарри Поттер = 0,94 (Обычный)
  • Звездные войны = 0,64 (или выше)

2) Использование temp2:

  • Звездные войны = 0,08 (Обычный)
  • Гарри Поттер = 0,34 (или выше)

Является ли эта серия процессов нормальной?

Также обратите внимание, что у фэнтезийных фильмов, использующих магию, есть значение, близкое к 1. Фильмы, в которых не используется магия, создаются для того, чтобы иметь значениеблизко к нулю. Поэтому для Звездных войн нормально использовать 0,08 при использовании temp2. ​​

Даже когда я был настроен на основе temp2. Я думаю, что оценка Гарри Поттера должна быть примерно 0,94. Это моя идея неверна?

Когда файл .h5, сгенерированный из одних данных, используется другим набором данных, это нормально для получения странного результата?

Например, если я пытаюсьдля обеспечения этого на 10 000 книг, следует ли проводить обучение в приведенном выше коде один раз для каждой книги, то есть 10 000 раз?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...