耐能KL520 AI 芯片应用开发技能 <Part-005>

文章目录

  • 前言
  • 一、从训练模型出发
    • 1.准备测试资料
    • 2.最典型的程序范例
    • 3.撰写App来引导推论
  • 总结


前言

《耐能KL520Python程序雕龙小技》

Part-005

By 神樱AI团队

2022/7/01

KL520推论后,添加Softmax运算

耐能KL520 AI 芯片应用开发技能 <Part-005>_第1张图片


说明:

& 二元分类(Binary Classification)只要表现于最后一层的FC(即全连接层)

& FC层的标准实践机制,就是Pytorchnn.Linear()

& 实作途径有二:

  1. 如果nn.Linear()的输出层是2个神经元,就可以搭配Softmax()激活函数,来时作二元分类。
  2. 如果nn.Linear()的输出层是1个神经元,就可以搭配Sigmoid()激活函数,来时作二元分类。

& 然而,在KL520推论时,只输出最后nn.Linear()层的神经元的值。

& 并没有再经由Softmax()激活函数计算。

& 所以并非输出Softmax()计算之后的值。

&于是,我们需要自己拿Softmax()来计算之,才是正确的分类(条件)机率值。

一、从训练模型出发

1、准备测试资料

& 本范例使用两个图像集(Dataset):

耐能KL520 AI 芯片应用开发技能 <Part-005>_第2张图片

 & 两类别,各有50张图像:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第3张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第4张图片

 & 所以,训练数据集共有100个样本。

2、最典型的程序范例

& 使用nn.Linear()搭配Softmax()函数。

指令:

 & 这迁移ResNet50的预训练模型。

添加上自己的FC层,指令:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第5张图片

 & nn.Linear()的输出层是2个神经元,搭配Softmax()激活函数。

& 程序代码:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第6张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第7张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第8张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第9张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第10张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第11张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第12张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第13张图片

 & 执行它,就展开训练,输出:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第14张图片

 & 这也汇出onnx档案。

& 经由耐能toolchain进行转换优化,生成*.nef档案:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第15张图片

 & 就能在KL520上运行推论了。

3、撰写App来引导推论

现在就来撰写一支myApp.py来引导推论。

& 此范例程序代码:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第16张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第17张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第18张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第19张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第20张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第21张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第22张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第23张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第24张图片

 耐能KL520 AI 芯片应用开发技能 <Part-005>_第25张图片

 & 在KL520上执行这支App,就进行推论,而输出:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第26张图片

 & 由于KL520推论输出的值,是nn.Linear()层的输出神经元的值。并没有经过Softmax()的转换。

于是,就在上述myApp.py里,增添一行指令:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第27张图片

 & 修改完毕了。

& 重新执行这myApp.py程序。

& 就输出正确预测(推论)结果了,如下:

耐能KL520 AI 芯片应用开发技能 <Part-005>_第28张图片

 & 于是,顺利实作完成了。

& 最后,感谢您阅读本篇文章。本篇文章摘自【AI学习杂志】。

& 与神樱AI团队联络:[email protected]

◆◆◆


总结

更多资讯可私信,或者关注!

在个人主页,也可学习更多:

1、《关于NCS2+Openvino》: 、http://t.csdn.cn/452Tz

2、《建模_Unet_GAN》:http://t.csdn.cn/am37C

3、《彩绘GAN模型》:http://t.csdn.cn/OpfJ7

.............................................

你可能感兴趣的:(人工智能,芯片应用开发技能,python,机器学习,pandas)