建立模型后,如何使用它来预测单个字符串的类别?
model.predict()正在返回类似的东西,[[0.41100174 0.5889983 ]]而不是它的预测类(0或1)。
假设我是model这样构建的:
hist = model.fit(data.x_train,
data.y_train,
validation_data=(data.x_test, data.y_test),
epochs=500,
batch_size=50,
shuffle=False,
verbose=2,
callbacks=[checkpoint, estopping, tensorboard])
我正在寻找使用 预测字符串的类model.predict(),但它返回类似[[0.41100174 0.5889983 ]]而不是预测的类(0或1)。
data.x_test(用于验证数据)的形状与( data.x_datareformatted string to predict) 的形状相同:((1, 250, 70)显然,除了行数)
这是我尝试使用该模型来预测字符串类别的方法。
def predict_string(model,s):
df = pd.DataFrame([s], columns=['text'])
df = df.reset_index(drop=True)
df['label'] = [0]
df.label = pd.to_numeric(df.label, errors='coerce') # Convert to integer
df = df.dropna()
df = df[df.label.apply(lambda x: x !="")]
df = df[df.text.apply(lambda x: x !="")]
vocab_len = 70
data = char_preproc(df.text, df.label, vocab_len, True, None)
y_pred = model.predict(data.x_data)
return y_pred
s = "Best movie ever" # Out: [[0.41100174 0.5889983 ]]
# s = "Worst movie ever" # Out: [[0.5436389 0.45636114]]
y_pred = predict_string(model, s)
print("Review: {}\"\nPredict: {}".format(s, y_pred))
我不确定这是否重要,但为了测试,我使用在烂番茄电影评论数据集上训练的字符级 CNN1将电影评论分类为好 ( ) 或坏 ( 0) ,通过 Google Colab 在 GPU 上运行。