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

EasyOCR运行报错:pin_memory设为True但未检测到加速器

EasyOCR运行警告问题排查

初始代码

reader = easyocr.Reader(['en'], gpu=False)

def read_sign(sign):
    result = reader.readtext(sign)
    return 'STOP' in result

出现的警告信息

AppData\Local\Programs\Python\Python313\Lib\site-packages\torch\utils\data\dataloader.py:665:
UserWarning: 'pin_memory' argument is set as true but no accelerator is found, then device pinned memory won't be used.

问题追踪细节

已定位警告来自dataloader类,但该类初始化时pin_memory参数明确设为False,暂时找不到警告触发的直接线索。该类初始化代码如下:

def __init__(
        self,
        dataset: Dataset[_T_co],
        batch_size: Optional[int] = 1,
        shuffle: Optional[bool] = None,
        sampler: Union[Sampler, Iterable, None] = None,
        batch_sampler: Union[Sampler[list], Iterable[list], None] = None,
        num_workers: int = 0,
        collate_fn: Optional[_collate_fn_t] = None,
        pin_memory: bool = False,
        drop_last: bool = False,
        timeout: float = 0,
        worker_init_fn: Optional[_worker_init_fn_t] = None,
        multiprocessing_context=None,
        generator=None,
        *,
        prefetch_factor: Optional[int] = None,
        persistent_workers: bool = False,
        pin_memory_device: str = "",
        in_order: bool = True,
):
    torch._C._log_api_usage_once("python.data_loader")

解决思路

  • 检查EasyOCR内部调用逻辑:尽管DataLoader默认参数是pin_memory=False,但EasyOCR内部可能在实例化DataLoader时手动将该参数设为True(哪怕指定了gpu=False)。可以找到EasyOCR中调用DataLoader的代码,强制将pin_memory设为False。
  • 降级PyTorch版本:该警告可能是PyTorch 2.2+版本新增的检测逻辑,和旧版本EasyOCR存在兼容问题。尝试将PyTorch降级到2.1.x版本,看是否能消除警告。
  • 临时屏蔽警告:如果警告不影响功能正常运行,可以用以下代码屏蔽该特定警告:
import warnings
warnings.filterwarnings("ignore", message="'pin_memory' argument is set as true but no accelerator is found")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:49:53