0
에서 model.predict()를 사용하려고 시도 할 때 크기가 잘못되었습니다. 코드가 그 자체로 말하지만 모델을 훈련 시켰다고 생각합니다. 이제는 새로운 입력 데이터를 예측하는 데 사용하고 싶습니다. 새로운 입력 데이터가 잘못된 치수 인 것 같습니다. 당신이 모델과 예측 모두에 대한 코드 및 오류 메시지를 볼 수 있습니다 예측하고 오류 메시지가하려고 지금Keras
tokenizer = Tokenizer(num_words=10000)
df = pd.read_csv('/home/paperspace/Sentiment Analysis Dataset.csv', index_col = 0,
error_bad_lines = False)
y = list(df['Sentiment'])
tokenizer.fit_on_texts(list(df['SentimentText']))
X = tokenizer.texts_to_sequences(list(df['SentimentText']))
X = pad_sequences(X)
print("Done, fitting on texts.")
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, shuffle = True)
model = Sequential()
#Creates the wordembeddings.
embedding_vector_dim = 32
model.add(Embedding(10000, embedding_vector_dim, input_length=X.shape[1]))
model.add(Dropout(0.2))
model.add(LSTM(128))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.summary()
model.fit(numpy.array(X_train), numpy.array(y_train),
batch_size=128,
epochs=1,
validation_data=(numpy.array(X_test), numpy.array(y_test)))
score, acc = model.evaluate(numpy.array(X_test),numpy.array(y_test),
batch_size=128)
model.save('./sentiment_seq.h5')
print('Test score:', score)
print('Test accuracy:', acc)
을 (시도). 훈련 및 예측할 때 전처리가 동일 그래서 기본적으로
text = "this is actually a fucking shit movie."
tokenizer = Tokenizer()
tokenizer.fit_on_texts(list(text))
X = tokenizer.texts_to_sequences(list(text))
X = pad_sequences(X)
X_flat = np.array([X.flatten()])
model = load_model('sentiment_test.h5')
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
print(model.predict(X, batch_size = 1, verbose = 1))
ValueError: Error when checking : expected embedding_1_input to have shape (None, 116) but got array with shape (1, 38)
이유는이 오류를 얻고, 방법은 내가 예상 입력이 오류 메시지가 표시되기 전에해야 무엇을 알 수 있는가?
나는 그것을 알아 낸 것 같습니다. 나는 문장을 패딩 할 때 고정 입력을 사용한다고 가정하고, X.shape [1]이 무엇인지 알아 내야하고, 예측할 때 그 길이만큼의 모든 새로운 입력을 덧붙여 야합니다. – sn3jd3r