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

Flask猫狗分类ML Web应用报错:无法同时展示图片与预测结果

排查方向与常见问题

以下是针对你遇到的内部服务器错误的核心排查点,按出现概率排序:

1. 模型加载异常

  • 检查app_ml.py中模型文件的路径是否正确,相对路径容易因运行环境导致找不到文件,建议改用绝对路径:
    from pathlib import Path
    model_file = Path(__file__).parent / "cat_dog_model.h5"
    model = load_model(model_file)
    
  • 单独在Python环境中测试模型加载与预测,确认模型文件未损坏、能正常输出结果。

2. 图片预处理不匹配

训练模型时的预处理逻辑必须和预测时完全一致,否则会触发模型输入维度/格式错误:

  • 确保预测时图片resize的尺寸和训练时一致(比如target_size=(150,150))
  • 同步归一化操作(训练时如果做了img /=255.0,预测时必须同样处理)
  • 不要遗漏扩展维度的步骤,模型需要批量输入:
    img_array = np.expand_dims(img_array, axis=0)
    

3. 路由变量传递错误

  • 确认app_ml.py的结果路由中,已将预测结果正确传入模板,比如:
    pred_result = "猫" if model.predict(img_array)[0][0] < 0.5 else "狗"
    return render_template("result.html", img_name=file.filename, prediction=pred_result)
    
  • 若模板中使用{{ prediction }}但路由未传递该变量,会直接触发模板渲染错误。

4. 模板语法错误

检查result.html中的变量引用与标签语法:

  • 确认{{ prediction }}等变量的拼写和路由传递的变量名一致
  • 检查图片展示的url_for是否指向正确的视图函数,比如:
    <img src="{{ url_for('get_uploaded_img', filename=img_name) }}" alt="上传图片">
    
    需确保get_uploaded_img路由已正确定义,能返回上传的图片文件。

5. 文件权限与路径问题

  • 确认上传文件夹(UPLOAD_FOLDER)的权限允许服务器读写,Linux环境下可执行chmod 755 上传文件夹路径
  • 检查app.config['UPLOAD_FOLDER']的路径是否正确,确保上传的图片能被保存和读取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:20