中文|English
该案例仅仅用于学习,打通流程,不对效果负责,不支持商用。
本项目支持在 Atalas 200 DK上运行,实现了句子级情感极性分类网络的推理功能,输出每个类别的置信度。
本reademe提供该应用运行c++推理代码的说明,以及python环境下模型训练及推理的的步骤说明。
运行此工程项目前,需要按照此章节获取源码包。
-
cd $HOME/AscendProjects wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/200dk/SentimentAnalysis.zip unzip SentimentAnalysis.zip
如果wget下载失败,可复制下载链接到浏览器。
-
模型的PB文件在 models/snapshots 路径下。BERT网络预训练好的参数来自 https://github.com/google-research/bert 中的 [BERT-Base, Chinese] 部分。
-
将原始网络模型转换为适配昇腾AI处理器的模型。
cd SentimentAnalysis/src/acl_demo ./model_convert.sh运行以上命令,将会在models/snapshots 路径下生成OM模型。
-
安装编译工具
sudo apt-get install -y g++-aarch64-linux-gnu g++-5-aarch64-linux-gnu
-
下载jsoncpp源码
cd ./models git clone https://github.com/open-source-parsers/jsoncpp.git cd jsoncpp
到 jsoncpp 目录里后,执行python脚本,生成 dist 子目录
python amalgamate.py
-
编译ACL/C++代码
进入src/acl_demo 目录,运行 shell 脚本:
./build.sh
编译后的可执行文件 inference 在 build 目录中。
-
一键推理
文本数据读取、数据预处理和前向推理三个步骤整合到一个命令中,执行如下shell命令:
cd src/acl_demo ./build/inference -m ../../models/snapshots/models.om -i ../../models/hotel.decode.txt -o ../../output/-m :指定OM模型的路径;
-i : 指定输入的句子级中文文本文件的路径;
-o : 指定网络输出结果的保存目录。
-
查看输出结果
cd ../../models python check_output.pyshell里会输出网络的输出矩阵,每一行的三个数字对应三个情感类别的score,取最大的score对应的类别作为该评论的情感极性。
以上描述了在Ascend 310上运行ACL/C++代码来实现网络推理的完整流程。下面的内容是介绍在CPU/GPU上的进行模型训练/推理的方式:
-
训练
首先进入到 tf_total_sentiment 目录中,
cd SentimentAnalysis/models python main.py训练过程中的神经网络参数将被保存在 snapshots 子目录里。
-
推理/测试
python test.py
