压缩cpp模型后,java加载模型预测出错
Opened this issue · 6 comments
cgpeter96 commented
java的预测代码
FastText model = FastText.loadCppModel(new File("E:\\Downloads\\model.ftz"));
// Lexer lexer =Mynlp.instance().bigramLexer();
long start = System.currentTimeMillis();
String [] querys = new String[]{"北京大学在哪里","白羊座","金牛座"};
for(int i=0;i <querys.length;i++){
List<String> strings = Arrays.asList(querys[i].split(""));
List<ScoreLabelPair> predict = model.predict(strings,1,0);
System.out.println(predict.toString());
}
long end = System.currentTimeMillis();
System.out.println("cost time:"+(end-start));
压缩用到的命令
fasttext quantize -input train.txt -output model -qnorm -retrain -epoch 5 -cutoff 100000
想请教下大佬的问题的所在。
jimichan commented
暂时看不出问题
- 你确定训练也是单字分词?
- 在不压缩的情况下,是否正常?
cgpeter96 commented
暂时看不出问题
- 你确定训练也是单字分词?
- 在不压缩的情况下,是否正常?
确定是单字训练, 不压缩是正常的。
jimichan commented
该是新版本又变化了
cgpeter96 commented
该是新版本又变化了
意思是建议我用老版本的fasttext编译一版?
cgpeter96 commented
补充下额外的问题,经过一些测试发现,cpp训练的模型,loss除了softmax,像ns,hs都存在类似溢出现象,具体体现就是所有预测结果均集中于第0个标签,且prob为1.00001。
jimichan commented
感谢
要是能帮我fix这个问题,就太棒了