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

Flask加载Keras模型遇No file or directory found错误求助

问题分析与解决

首先明确:你遇到的核心错误是模型文件路径不正确,前面的GPU/TensorRT相关警告属于非致命提示,若你的机器没有NVIDIA GPU,完全可以忽略这些信息,不影响模型加载功能。

错误根源

你的代码中使用os.path.realpath('./modelo')构建模型目录路径,但Flask运行时的工作目录和你预期的不一致:

  • 你的app.py位于/desarrollo/cafeplag/src/下
  • 模型文件实际在/desarrollo/cafeplag/modelo/下
  • 当你在src目录下启动Flask时,./modelo会指向/desarrollo/cafeplag/src/modelo/(该目录不存在),而非你需要的项目根目录下的modelo文件夹。

解决方案

1. 先验证文件实际位置

通过终端确认文件是否存在,执行命令:

ls -l /desarrollo/cafeplag/modelo/

确保modelo.h5和pesos.h5确实存在,且文件名没有大小写错误(Linux系统路径区分大小写)。

2. 基于脚本路径构建绝对路径

修改路径构建代码,利用当前脚本的绝对路径定位模型目录,避免相对路径的歧义:

# 替换原来的model_dir、model_path、pesos_path相关代码
import os
from flask import Flask, render_template

app = Flask(__name__)

# 获取当前脚本(app.py)所在目录的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 从src目录向上一级,找到项目根目录下的modelo文件夹
model_dir = os.path.join(current_dir, '../modelo')
model_path = os.path.join(model_dir, 'modelo.h5')
pesos_path = os.path.join(model_dir, 'pesos.h5')

# 后续加载模型的代码不变
model = load_model(model_path)
model.load_weights(pesos_path)

使用os.path.join拼接路径可以自动适配不同系统的路径分隔符,比直接字符串拼接更可靠。

3. 可选:指定Flask运行的工作目录

如果你习惯用相对路径,可在启动Flask时切换到项目根目录/desarrollo/cafeplag/,然后运行:

flask --app src/app.py run

这样./modelo就会正确指向项目根目录下的模型文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:15:38