【发布时间】:2019-07-12 15:08:27
【问题描述】:
我正在构建一个非常简单的 DNN 二进制模型,我将其定义为:
def __build_model(self, vocabulary_size):
model = Sequential()
model.add(Embedding(vocabulary_size, 12, input_length=vocabulary_size))
model.add(Flatten())
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
return model
接受以下培训:
def __train_model(self, model, model_data, training_data, labels):
hist = model.fit(training_data, labels, epochs=20, verbose=True, validation_split=0.2)
model.save('models/' + model_data['Key'] + '.h5')
return model
这个想法是在训练后提供 tfidf 矢量化文本,并在它属于 1 类或 0 类时进行预测。可悲的是,当我对它运行 predict 时,我得到一个预测数组,而不是属于 1 类的文章的预期 1 概率. 数组值看起来很统一。我认为这来自模型中的一些错误。我尝试像这样弹出预测:
self._tokenizer.fit_on_texts(asset_article_data.content)
predicted_post_vector = self._tokenizer.texts_to_matrix(post, mode='tfidf')
return model.predict(predicted_post_vector) > 0.60 // here return array instead of true/false
训练数据本身就是矢量化文本。可能有什么问题?
【问题讨论】:
标签: python tensorflow keras nlp tf-idf