python - 导入 Tensorflow 时 Jupyter Notebook 内核死机

标签 python docker tensorflow jupyter-notebook

我正在尝试在包含在我的 Ubuntu 18.04 Bionic Beaver 服务器上运行的 docker 中的 jupyter notebook 上使用 Tensorflow-gpu。

我已经完成了以下步骤:
1) 安装 Nvidia 驱动程序 390.67 sudo apt-get install nvidia-driver-390
2) 安装 CUDA Drivers 9.0 cuda_9.0.176_384.81_linux.run
3) 安装 CuDNN 7.0.5 cudnn-9.0-linux-x64-v7.tgz
4) 安装 Docker sudo apt install docker-ce
5) 安装nvidia-docker2 sudo apt install nvidia-docker2

我尝试做以下事情 nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:1.5.1-gpu-py3

我使用 Tensorflow 1.5.1 的原因是因为我在 1.8.0-gpu-py 上遇到了同样的内核死机错误,我 read that you need to use Tensorflow 1.5 for older CPUs.我认为这不是真正的问题,因为我正在尝试简单地导入它并且我正在使用 tensorflow-gpu

当我第一次运行任何导入 tensorflow 的单元格时,我得到 this kernel dead error.

我的服务器硬件如下

CPU: AMD Phenom(tm) II X4 965 Processor
GPU: GeForce GTX 760
Motherboard: ASRock 960GM/U3S3 FX
Memory: G Skill F3-1600C9D-8GAB (8 GB Memory)

当我使用 import tensorflow as tf 简单地导入 tensorflow 时,我如何确定内核正在死机的原因。

这里是nvidia-docker smi的结果

$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Fri Jun 22 17:53:20 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.67                 Driver Version: 390.67                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 760     Off  | 00000000:01:00.0 N/A |                  N/A |
|  0%   34C    P0    N/A /  N/A |      0MiB /  1999MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0                    Not Supported                                       |
+-----------------------------------------------------------------------------+

如果我在 docker 外部使用 nvidia-smi,这将完全匹配。

这是 nvcc --version 结果:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

如果我尝试执行 nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:1.5.1-gpu-py3 bash 来调出 bash 提示符,然后我输入 python通过 python 进行 session 当我执行 import tensorflow as tf 我得到 Illegal instruction (core dumped) 所以它不能在非 jupyter 中工作环境也好。即使我先执行 import numpy 然后 import tensorflow as tf

仍然会出现此错误

最佳答案

事实证明我需要降级到 tensorflow 1.5.0。 1.5.1 是添加 AVX 的地方。 AVX 指令显然用于模块加载以设置库。

关于python - 导入 Tensorflow 时 Jupyter Notebook 内核死机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993271/

相关文章:

python - 参与者拆分的 tensorflow 数据集

docker - 当 docker 处于分离状态或前台时,日志不会发送到 AWS Cloudwatch

python - 在 docker 容器中创建 django super 用户而不输入密码

python-3.x - 使用 tensorflow 训练 CNN 时如何修复 'OutOfRangeError: End of sequence' 错误?

c++ - Tensorflow C++ 占位符初始化

python - 重用 hashlib.md5 为相同的字符串计算不同的值

python - 需要解释为什么以下代码跨越无穷大

python - 什么是 C 相当于 python 的 map()

docker - 带有 docker 后端的 traefik 反向代理 - 在 traefik 的配置文件中配置前端规则,而不是通过容器标签

python - 如何为 TF2.0+ keras CNN 定义用于图像分类的加权损失函数?