Python 内核在带有 tensorflow 2 的 Jupyter Notebook 上死机

新手上路,请多包涵

我根据 以下 说明使用 conda 在我的 mac 上安装了 tensorflow 2:

 conda create -n tf2 tensorflow

然后我安装了 ipykernel 以将这个新环境添加到我的 jupyter notebook 内核中,如下所示:

 conda activate tf2
conda install ipykernel
python -m ipykernel install --user --name=tf2

这似乎运作良好,我能够在我的 jupyter notebook 内核上看到我的 tf2 环境。

然后我尝试运行简单的 MNIST 示例 来检查是否一切正常,当我执行这行代码时:

 model.fit(x_train, y_train, epochs=5)

我的 jupyter notebook 的内核在没有更多信息的情况下死了。

死核

我通过 python mnist_test.pyipython (逐个命令)在我的终端上执行了相同的代码,我没有遇到任何问题,这让我假设我的 tensorflow 2 已正确安装在我的 conda 环境中。

关于安装过程中出了什么问题的任何想法?

版本:

 python==3.7.5
tensorboard==2.0.0
tensorflow==2.0.0
tensorflow-estimator==2.0.0
ipykernel==5.1.3
ipython==7.10.2
jupyter==1.0.0
jupyter-client==5.3.4
jupyter-console==5.2.0
jupyter-core==4.6.1

在这里我放了完整的脚本以及执行的 STDOUT:

 import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn as sns

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train, x_test = x_train / 255.0, x_test / 255.0

nn_model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

nn_model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

nn_model.fit(x_train, y_train, epochs=5)

nn_model.evaluate(x_test,  y_test, verbose=2)

(tf2) ➜ tensorflow2 python mnist_test.py 2020-01-03 10:46:10.854619: I tensorflow/core/platform/cpu_feature_guard.cc:145] 此 TensorFlow 二进制文件使用 Intel® MKL-DNN 进行了优化,以使用以下内容性能关键操作中的 CPU 指令:SSE4.1 SSE4.2 AVX AVX2 FMA 要在非 MKL-DNN 操作中启用它们,请使用适当的编译器标志重建 TensorFlow。 2020-01-03 10:46:10.854860: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 8. 使用 inter_op_parallelism_threads 调整以获得最佳性能。在 60000 个样本上训练 Epoch 15 6000060000 [==============================] - 6s 102us/样本 - 损失: 0.3018 - 精度:0.9140 Epoch 25 6000060000 [==============================] - 6s 103us/sample - 损失:0.1437 - 精度:0.9571 Epoch 35 6000060000 [==============================] - 6s 103us /样本 - 损失:0.1054 - 准确度:0.9679 Epoch 45 6000060000 [==============================] - 6s 103us/sample - loss: 0.0868 - accuracy: 0.9729 Epoch 55 6000060000 [============================== ] - 6s 103us/sample - loss: 0.0739 - accuracy: 0.9772 100001 - 1s - loss: 0.0359 - accuracy: 0.9782 (tf2) ➜ tensorflow2

原文由 Oscar Mike 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

在尝试了不同的东西后,我使用以下命令在调试模式下运行 jupyter notebook:

 jupyter notebook --debug

然后在我的笔记本上执行命令后,我收到错误消息:

>  OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.
> OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can
> degrade performance or cause incorrect results. The best thing to do
> is to ensure that only a single OpenMP runtime is linked into the
> process, e.g. by avoiding static linking of the OpenMP runtime in any
> library. As an unsafe, unsupported, undocumented workaround you can
> set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the
> program to continue to execute, but that may cause crashes or silently
> produce incorrect results. For more information, please see
> http://www.intel.com/software/products/support/.
>
> ```

在 [这个](https://github.com/openai/spinningup/issues/16) 讨论之后,在虚拟环境中安装 nomkl 对我有用。

conda install nomkl

”`

原文由 Oscar Mike 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试 conda install nomkl 。即使你遇到问题,检查你的 anaconda/lib folder ,运行 ll lib*omp* ,你看到一些旧的 libiomp5.dylib 去掉它。

原文由 Jeyanth Krishna - Intel 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题