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

Flask应用加载static文件夹内Keras模型失败问题求助

解决Flask中加载static文件夹内Keras模型的文件找不到问题

核心问题原因

你直接用/static/model/model.keras这种绝对路径,指向的是系统根目录下的static文件夹,而非Flask项目目录内的static文件夹,这才导致文件找不到。另外,自定义静态路由是给前端HTTP请求用的,后端加载本地模型不能通过路由访问,必须直接读取文件系统路径。

正确解决方案

方法1:用Flask应用根路径拼接(推荐)

利用Flask提供的root_path获取项目根目录,再拼接模型路径,避免路径分隔符和目录层级问题:

import os
from flask import Flask, current_app
from keras.models import load_model

app = Flask(__name__)

@app.route('/')
def init():
    # 拼接正确的模型路径
    model_path = os.path.join(current_app.root_path, 'static', 'model', 'model.keras')
    model = load_model(model_path)
    return render_template('index.html')

方法2:启动时一次性加载模型(性能优化)

不要在每次请求时重复加载模型,建议在Flask启动时加载一次,提升性能:

import os
from flask import Flask
from keras.models import load_model

app = Flask(__name__)
# 全局变量存储模型
model = None

@app.before_first_request
def load_model_on_startup():
    global model
    model_path = os.path.join(app.root_path, 'static', 'model', 'model.keras')
    model = load_model(model_path)

@app.route('/')
def init():
    # 直接使用已加载的全局模型
    return render_template('index.html')

额外提示

  • 检查模型文件路径:确认static/model/model.keras确实存在于你的Flask项目目录中,文件名和后缀(.keras)不要写错。
  • 权限问题:确保运行Flask的用户对该模型文件有读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:59:55