You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto Poky镜像中添加并构建Keras与TensorFlow包?

在Poky镜像中添加Keras和TensorFlow包的解决方案

Poky本身默认并没有包含TensorFlow和Keras的官方recipe,我之前帮不少开发者解决过类似问题,核心思路要么用官方维护的Python层,要么自己编写适配的recipe,下面分两种场景给你详细步骤:

方法一:使用官方meta-python层(推荐)

OpenEmbedded的meta-python层维护了大量Python生态的recipe,其中就包含TensorFlow和Keras,这是最省心的方式:

  • 步骤1:获取匹配版本的meta-python层
    一定要确保你克隆的meta-python分支和你的Poky版本完全一致(比如Poky用kirkstone,meta-python也用kirkstone分支),避免版本不兼容问题。在Poky同级目录执行:

    git clone -b <your-poky-branch> git://git.openembedded.org/meta-python
    
  • 步骤2:将meta-python添加到构建配置
    打开你的build目录下的conf/bblayers.conf,把meta-python的路径添加到BBLAYERS列表中,比如:

    BBLAYERS ?= " \
      ${TOPDIR}/../poky/meta \
      ${TOPDIR}/../poky/meta-poky \
      ${TOPDIR}/../poky/meta-yocto-bsp \
      ${TOPDIR}/../meta-python \
      "
    
  • 步骤3:确认recipe存在
    执行以下命令验证TensorFlow和Keras的recipe是否可用:

    bitbake-layers show-recipes | grep -E "(tensorflow|keras)"
    

    你应该能看到python3-tensorflow和python3-keras相关的条目。

  • 步骤4:将包添加到镜像
    打开conf/local.conf,在IMAGE_INSTALL后追加这两个包:

    IMAGE_INSTALL:append = " python3-tensorflow python3-keras"
    

    然后重新构建你的目标镜像即可,比如:

    bitbake core-image-minimal
    

方法二:自定义编写Recipe(针对特殊版本需求)

如果meta-python里的包版本不符合你的要求,或者你需要定制化编译选项,可以自己编写recipe:

  • 创建Keras的Recipe文件
    在你自己的自定义layer(比如meta-mylayer)中创建路径recipes-devtools/python/,然后新建python3-keras_<version>.bb文件,基础内容如下:

    SUMMARY = "High-level neural networks API"
    HOMEPAGE = "https://keras.io"
    LICENSE = "MIT"
    LIC_FILES_CHKSUM = "file://LICENSE;md5=5c65a065b9b90d9395294d40e7182130"
    
    PV = "2.15.0"
    SRC_URI = "https://pypi.org/packages/source/K/Keras/Keras-${PV}.tar.gz"
    SRC_URI[sha256sum] = "a3797d48a0434f2860e70630d0b2777a18f90438422d8a60f5d3f52814a2e09e"
    
    inherit setuptools3
    
    # Keras的依赖,根据版本调整
    RDEPENDS:${PN} = "python3-numpy python3-h5py python3-six python3-tensorflow"
    
  • 处理校验和
    如果你不确定sha256sum,可以先执行bitbake -c fetch python3-keras --runonly=fetch下载源码包,然后用sha256sum计算文件的校验和并更新到recipe中。

  • TensorFlow的自定义Recipe
    TensorFlow的recipe会更复杂,因为它依赖大量库且编译参数多,建议参考meta-python中的python3-tensorflow recipe进行修改,重点调整SRC_URI、PV以及编译选项(比如针对ARM架构的优化)。

关键注意事项

  • 版本匹配:务必保证meta-python和Poky的分支版本一致,否则会出现依赖冲突或编译失败的问题。
  • 硬件适配:如果是嵌入式ARM设备,可能需要在local.conf中添加硬件加速相关的配置,比如启用GPU支持(如果设备支持的话):
    TENSORFLOW_ENABLE_GPU = "1"
    
  • 编译资源:TensorFlow编译非常消耗CPU和内存,建议在local.conf中增加编译线程数:
    BB_NUMBER_THREADS = "8"
    PARALLEL_MAKE = "-j 8"
    

内容的提问来源于stack exchange,提问作者user9514893

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:12:16