2
votes

le noyau du notebook jupyter continue de mourir quand j'exécute le code

J'ai fait mes premiers pas dans le deep learning en suivant ce tutoriel https://www.youtube .com / watch? v = wQ8BIBpya2k , et tout allait bien jusqu'à ce que j'aie besoin de former le réseau dans jupyter notebook. J'ai essayé presque tout et j'obtiens toujours cette erreur " Le noyau semble être mort. Il redémarrera automatiquement . " Quand je vérifie le terminal, je peux voir ceci

​​ [I 18: 32: 24.897 NotebookApp] Adaptation au protocole v5.1 pour le noyau 0d2f57af-46f5-419c-8c8e-9676c14dd9e3 2019-03-09 18: 33: 12.906756: I tensorflow / core / platform / cpu_feature_guard.cc: 141] Votre CPU prend en charge les instructions selon lesquelles ce binaire TensorFlow n'a pas été compilé pour utiliser: SSE4.1 SSE4.2 AVX AVX2 FMA 2019-03-09 18: 33: 12.907661: I tensorflow / core / common_runtime / process_util.cc: 69] Création d'un nouveau pool de threads avec le paramètre d'interopérabilité par défaut: 4. Réglez en utilisant inter_op_parallelism_threads pour de meilleures performances. OMP: Erreur n ° 15: Initialisation de libiomp5.dylib, mais recherche de libiomp5.dylib déjà initialisée. OMP: Astuce: cela signifie que plusieurs copies du runtime OpenMP ont été liées au programme. C'est dangereux, car cela peut dégrader les performances ou entraîner des résultats incorrects. La meilleure chose à faire est de s'assurer qu'un seul runtime OpenMP est lié au processus, par ex. en évitant les liaisons statiques du runtime OpenMP dans n'importe quelle bibliothèque. En tant que solution de contournement non sécurisée, non prise en charge et non documentée, vous pouvez définir la variable d'environnement KMP_DUPLICATE_LIB_OK = TRUE pour permettre au programme de continuer à s'exécuter, mais cela peut provoquer des plantages ou produire en silence des résultats incorrects. Pour plus d'informations, veuillez consulter http://www.intel.com/software/products/support/. [I 18: 33: 13.864 NotebookApp] KernelRestarter: redémarrage du noyau (1/5), conserver les ports aléatoires AVERTISSEMENT: root: noyau 0d2f57af-46f5-419c-8c8e-9676c14dd9e3 redémarré

Le code que j'essaie d'exécuter est assez simple (même pour moi qui commence tout juste à entrer dans les profondeurs -learning)

import tensorflow as tf  

mnist = tf.keras.datasets.mnist  
(x_train, y_train),(x_test, y_test) = mnist.load_data()  

x_train = tf.keras.utils.normalize(x_train, axis=1)  
x_test = tf.keras.utils.normalize(x_test, axis=1) 

model = tf.keras.models.Sequential()  
model.add(tf.keras.layers.Flatten())  
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))  
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))  
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))  

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

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

val_loss, val_acc = model.evaluate(x_test, y_test)  
print(val_loss)  
print(val_acc)  

J'ai essayé toutes les idées que j'avais, et j'ai rencontré presque tous les mêmes problèmes sur Google, en ce moment c'est mon dernier espoir alors merci d'avance p>


4 commentaires

Cela m'est également arrivé. J'ai besoin de tester un modèle pour des millions de données. Mais ensuite, en quelques minutes, le cahier jupyter indiquait "DEAD KERNEL".


Installez TensorFlow dans un environnement Anaconda distinct et assurez-vous que vos bibliothèques sont mises à jour.


Pouvez-vous reproduire le crash en dehors d'un notebook Jupyter? Si c'est le cas, vous avez trouvé un bogue et vous devez le déposer sur github.


Est-ce toujours un problème? J'ai eu le même problème et je pense qu'il a été causé par l'utilisation de conda au lieu de pip. conda uninstall tensorflow - puis - pip install tensorflow - a fonctionné pour moi.


3 Réponses :


2
votes

Quelle version de tensorflow avez-vous téléchargée?

D'après le journal des erreurs, il semble qu'il y ait des problèmes de bibliothèque OpenMP, j'essaierais de réinstaller Tensorflow vers la dernière version stable.

J'ai dû mettre à jour mon installation tensorflow (1.13.1) pour que ce code fonctionne, voici ce que je produis.

import tensorflow as tf
print(tf.__version__)

En fonction du gestionnaire de bibliothèque que vous utilisez, essayez de mettre à jour

Pour Pip & Python3:

conda update tensorflow

Pour Anaconda:

pip3 install tensorflow --upgrade

Puis exécutez

WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Epoch 1/3
60000/60000 [==============================] - 6s 94us/sample - loss: 0.2652 - acc: 0.9213
Epoch 2/3
60000/60000 [==============================] - 6s 95us/sample - loss: 0.1103 - acc: 0.9660
Epoch 3/3
60000/60000 [==============================] - 6s 100us/sample - loss: 0.0735 - acc: 0.9765
10000/10000 [==============================] - 0s 35us/sample - loss: 0.0875 - acc: 0.9731
0.08748154099322855
0.9731

Pour vérifier que vous disposez des derniers disponibles


3 commentaires

J'ai vérifié et j'ai la dernière version, mais le problème persiste


@Matija J'avais le même problème et la mise à niveau de tensorflow vers la version 1.13 l'a corrigé pour moi.


Avez-vous essayé de définir cette variable d'environnement dans le msg d'erreur de BASH ou quel que soit le shell que vous utilisez KMP_DUPLICATE_LIB_OK = TRUE Serait un bandaid pour l'instant, On dirait que le noyau jupyter récupère plusieurs liens OpenMP d'une manière ou d'une autre alors qu'il ne devrait en voir qu'un. Avez-vous installé TF dans anaconda et via une autre plate-forme? Vous pouvez avoir plusieurs versions installées et Jupyter ne sait pas laquelle utiliser.



1
votes

J'ai essayé plusieurs options suggérées dans divers threads - mettre à jour matplotlib, rétrograder matplotlib vers la version 2.x.x, mettre à niveau TensorFlow vers la version 1.13.1 etc. Aucun n'a fonctionné. Pour moi, même un simple tracé factice comme celui ci-dessous a commencé à échouer avec "OMP: Erreur n ° 15" dès qu'une méthode de tracé est rencontrée après l'appel de la méthode fit dans Keras.

conda install nomkl

Ce qui suit comme suggéré dans ce message l'astuce pour moi.

acc = [i for i in range(20) ]
epochs = range(1, len(acc) + 1)
loss = range(1, len(acc) + 1)
plt.plot(epochs, loss, 'bo', label='Training loss')


0 commentaires

0
votes

Mettez à jour votre package tensorflow et redémarrez votre machine. Assurez-vous également qu'un noyau est activé, puis exécutez à nouveau le code. Cela devrait résoudre le problème.

Pour mettre à jour votre tensorflow à l'aide de pip, utilisez la commande ci-dessous

pip install tensorflow --upgrade

Pour pip3, utilisez

pip3 install tensorflow --upgrade

Pour conda, utilisez

Tensorflow de mise à jour conda


0 commentaires