当前位置:首页 >> 脚本专栏

解决import tensorflow导致jupyter内核死亡的问题

今日重装gpu版tensorflow后出现问题,jupyter notebook中import tensorflow运行以后内核死亡。开始以为版本不兼容,于是将conda中全部内容升级了一遍发现还是存在问题,并不管用。于是去查报错信息。

在我很少去看的jupyter的终端中得到一个warning。

解决import tensorflow导致jupyter内核死亡的问题

显示HDF5版本不匹配导致的错误。

网上大致有两种解决方法:

1.指定版本安装

2.

pip uninstall h5py
pip install h5py

我开始使用的第一种方法,用conda命令重装。发现安装以后,虽然Warning问题解决了,但是tf和Keras莫名其妙消失了。。。。

解决import tensorflow导致jupyter内核死亡的问题

conda list中也不显示!但显然这些都是安装过的包,不能理解发生了什么。

于是尝试第二种方法。问题得以解决。

补充:jupyter notebook中使用tensorflow-gpu常常出现的问题

问题1:

Kernel Restarting The kernel appears to have died. It will restart automatically

解决方法:

如果是在装有GPU的服务器上搭建的jupyter notebook,并且使用的tensorflow可以通过在session的前面加上config来解决这个问题,亲自试过可行(我觉得主要问题是在此之前都是在cpu上运行的程序,造成内存不足,所以导致的kernel died,如果查看在代码运行的时候内存占用情况可以使用free -h):

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

问题2:

WARNING:tensorflow:From /root/anaconda3/lib/python3.6/site-packages/tensorflow/python/keras/layers/core.py:143: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.Instructions for updating: Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.

WARNING:tensorflow:From /root/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.Instructions for updating: Use tf.cast instead.

WARNING:tensorflow:From /root/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/math_grad.py:102: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. Instructions for updating: Deprecated in favor of operator or tf.math.divide.

解决方法:

发生这种问题的主要原因可能是anaconda版本问题,或者是其他版本问题造成的版本不兼容。使用以下指令进行相应的更新。亲自尝试可行。

conda update mkl
conda upgrade notebook
conda upgrade jupyter
conda update anaconda

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。