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

Raspberry Pi 4下TensorFlow2.2加载交通标识模型触发OSError如何解决

问题原因
  • 路径匹配错误:树莓派运行的Linux系统对路径大小写敏感,你代码中写的./model/traffic_sign.model和实际模型存储的路径可能存在大小写、拼写不一致的问题。
  • 相对路径基准错误:你执行Python脚本的工作目录和预期不一致,导致./开头的相对路径指向的位置没有对应的模型文件。
  • 模型格式/结构不完整:TensorFlow 2.2.0的load_model默认加载SavedModel格式的模型,该格式是一个文件夹,内部必须包含saved_model.pb/saved_model.pbtxt文件以及variables子文件夹等结构。如果你的模型是H5格式的单文件,或者SavedModel文件夹结构损坏,就会触发该报错。
  • 权限不足:运行脚本的用户对模型存储路径没有读取权限。
解决方案
  1. 先验证路径有效性
    在你的代码前加入以下片段,确认路径是否匹配:
import os
# 打印当前工作目录,确认相对路径基准
print("当前工作目录:", os.getcwd())
model_path = "./model/traffic_sign.model"
print("目标路径是否存在:", os.path.exists(model_path))
if os.path.exists(model_path):
    print("路径下的文件列表:", os.listdir(model_path))

如果输出目标路径不存在,直接改用模型的绝对路径(比如/home/pi/[你的项目名]/model/traffic_sign.model)即可避免相对路径基准问题,同时检查拼写、大小写和实际路径保持一致。

  1. 检查模型结构
    如果路径存在但目录下没有saved_model.pb文件:
  • 如果你的模型是H5格式的单文件(比如名为traffic_sign.h5),直接把load_model的参数改为该H5文件的路径即可,TensorFlow 2.2.0原生支持加载H5格式模型。
  • 如果是模型导出不完整,回到训练环境重新导出完整的SavedModel格式模型,确认文件夹结构完整后再拷贝到树莓派上使用。
  1. 修复读取权限
    如果是权限问题,执行以下命令给模型目录加读权限即可:
chmod -R 755 ./model

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:39:03