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

Keras-GPU无法识别NVIDIA GTX950M,TensorFlow却可检测求助

解决Keras无法识别NVIDIA GPU(TensorFlow可识别)的问题

看起来你遇到的核心问题是TensorFlow能正确检测到NVIDIA GTX950M,但Keras却默认调用了Intel集成显卡,而且因为误解双显卡的兼容性,调用multi_gpu_model时还报了错。我来一步步帮你解决:

1. 先确认Keras的后端配置

Keras本身是高层API,必须依赖TensorFlow、Theano或CNTK这些后端。你装了keras-gpu,理论上默认应该绑定TensorFlow GPU版,但有时候配置文件会出问题:

  • 找到Keras配置文件:
    • Windows:C:\Users\<你的用户名>\.keras\keras.json
    • Linux/macOS:~/.keras/keras.json
  • 打开后确保内容如下(重点是backend为tensorflow):
{
    "floatx": "float32",
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "image_data_format": "channels_last"
}

修改后保存,重启你的Python环境。

2. 在Keras代码开头强制绑定NVIDIA GPU

你之前设置os.environ["CUDA_VISIBLE_DEVICES"]="1"是错误的——从TensorFlow的测试结果来看,你的NVIDIA GPU对应的设备编号是0,Intel集成显卡不会被CUDA版本的TensorFlow识别为GPU设备。

在你的Keras代码最顶部添加以下代码,确保TensorFlow优先加载NVIDIA GPU:

import os
# 只让TensorFlow看到NVIDIA GPU(编号0)
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

# 配置TensorFlow的GPU显存按需分配(避免一次性占满显存)
import tensorflow as tf
from keras import backend as K

config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.compat.v1.Session(config=config)
K.set_session(sess)

# 之后再导入Keras的其他模块
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.utils import multi_gpu_model

3. 系统级设置:让Anaconda程序用NVIDIA独立显卡

笔记本的双显卡默认会自动切换,但有时候会优先用集成显卡跑Python程序,你需要手动指定:

  • 打开NVIDIA控制面板 → 管理3D设置 → 程序设置
  • 点击“添加”,找到你Anaconda环境里的python.exe(比如C:\Users\<你的用户名>\anaconda3\envs\<你的环境名>\python.exe)
  • 在“为此程序选择首选图形处理器”里,选择“高性能NVIDIA处理器”,保存设置。

4. 关于multi_gpu_model的错误说明

你调用multi_gpu_model(model, 2)报错是正常的——因为Intel集成显卡不属于CUDA兼容的GPU,TensorFlow只能识别你的NVIDIA GTX950M这1个可用GPU。所谓的“两块显卡”里,只有NVIDIA的那块能用来加速深度学习,所以你应该改成:

# 单GPU不需要multi_gpu_model,直接用原模型即可
# 如果想测试多GPU(但你只有1个),可以设置gpus=1,或者干脆去掉这行
model = multi_gpu_model(model, gpus=1)

验证方法

在代码里添加以下代码,确认TensorFlow识别的GPU是NVIDIA的:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

输出里应该能看到name: "/device:GPU:0",且device_type是GPU,physical_device_desc里包含NVIDIA GTX950M的信息。

按照这些步骤操作后,Keras应该就能正常调用NVIDIA GPU了,任务管理器里也能看到NVIDIA显卡的占用率上升。

内容的提问来源于stack exchange,提问作者Ed.S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:05:27