如何在GPU环境下使用Keras?已安装GPU版TensorFlow并获取设备信息
在GPU环境下使用Keras的方法
嗨,看起来你已经成功搞定了支持GPU的TensorFlow安装,设备检测也显示GeForce GTX 970被正确识别了,这太棒了!想要在GPU环境下使用Keras其实非常简单,下面我给你详细说明操作步骤:
1. 确认Keras后端配置
Keras默认会以TensorFlow作为后端运行,不过你可以检查配置文件确保设置正确:
- 配置文件路径:Windows系统下是
C:\Users\你的用户名\.keras\keras.json,Linux/macOS是~/.keras/keras.json - 打开文件后,确保
"backend"字段的值为"tensorflow",如果不是的话修改保存即可。
2. 无需额外代码,自动调用GPU
只要你的GPU环境正常,Keras在训练、运行模型时会自动优先使用GPU资源,不需要额外修改代码。你可以运行一段简单的测试代码验证:
# 可选:屏蔽TensorFlow的CPU指令警告 import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' from keras.models import Sequential from keras.layers import Dense import numpy as np from keras.utils import to_categorical # 构建简单神经网络模型 model = Sequential() model.add(Dense(64, activation='relu', input_dim=100)) model.add(Dense(10, activation='softmax')) # 编译模型 model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) # 生成测试数据 data = np.random.random((1000, 100)) labels = np.random.randint(10, size=(1000, 1)) one_hot_labels = to_categorical(labels, num_classes=10) # 训练模型,此时会自动调用GPU执行运算 model.fit(data, one_hot_labels, epochs=10, batch_size=32)
3. 验证GPU是否被正常使用
如果你想确认Keras确实在调用GPU,可以添加以下代码检测:
from keras import backend as K print("可用GPU列表:", K.tensorflow_backend._get_available_gpus())
运行后如果输出包含你的GeForce GTX 970,就说明GPU已经被正确调用。另外你也可以通过NVIDIA任务管理器,或者在命令行运行nvidia-smi命令,查看GPU使用率的变化来验证。
关于CPU指令警告的说明
你之前看到的AVX2警告只是提示当前TensorFlow二进制包没有编译支持CPU的AVX2指令集,这完全不会影响GPU的使用。如果觉得这个警告干扰输出,就用上面代码里的os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'屏蔽它,记得把这段代码放在所有TensorFlow和Keras的导入语句之前。
内容的提问来源于stack exchange,提问作者user2505650




