如何在Docker/Mac下CPU运行StyleGAN2 TensorFlow预训练模型生成图像
报错根因
StyleGAN2官方代码默认启用CUDA定制融合算子优化,运行时会强制检测CUDA设备,无GPU环境下会直接抛出异常终止运行,即使指定仅用CPU也无法跳过该检测逻辑。
修复步骤
- 禁用自定义CUDA算子调用
打开dnnlib/tflib/network.py文件,找到use_custom_ops参数定义,将默认值从None改为False,强制代码全程使用原生TensorFlow算子实现,跳过CUDA算子编译逻辑。
- 禁用自定义CUDA算子调用
- 移除无GPU检测的报错逻辑
打开dnnlib/tflib/custom_ops.py文件,定位到抛出RuntimeError('No GPU devices found')的代码行,直接注释该行报错逻辑,在该位置新增return None即可,避免无GPU环境直接中断运行。
- 移除无GPU检测的报错逻辑
- 执行CPU运行命令
运行前先设置环境变量屏蔽CUDA设备检测,再执行生成命令,建议提前将预训练pkl文件下载到本地,避免谷歌网盘拉取失败:
- 执行CPU运行命令
# 屏蔽CUDA设备检测 export CUDA_VISIBLE_DEVICES=-1 # 执行图像生成命令,替换为你的本地pkl文件路径 python run_generator.py generate-images --network=./stylegan2-ffhq-config-f.pkl --seeds=66,230,389,1518 --truncation-psi=1.0
运行说明
- CPU运行生成效率较低,单张1024*1024 FFHQ图像生成耗时通常在10秒到1分钟区间,取决于CPU硬件性能
- 仅支持TensorFlow 1.14、1.15的CPU版本,不可使用TensorFlow 2.x系列版本,否则会出现接口不兼容报错
- Docker环境运行时提前将预训练模型挂载到容器内,避免容器内无法访问外部文件的问题
内容的提问来源于stack exchange,提问作者hedew28310
相关产品推荐
相关产品推荐

