前面已经将准备好虚拟机服务器、开发板USB连接并联网、分别在device和host部署好运行和开发环境、安装Mind studio、跑通猫狗识别样例%EF%BC%88Atlas200DK%EF%BC%89)

接下来我要挑选已经训练好的模型,将kares保存的H5文件转换为tf的pb文件进而转换为device上能跑的om文件,在device简单跑通模型,接着小小改动程序加入我们的业务逻辑。

任务还是挺多的,后天上午上课,大后天11月30号-23:31作业截止。 还有一个问题要确定:后天上课是干嘛,上课还是做pre?

模型输入[244,244,3]

tensorflow、pytorch、keras框架模型保存的格式汇总

Tensorflow h5转pb
https://blog.csdn.net/dou3516/article/details/118441871
https://www.tensorflow.org/api_docs/python/tf/keras/models/save_model
https://www.tensorflow.org/tutorials/keras/save_and_load

TF模型h5转换为frozenGraphDef

How to export a TensorFlow 2.x Keras model to a frozen and optimized graph
https://medium.com/@sebastingarcaacosta/how-to-export-a-tensorflow-2-x-keras-model-to-a-frozen-and-optimized-graph-39740846d9eb

老外的的代码有用

Save, Load and Inference From TensorFlow 2.x Frozen Graph
https://leimao.github.io/blog/Save-Load-Inference-From-TF2-Frozen-Graph/

ModelConverter离线转换

通过上面的代码讲H5保存的模型导入再转换为frozengraphdef的pb文件,传到虚拟机中开始atc转换

1639376424(1).jpgimage.png
image.png

  1. 2021-12-1314:34:49insertopfilecontent:
  2. aipp_op{
  3. related_input_rank:0
  4. src_image_size_w:224
  5. src_image_size_h:224
  6. crop:false
  7. padding:false
  8. input_format:YUV420SP_U8
  9. aipp_mode:static
  10. csc_switch:true
  11. rbuv_swap_switch:false
  12. matrix_r0c0:298
  13. matrix_r0c1:0
  14. matrix_r0c2:409
  15. matrix_r1c0:298
  16. matrix_r1c1:-100
  17. matrix_r1c2:-208
  18. matrix_r2c0:298
  19. matrix_r2c1:516
  20. matrix_r2c2:0
  21. input_bias_0:16
  22. input_bias_1:128
  23. input_bias_2:128
  24. mean_chn_0:104
  25. mean_chn_1:117
  26. mean_chn_2:123
  27. min_chn_0:0.0
  28. min_chn_1:0.0
  29. min_chn_2:0.0
  30. var_reci_chn_0:1.0
  31. var_reci_chn_1:1.0
  32. var_reci_chn_2:1.0
  33. }
  34. 2021-12-13 14:34:49 Start to convert model
  35. 2021-12-13 14:34:49 export PATH=$PATH:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/ccec_compiler/bin:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/bin && export PYTHONPATH=$PYTHONPATH:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/python/site-packages:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/python/site-packages/auto_tune.egg/auto_tune:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/python/site-packages/schedule_search.egg:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/opp/op_impl/built-in/ai_core/tbe && export LD_LIBRARY_PATH=/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/add-ons:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/acllib/lib64:$LD_LIBRARY_PATH:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/lib64/stub && export SLOG_PRINT_TO_STDOUT=1 && export ASCEND_OPP_PATH=/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/opp && /home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/bin/atc --input_shape="x:-1,224,224,3" --check_report=/home/wuboxin/modelzoo/sleep_or_not/Ascend310/network_analysis.report --input_format=NHWC --output="/home/wuboxin/modelzoo/sleep_or_not/Ascend310/sleep_or_not" --soc_version=Ascend310 --insert_op_conf=/home/wuboxin/modelzoo/sleep_or_not/Ascend310/insert_op.cfg --framework=3 --model="/home/wuboxin/models/mymodel/FrozenGraphDef/sleep_or_not.pb" --dynamic_batch_size="1,2,4,8"
  36. 2021-12-13 14:34:49 ATC start working now, please wait for a moment.
  37. 2021-12-13 14:35:42 ATC run success, welcome to the next use.
  38. 2021-12-13 14:35:42 Convert model environment variables:
  39. 2021-12-13 14:35:42 export PATH=$PATH:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/ccec_compiler/bin:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/bin && export PYTHONPATH=$PYTHONPATH:/home/wuboxin/Ascend/ascend-toolkit/5.0.3.alpha002/atc/python/site-packages:/home
  40. wuboxin@ubuntu3:~/modelzoo/sleep_or_not/Ascend310$ll
  41. 总用量80068
  42. drwxr-x---2wuboxinwuboxin4096Dec1314:35./
  43. drwxr-x---3wuboxinwuboxin4096Dec1314:34../
  44. -rw-------1wuboxinwuboxin577Dec1314:34insert_op.cfg
  45. -rw-r-----1wuboxinwuboxin3787Dec1314:35ModelConvert.txt
  46. -rw-------1wuboxinwuboxin13462Dec1314:34network_analysis.report
  47. -rw-------1wuboxinwuboxin2196Dec1314:35sleep_or_not_config.json
  48. -rw-------1wuboxinwuboxin81945693Dec1314:35sleep_or_not.om

试运行sleep or not 的demo

复制前天跑通的demo工程目录文件,抽取赖床数据集和将上一部转换的om替换上去,执行,遇到一个问题

Execute model failed for acl.mdl.execute error 145000

参考
https://bbs.huaweicloud.com/forum/thread-132486-1-1.html
将模型重新转换了一次,主要是修改下图红框
image.png
image.png
再跑一次就能跑通了,不过要测试数据要减少。

现在模型跑通了,下一步小小的加入我们的业务逻辑应该怎么分为几步呢。

给安装用户赋权
https://support.huaweicloud.com/environment-deployment-Atlas200DK1011/atlased_04_0023.html

跑视频demo

根据王嘉伟同学的依据,跑通了一个解析视频的demo
在此期间,由于我跑上一个demo修改了默认镜像中的环境,所以导致python环境变量冲突,所以不得不重新刷一遍镜像。
另一个重要的原因是,在重启虚拟机时没有及时关闭和开发板的连接,导致重启后不能及时连接到device。
image.png