AMD显卡安装DirectML后TensorFlow仍尝试调用CUDA是什么原因?
核心原因
你当前环境安装的是官方原生TensorFlow,该版本仅默认支持NVIDIA CUDA加速,未集成DirectML适配逻辑,因此无法识别AMD显卡的DirectML设备,最终 fallback 到CPU运行。
解决步骤
- 第一步:激活你创建的
directmlAnaconda环境,先卸载现有冲突的TensorFlow相关包:
pip uninstall -y tensorflow tensorflow-directml
- 第二步:安装微软官方适配DirectML的TensorFlow版本,要求Python版本在3.6~3.9区间,超出版本范围会无法兼容安装:
pip install tensorflow-directml
如果安装速度慢或提示安装失败,可以改用国内镜像源安装:
pip install tensorflow-directml -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:如果你的
directml环境Python版本高于3.9,需要重新创建适配版本的环境后再安装,示例创建命令:conda create -n directml python=3.8 -y
- 第三步:如果运行后仍未识别到DML设备,可以在测试代码最开头添加环境变量强制启用DirectML调度:
import os os.environ["TF_ENABLE_DIRECTML"] = "1"
原有测试代码无需其他修改,重新运行即可。
验证方法
安装完成后可先在终端执行以下命令确认包安装正确:
pip list | findstr tensorflow-directml
输出对应包的版本信息即说明安装成功,运行测试代码时会正常输出DirectML设备加载日志,运算也会调度到AMD显卡上执行。
内容的提问来源于stack exchange,提问作者Ladan
相关产品推荐
相关产品推荐

