Я установил 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
@YOLO Непосредственно перед вызовом строки nn_model.fit (..) он использует 180 МБ ОЗУ, а затем умирает. У моего Mac 16 ГБ оперативной памяти, так что я не думаю, что это оттуда … — person oso_ted schedule 03.01.2020
Попробовав разные вещи, я запускаю jupyter notebook в режиме отладки с помощью команды:
Затем после выполнения команд на моем ноутбуке я получил сообщение об ошибке:
И после этого обсуждения у меня сработала установка nomkl в виртуальной среде.
Я не могу точно догадаться, в чем проблема, но похоже, что это связано с некоторым конфликтом версий. Сделайте следующее (это то, что я сделал, и у меня это работает):
conda create -n tf2 python=3.7 ipython ipykernel
conda activate tf2
conda install -c anaconda tensorflow
python -m ipykernel install --user --name=tf2
Я сделал это, и у меня все те же проблемы. Возможность запускать с терминала, но не через ноутбук 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
Попробуйте
conda install nomkl
. Даже если вы столкнулись с проблемой, проверьте свойanaconda/lib folder
, запуститеll lib*omp*
, видите ли вы старыйlibiomp5.dylib
файл? Убери это.Для меня эта проблема возникала, как показано ниже рядом с красной стрелкой. После дублирования в jupyter я понял, что эта проблема возникает, когда его потоковая передача сериализует данные из каталога tenorboard. Теперь, если я изменю model_dir = someothername, тогда я буду работать как шарм.