从代码转化角度看STM32CubeMX.AI

嵌入式设备自带专用属性,不适合作为随机性很强的人工智能深度学习训练平台。想象用S3C2440训练神经网络算法都会头皮发麻,PC上的I7、GPU上都很吃力,大部分都要依靠服务器来训练。但是一旦算法训练好了做成了一个API库就可以到处移植转化使用了,就像一个驱动程序。

但是训练好的深度学习模型直接用在嵌入式设备上依然有难度,一个是嵌入式设备计算资源有限(RAM、ROM小),其二是嵌入式设备大部分使用使用的编译器都是C语言的,而深度学习模型代码一般都是高级语言如Python等。

那么就存在语言转化、逻辑转化、效率转化的问题。意法半导体公布的人工智能模型转化函数库“X-CUBE-AI”完全不同于它之前公布的底层驱动包、中间层函数库。“X-CUBE-AI”目前仅仅转化一小部分人工智能模型:

  • Generation of an STM32-optimized library from pre-trained Neural Network models
  • Support various Deep Learning frameworks such as Keras, Caffe, ConvnetJS, and Lasagne
  • Easy portability across different STM32 microcontrollers series through STM32Cube™ integration
  • Free, user-friendly license terms

虽然这与传统的嵌入式比如做驱动程序、写C应用代码差别很大,可是本质上除了多了一步转化成C代码并在嵌入式设备上调试,实际上与在PC上设计开发深度学习模型区别不大。

意法半导体恰恰解决了转化这一中间层的痛点。对于传统嵌入式软件工程师而言,搞人工智能的人甚至不是软件工程师他们通过python、matlab等研究性质的语言设计出了人工智能模型,但离产品化还很远。在通用平台上开发人工智能已经比较成熟,各大PC、手机、软件厂商提供了大量工具。可是在嵌入式设备领域则是一片蛮荒之地。诚然对于水平高的人而言,将python设计的人工智能模型,转为C语言并下载到嵌入式设备上可能不难。但是对于大量从未接触人工智能模型的软件工程师而言,人工智能模型就像一个黑盒,他们更希望这个黑盒是用C语言打造的。

希望有一天STM32CubeMX.AI做成了标准库一样,嵌入式软件工程师开发人工智能应用就得心应手了。

你可能感兴趣的:(从代码转化角度看STM32CubeMX.AI)