Ядро Python умирает на Jupyter Notebook с tenorflow 2

Я установил tensorflow 2 на свой Mac с помощью conda в соответствии с этими инструкциями:

conda create -n tf2 tensorflow

Затем я установил ipykernel, чтобы добавить эту новую среду к ядрам моих ноутбуков jupyter следующим образом:

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

Кажется, это сработало, я могу видеть свою среду tf2 на ядрах ноутбука jupyter.

Затем я попытался запустить простой пример MNIST, чтобы проверить, все ли работает правильно, и я когда я выполняю эту строку кода:

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

Ядро моего ноутбука jupyter умирает без дополнительной информации.

мертвое ядро

Я выполнил тот же код на своем терминале через python mnist_test.py, а также через ipython (команда за командой), и у меня нет никаких проблем, поэтому я предполагаю, что мой тензорный поток 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 (R) MKL-DNN для использования следующих Инструкции ЦП в критических для производительности операциях: 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] Создание нового пула потоков с настройкой взаимодействия по умолчанию: 8. Настройте с помощью inter_op_parallelism_threads для лучшей производительности. Тренируйтесь на 60000 сэмплах Эпоха 1/5 60000/60000 [==============================] — 6s 102us / sample — потеря : 0.3018 — точность: 0.9140 Epoch 2/5 60000/60000 [==============================] — 6s 103us / образец — потеря: 0,1437 — точность: 0,9571 Эпоха 3/5 60000/60000 [==============================] — 6s 103us / sample — потеря: 0,1054 — точность: 0,9679 Эпоха 4/5 60000/60000 [==============================] — 6s 103us / образец — потеря: 0,0868 — точность: 0,9729 Эпоха 5/5 60000/60000 [================================ ] — 6s 103us / sample — потеря: 0,0739 — точность: 0,9772 10000/1 — 1s — потеря: 0,0359 — точность: 0,9782 (tf2) ➜ tensorflow2

Вы пробовали проверить, сколько памяти используется на вашей машине? Может быть, он умирает из-за нехватки памяти.   —  person oso_ted    schedule 03.01.2020

См. также:  Настройка платформы Python для проектов машинного обучения

@YOLO Непосредственно перед вызовом строки nn_model.fit (..) он использует 180 МБ ОЗУ, а затем умирает. У моего Mac 16 ГБ оперативной памяти, так что я не думаю, что это оттуда …   —  person oso_ted    schedule 03.01.2020

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 4
  1. oso_ted

    Попробовав разные вещи, я запускаю 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
    https://www.intel.com/software/products/support/.
    

    И после этого обсуждения у меня сработала установка nomkl в виртуальной среде.

    conda install nomkl
    
  2. oso_ted

    Я не могу точно догадаться, в чем проблема, но похоже, что это связано с некоторым конфликтом версий. Сделайте следующее (это то, что я сделал, и у меня это работает):

    1. conda create -n tf2 python=3.7 ipython ipykernel
    2. conda activate tf2
    3. conda install -c anaconda tensorflow
    4. python -m ipykernel install --user --name=tf2
    5. Снова запустите модель и посмотрите, работает ли она.

    Я сделал это, и у меня все те же проблемы. Возможность запускать с терминала, но не через ноутбук jupyter person oso_ted; 03.01.2020

    Вы проверили это: github.com/tensorflow/tensorflow/issues/9829 person oso_ted; 03.01.2020

    Вместо тензорного потока попробуйте использовать настоящие керасы: conda install -c conda-forge keras person oso_ted; 03.01.2020

    Я не нашел что-то, что работало для меня по этой ссылке, но я заставил ее работать по-другому. Я опубликую шаги в разделах ответов сейчас. В основном я запускаю jupyter notebook в режиме отладки, чтобы получить больше информации о том, что происходит. person oso_ted; 03.01.2020

  3. oso_ted

    Попробуйте conda install nomkl. Даже если вы столкнулись с проблемой, проверьте свой anaconda/lib folder, запустите ll lib*omp*, видите ли вы старый libiomp5.dylib файл? Убери это.

  4. oso_ted

    Для меня эта проблема возникала, как показано ниже рядом с красной стрелкой. После дублирования в jupyter я понял, что эта проблема возникает, когда его потоковая передача сериализует данные из каталога tenorboard. Теперь, если я изменю model_dir = someothername, тогда я буду работать как шарм. введите описание изображения здесь

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: