
017 Docker在TinyML开发中的应用从一次“环境地狱”说起上个月帮团队调一个STM32上的TinyML推理延迟问题,模型是MobileNetV2量化版,在开发板上跑得好好的,换到同事的Ubuntu 20.04机器上编译,死活链接不上CMSIS-NN库。折腾半天发现他系统里默认的arm-none-eabi-gcc版本是10.3,我的是9.2,链接器行为不一样。更离谱的是,他机器上还装了两个版本的Python,一个3.8一个3.10,TensorFlow Lite Micro的Python绑定直接炸了。这种“环境地狱”在TinyML开发里太常见了——嵌入式工具链版本敏感、Python依赖冲突、不同Linux发行版对USB设备权限的处理方式不同。后来我干脆把所有开发环境塞进Docker,从此再没为环境问题加过班。Docker为什么适合TinyML很多人觉得Docker是后端微服务的玩具,跟嵌入式开发八竿子打不着。这个认知得改改。TinyML开发有几个痛点,恰好是Docker的强项:工具链版本锁定。ARM GCC、CMSIS、TensorFlow Lite Micro、X-CUBE-AI这些工具,版本之间经常不兼容。Docker镜像可以把特定版本的工具链固化下来,团队里谁拉这个镜像,编译结果就一样。交叉编译环境隔离。你本机可能是x86_64,但目标板是ARM Cortex-M4。Docker里装好交叉编译工具链,编译出来