如何在Python代码中屏蔽torch与EasyOCR的CUDA、NNPACK运行警告
屏蔽EasyOCR与PyTorch相关警告的解决方案
你此前添加的os.environ["CUDA_VISIBLE_DEVICES"]=""配置无法解决问题,该配置的作用是主动禁用GPU设备,反而会提高CUDA不可用警告的触发概率。你可以按照以下步骤配置代码屏蔽两条警告:
警告来源说明
- 第一条
CUDA not available - defaulting to CPU. Note: This module is much faster with a GPU.是EasyOCR库初始化时主动输出的运行提示 - 第二条
[W NNPACK.cpp:79] Could not initialize NNPACK! Reason: Unsupported hardware.是PyTorch库加载时输出的硬件适配警告
解决方案
- 所有环境变量配置必须放在导入torch、easyocr等第三方库之前,否则库加载完成后再修改环境变量不会生效
- 初始化EasyOCR的Reader实例时添加
verbose=False参数,即可关闭EasyOCR的所有运行时提示,包括CUDA不可用的提示 - 添加PyTorch相关配置关闭NNPACK警告,你可以选择任意一种适用的配置:
- 配置环境变量禁用NNPACK:
os.environ["PYTORCH_ENABLE_NNPACK"] = "0" - 修改PyTorch日志级别,仅输出错误级别的信息:
logging.getLogger("torch").setLevel(logging.ERROR) - 全局屏蔽所有Python警告:
warnings.filterwarnings("ignore")
- 配置环境变量禁用NNPACK:
完整示例代码
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 所有环境变量、日志配置必须放在导入第三方库之前 import os import logging import warnings # 禁用NNPACK os.environ["PYTORCH_ENABLE_NNPACK"] = "0" # 屏蔽PyTorch警告 logging.getLogger("torch").setLevel(logging.ERROR) # 可选:全局屏蔽所有警告 warnings.filterwarnings("ignore") # 再导入其他依赖 import cv2 import numpy as np import easyocr import sys import requests # 初始化EasyOCR时添加verbose=False关闭自带提示 reader = easyocr.Reader(['ch_sim', 'en'], verbose=False)
内容的提问来源于stack exchange,提问作者Dev Dev
相关产品推荐
相关产品推荐

