配置Plaidml后Keras模型无法调用AMD GPU仅在CPU运行的问题
问题根因
你的代码存在Keras导入覆盖问题:你先通过环境变量指定了KERAS_BACKEND为PlaidML,导入了适配AMD显卡的Keras版本,后续又执行了from tensorflow import keras语句,直接用TensorFlow自带的Keras覆盖了之前的PlaidML版Keras,因此模型只会在CPU上运行。你之前其他模型正常运行就是因为没有导入TensorFlow版Keras,没有触发覆盖问题。
修复步骤
- 删除两行TensorFlow相关的Keras导入语句:
from tensorflow import keras、from tensorflow.keras import layers - 从PlaidML适配的Keras中导入你需要用到的所有层,参考导入部分修正后的代码:
import numpy as np from os import environ # 环境变量配置必须放在所有Keras导入操作之前 environ["KERAS_BACKEND"] = "plaidml.keras.backend" import keras from keras.layers import Dense, Input, Conv1D, Dropout, Conv1DTranspose import pandas as pd from matplotlib import pyplot as plt
- 后续所有代码的Keras、层调用逻辑不用修改,直接运行即可调用PlaidML适配的GPU。
验证方式
代码运行前添加print(keras.__file__),确认输出的路径属于PlaidML安装目录,而非TensorFlow安装目录即可。
内容的提问来源于stack exchange,提问作者Venda
相关产品推荐
相关产品推荐

