You need to enable JavaScript to run this app. 无GPU环境下使用Flask基于CPU加载预训练模型如何屏蔽GPU相关报错
优惠活动
大模型
产品
解决方案
定价
更多

无GPU环境下使用Flask基于CPU加载预训练模型如何屏蔽GPU相关报错

纯CPU设备下Flask部署Keras/TensorFlow模型的GPU报错解决

触发报错的本质

你当前安装的TensorFlow是带GPU支持的版本,程序启动流程里默认会扫描系统中的CUDA、cuDNN动态库。日志最开始的cudart64_110.dll not found是警告级提示,本身不会导致程序崩溃;因为没有提前告知框架“这台机器没有GPU,不需要检索相关依赖”,程序会沿着GPU版本的加载流程继续执行,尝试加载后续GPU配套组件,最终触发WinError 126的“找不到指定模块”异常,直接中断模型加载。

具体配置步骤

  • 第一,在所有深度学习库导入前,提前写入禁用GPU识别的环境变量
    注意:这部分配置必须放在import numpy、import keras、import tensorflow这类语句的最前面,如果先导入TensorFlow再设置环境变量,配置不会生效。
    对应代码片段:
    import os
    # 强制设置CUDA可见设备为空,完全跳过GPU硬件扫描
    os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    # 屏蔽TensorFlow的非必要日志,减少冗余输出
    os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
    
  • 第二,在代码层面主动切断TensorFlow对GPU设备的识别
    导入TensorFlow之后,主动调用API清空可见的GPU设备列表,避免隐式的GPU调用逻辑:
    import tensorflow as tf
    # 主动将所有GPU设备设置为不可见,框架完全依托CPU运行
    tf.config.set_visible_devices([], 'GPU')
    
  • 第三,验证依赖包版本匹配性
    如果完成上面两步仍提示找不到CUDA动态库,说明当前安装的TensorFlow是GPU专属版本包,直接替换为纯CPU版本即可,执行命令:
    # 卸载原有带GPU支持的TensorFlow包
    pip uninstall tensorflow tensorflow-gpu -y
    # 安装和训练模型时版本一致的CPU专属TensorFlow包
    pip install tensorflow-cpu==对应训练时的版本号
    
  • 调整原有加载代码的细节
    把原来的模型加载函数补充必要的异常判断、资源释放逻辑,避免文件路径问题引发的连锁报错,调整后的完整load.py参考:
    import os
    # 环境变量设置必须位于所有深度学习库导入之前
    os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
    
    import numpy as np
    from tensorflow.keras.models import model_from_json
    import tensorflow as tf
    
    # 主动隐藏所有GPU设备
    tf.config.set_visible_devices([], 'GPU')
    
    def load_model():
        if not os.path.exists("model.json") or not os.path.exists("model.h5"):
            raise FileNotFoundError("未检测到模型结构/权重文件,请检查路径配置")
        with open("model.json", 'r') as json_file:
            model_structure = json_file.read()
        loaded_model = model_from_json(model_structure)
        loaded_model.load_weights("model.h5")
        loaded_model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
        return loaded_model
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 12:36:04