tensorflow-gpu 无法执行某些单元格作为 t = tf.Variable(5),但检测到我的 gpu

tensorflow-gpu can't execute certain cells as t = tf.Variable(5), but detects my gpu

这是我的规格:

Ubuntu 20.04

尝试了 tensorflow-gpu 2.0 到 2.5 版本

用 conda 下载的 cuda 和 cudnn:cuda 10.1,cudnn 7.6.5

我是按照这个教程https://www.youtube.com/watch?v=tPq6NIboLSc(5分钟,有些评论说上个月有用)一步一步来的,甚至尝试了评论中的解决方案:

conda create -n tfgpu python=3.7
conda activate tfgpu
conda install tensorflow-gpu=2.1

pip uninstall tensorflow
pip uninstall tensorflow-estimator
pip uninstall tensorboard 
pip uninstall tensorboard-plugin-wit
pip install tensorflow==2.3
pip check

为了降级到很多版本,我尝试了所有可能的组合和版本,从头开始重建环境。

在某些版本中,tf 检测到我的 gpu :

print(device_lib.list_local_devices())

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14590583484823824053
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 7716553310653404229
physical_device_desc: "device: XLA_CPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 1505951744
locality {
  bus_id: 1
  links {
  }
}
incarnation: 3827512444124672980
physical_device_desc: "device: 0, name: GeForce 840M, pci bus id: 0000:04:00.0, compute capability: 5.0"
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 11245957731175040440
physical_device_desc: "device: XLA_GPU device"
]





tf.config.list_physical_devices()

[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
 PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
 PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
 PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU')]




tf.config.list_logical_devices()

[LogicalDevice(name='/device:CPU:0', device_type='CPU'),
 LogicalDevice(name='/device:XLA_CPU:0', device_type='XLA_CPU'),
 LogicalDevice(name='/device:GPU:0', device_type='GPU'),
 LogicalDevice(name='/device:XLA_GPU:0', device_type='XLA_GPU')]

但是,当它检测到我的 GPU 时,有一些单元没有执行,星号“*”留在单元左侧的括号“[]”中,一直持续到我重新启动内核(超过10分钟不正常)。 例如,当我 运行 t = tf.Variable(5),或者当我尝试训练模型时

我不习惯不找就问,这是我做的第一个话题,因为我上周末一直在寻找解决方案,而且我正在实习,所以我需要快速找到它

此外,我在 windows 10 上使用了相同的教程并且它有效,但现在我在另一台笔记本电脑上工作,我没有以前的笔记本电脑。

如果有人知道它的实际工作原理,可以花 5 分钟按照教程进行操作并向我解释如何解决它,那就太好了。

我以前的解决方案被删除了很抱歉我是Whosebug的新手

我得到了一个解决方案,使用 docker 在我的 gpu 上创建一个 'Image' 然后 'container' 到 运行 tensorflow 2.4.0。我的一个朋友在我的 linux 20.04 os

上成功安装了它

如果有人遇到和我一样的问题,我把他非常有用的网站放在这里,你需要的一切都指出了:https://dinhanhthi.com/docker/

您需要做的就是将命令一一复制/粘贴到您的终端中:

首先是第三段'installation'

然后第六次检查是否一切正常

然后用第 9 个构建一个 'image',用第 10 个构建一个 'container' 映像有点像虚拟机,就像您从 windows 创建虚拟 linux 发行版一样。 容器更像是一个 anaconda 环境,您可以自定义它,以免每次都从头开始重新创建图像(一个图像大约 7GO 重)

之后去https://dinhanhthi.com/docker-gpu/#install-nvidia-docker2按照第3、4、5步安装docker-gpu,检查安装并安装nvidiadocker-2

一旦一切都完成了,当你启动你的电脑时你所要做的就是

# Start your computer# Check if docker is running
docker ps
# if something like below comes out, it's running
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES# 
#Run the container
docker start docker_ai
# If you wanna check currently running containers
docker ps
# Stop container
docker stop docker_ai
# Enter the running container (to install packages, 
#for example)
docker exec -it <container_name> bash
# Inside this, if you wanna install some package, use pip
pip install <package_name>