NanoEdgeAIStudio学习
用NanoEdgeAIStudio学习了一下怎么训练数据
第一步先创建一个查找异常数据的工程,选择自己的数据的维度,我这里是三维的数据,选的是F4的芯片,选择好自己FLASH和RAM大小,但我这里只是测试如何训练数据,就没管这个大小
第二步 添加正常和异常的数据,这里我是利用python生成的测试数据
代码
import numpy as np
def generate_axis_samples(mean, std, num_samples=256):
"""生成单个轴的256个样本值"""
samples = np.random.normal(loc=mean, scale=std, size=num_samples)
return [f"{min(max(int(abs(x)*1000), 0), 999):03d}" for x in samples]
# ================= 生成 z3.csv =================
with open('z3.csv', 'w') as f:
# 生成120个样本(100正常 + 20异常)
for i in range(120):
# 前100个为正常数据
if i < 100:
# 生成3个轴的数据(每个轴256个样本)
axis1 = generate_axis_samples(0.1, 0.02)
axis2 = generate_axis_samples(0.1, 0.02)
axis3 = generate_axis_samples(0.1, 0.02)
# 后20个为异常数据
else:
axis1 = generate_axis_samples(0.5, 0.1)
axis2 = generate_axis_samples(0.5, 0.1)
axis3 = generate_axis_samples(0.5, 0.1)
# 合并三个轴的数据
combined = ' '.join(axis1 + axis2 + axis3)
f.write(combined + '\n')
这里要安装numpy库,这个很简单,在VS Code的终端里面输入pip install numpy,就会自行安装,但是速度很慢,可以打开梯子,就很快,这个代码可以改,改成生成正常数据和异常数据,然后把文件导入到NanoEdgeAIStudio;
第三步,NanoEdgeAIStudio工具会自动选择训练模型,这里会根据第一步选择的RAM和FLASH的大小会删除一些模型,经过一段时间会选出最优的模型,可以提前停止,不需要运行完
第四步,验证模型是否满足使用,这里就可以用代码生成一段数据,里面有正常和异常的数据,进行测试,我用了一段测试学习数据,里面有正确的数据也有异常的数据,然后通过测试,正确率是100%,在用这模型之前要先学习20条数据,
进行数据测试,通过模拟串口测试
我有两个模拟端口,是连在一起的,然后通过XCOM发数据,进行测试
XCOM的多条发送,五条数据有一组是异常的
测试结果没啥问题,实验成功,但是后面如何部署到STM32中,我还没学习。