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

TensorFlow创建Session失败求助:CUDA_ERROR_INVALID_DEVICE错误

解决TensorFlow Session创建失败(CUDA_ERROR_INVALID_DEVICE)的思路

看起来你遇到的核心问题是TensorFlow无法正确初始化CUDA设备,报错CUDA_ERROR_INVALID_DEVICE——虽然你的CUDA示例能正常运行,但TensorFlow的设备访问逻辑可能需要调整,这里给你几个可行的解决方向:

1. 手动指定可用的GPU设备

你的环境里有4个Tesla P100 GPU(序号0-3),可能TensorFlow默认尝试使用的设备0存在上下文冲突或权限问题,你可以尝试指定其他GPU规避:

  • 在代码中指定:
import tensorflow as tf
# 配置只使用GPU 1(可替换为0、2、3中的任意一个)
config = tf.ConfigProto(
    device_count={'GPU': 1},
    gpu_options=tf.GPUOptions(visible_device_list="1")
)
sess = tf.Session(config=config)
  • 通过环境变量指定:
    在运行Python脚本前,先设置环境变量限制TensorFlow可见的GPU:
export CUDA_VISIBLE_DEVICES=1  # 同样可替换为0、2、3

2. 验证TensorFlow对GPU设备的识别能力

先让TensorFlow列出所有可识别的本地设备,确认是否能正确检测到GPU:

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

如果输出里没有GPU设备信息,说明TensorFlow的GPU版本安装有问题,或者CUDA/cuDNN的路径未被正确加载。此时可以检查:

  • 确保cuDNN 5.1的头文件(cudnn.h)放在/usr/local/cuda/include目录下
  • 确保cuDNN的库文件(libcudnn.so.5)放在/usr/local/cuda/lib64目录下
  • 确认环境变量LD_LIBRARY_PATH包含/usr/local/cuda/lib64

3. 重置CUDA设备上下文+优化内存分配

有时候CUDA设备的上下文残留会导致初始化失败,同时内存预分配过多也可能引发问题,可以尝试以下代码:

import tensorflow as tf
from tensorflow.python.framework import ops
ops.reset_default_graph()
# 按需分配GPU内存,避免一次性占用过多显存
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

关于CPU指令警告的说明

那些SSE/AVX相关的警告只是性能提示,不会导致Session创建失败——如果想优化CPU性能,可以从源码编译TensorFlow并开启这些指令优化,但这不是当前问题的必要操作。

内容的提问来源于stack exchange,提问作者呂宗穎

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:15:44