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

使用fastAI验证损坏图片时遇ValueError: max_workers必须≤61

解决Windows下fastAI verify_images的max_workers限制问题

核心原因

Windows系统中multiprocessing模块的Pool限制最大worker数为61,而fastAI默认使用defaults.cpus(通常等于CPU核心数,比如64),触发ValueError: max_workers must be <=61错误。

有效解决方案

方案1:调用前全局修改fastAI默认CPU数

在执行verify_images前,强制将defaults.cpus设为不超过61的值(比如8),确保全局配置覆盖默认的核心数:

from fastai.vision.all import *
defaults.cpus = 8  # 直接修改全局默认worker数上限
verify_images(path_to_images, n_workers=8)

同时显式传递n_workers参数,避免版本差异导致的参数优先级问题。

方案2:Jupyter环境特殊适配

Windows下Jupyter的多进程机制存在兼容性问题,需先设置进程启动方式,再修改配置:

import multiprocessing
from fastai.vision.all import *

# 适配Windows Jupyter的多进程启动方式
multiprocessing.set_start_method('spawn', force=True)
defaults.cpus = 8
verify_images(path_to_images, n_workers=8)

方案3:直接传递max_workers参数(针对特定fastAI版本)

部分fastAI版本中,verify_images支持通过kwargs直接传入max_workers,覆盖全局配置:

from fastai.vision.all import *
verify_images(path_to_images, max_workers=8)

若此参数不生效,优先使用方案1或方案2。

之前修改无效的原因

  • 直接修改utils.py或parallel.py源码后,Anaconda环境的模块缓存未更新,修改未生效;
  • 部分fastAI版本中,n_workers参数优先级低于全局defaults.cpus,需先修改全局配置再调用函数;
  • Windows下Jupyter的多进程初始化逻辑特殊,直接传参数会被全局默认值覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:50:28