我尝试使用Tensorflow Lite Model Maker提供的AverageWordVecModelSpec
构建一个android应用程序来预测文本分类
我正在使用书籍内容来测试我的应用程序是否有效。我为这个实验准备了三本书。代码如下:
!pip install git+https://github.com/tensorflow/examples.git#egg=tensorflow-examples[model_maker]
import numpy as np
import os
import tensorflow as tf
assert tf.__version__.startswith('2')
from tensorflow_examples.lite.model_maker.core.data_util.text_dataloader import TextClassifierDataLoader
from tensorflow_examples.lite.model_maker.core.task.model_spec import AverageWordVecModelSpec
from tensorflow_examples.lite.model_maker.core.task import text_classifier
data_path = '/content/drive/My Drive/datasetps'
model_spec = AverageWordVecModelSpec()
train_data = TextClassifierDataLoader.from_folder(os.path.join(data_path, 'train'), model_spec=model_spec, class_labels=['categorya', 'categoryb'])
test_data = TextClassifierDataLoader.from_folder(os.path.join(data_path, 'test'), model_spec=model_spec, is_training=False, shuffle=False)
model = text_classifier.create(train_data, model_spec=model_spec)
loss, acc = model.evaluate(test_data)
model.export(export_dir='.')
当我只使用2个类/书(与tensorflow团队提供的示例相同)时,它会起作用: it works normal even though it has small acurracy-- because i only takes 20 sample page per book as dataset actually
你可以看到我这里有合理的损失值, 但我在尝试添加第三类时遇到了一个问题:
train_data = TextClassifierDataLoader.from_folder(os.path.join(data_path, 'train'), model_spec=model_spec, class_labels=['categorya', 'categoryb', 'categoryc'])
test_data = TextClassifierDataLoader.from_folder(os.path.join(data_path, 'test'), model_spec=model_spec, is_training=False, shuffle=False)
以下是涉及三等舱的培训结果: enter image description here
您可以看到损失值大于1是不合理的。 我试着找出我应该改变哪一行代码(来自Tensorflow Model Maker)来解决这个问题,最后在这个论坛上讨论了这个问题
So is it possible to have multiclass model for textclassifier using AverageWordVecModelSpec TFlite model maker?
这是可能的。我建议您先对标签进行编码,然后按照工作流程进行操作:
相关问题 更多 >
编程相关推荐