[PYTHON] Pour les débutants, comment gérer les erreurs courantes dans les keras

Keras (& tensorflow) souvent utilisé pour l'apprentissage automatique avec python.

Je n'avais pas d'article résumant comment gérer les erreurs lors de l'utilisation de keras, je vais donc le résumer en fonction des questions résolues de teratail.

ImportError,AttributeError -Résolution en abaissant ou en augmentant la version (ImportError, AttributeError) -Parfois, il peut être résolu en réinstallant (Erreur d'importation) -Le fichier à importer est incorrect (Erreur d'attribut) ・ Tensorflow.keras et keras sont différents ・ Typo (distinction de type entre majuscules et minuscules)

Dans keras, l'influence des différentes versions de bibliothèques est grande. S'il est trop ancien ou trop récent, cela peut provoquer une erreur d'entrée.

Pour AttributeError, reportez-vous à l'article suivant.

[python] 5 choses à faire lorsque "Erreur d’attribut: le module (objet)‘ xxx ’n’a pas d’attribut‘ yyy ’»

ValueError

Articles communs

-Vérifiez le modèle de résumé du modèle. ・ Vérifiez la forme des données avec print (data.shape)

La plupart des ValueErrors sont que les dimensions des données sont différentes des attentes du modèle. Vérifiez la forme des données, et si elle est différente, utilisez reshape () pour mettre en forme les données.

Document de numpy.reshape

Shapes A and B are incompatible ・ La sortie du modèle correspond-elle aux dimensions des données de sortie?

Par exemple, lorsque la sortie du modèle est 3 (Dense (3), etc.) même s'il doit s'agir d'une classification binaire. Vous devez analyser le modèle avec model.summary ().

expected ndim=A, found ndim=B -Depuis que l'entrée de Dense est un tableau unidimensionnel de base, remodeler ou aplatir pour le formater en une seule dimension. ・ Ou vous devez changer la forme d'entrée -Input_shape n'inclut pas la taille du lot -Resformer les données de l'image pour qu'elles deviennent (nombre d'échantillons, hauteur, largeur, canal) -Pour LSTM, il est nécessaire de définir [Nombre de lots, axe des temps, nombre de canaux]

expected layer_name to have shape A dimensions but got array with shape B ・ Le RVB et le noir et blanc ne sont-ils pas erronés (dans le cas d'une image)? ・ Si les dimensions des données d'entrée et de l'entrée du modèle correspondent -Reshape en un tenseur de 1 x nombre d'éléments (se produit lorsqu'il n'y a qu'une seule donnée de test)

Input arrays should have the same number of samples as target arrays. Found A input samples and B target samples

・ Le nombre de données d'entrée et de données de sortie est-il correct?

ResourceExhaustedError ・ MOO (mémoire insuffisante, mémoire insuffisante, erreur d'épuisement des ressources) ・ Réduisez la taille du lot ・ Redémarrez le PC

Une erreur qui se produit lorsque la mémoire du GPU ou du PC est insuffisante. La méthode générale consiste à augmenter la mémoire ou à réduire la quantité de traitement.

Le programme est-il stocké en mémoire pour certaines choses? Parfois, cela arrive, donc le réinitialiser avec un redémarrage peut fonctionner (par exemple, si cela a fonctionné).

Quand l'apprentissage de la précision n'est pas bon

・ Données de pré-traitement ・ Il y a un problème avec les données d'entrée elles-mêmes ・ Les données de prévision sont-elles correctes? ・ Changer les hyper paramètres ・ Certaines choses ne peuvent pas être apprises même avec l'apprentissage automatique

S'il s'agit de données d'image, est-il normalisé ([0,255] → [-1,1]), les données d'entrée ou les données de prédiction sont-elles endommagées, etc.

Quoi qu'il en soit, vous devez vous assurer que les données sont exactes. Si les données ne sont pas exactes, ni l'apprentissage ni la prédiction ne sont bien sûr précis.

De plus, si les types de données sont insuffisants, la précision d'apprentissage n'augmentera pas. Si le temps ne peut être prévu que par la température, le prévisionniste n'aura aucun problème.

Et parfois, il n'est pas possible d'apprendre par machine learning. Par exemple, les lancers de dés sont aléatoires et ne peuvent pas être prédits à l'aide de l'apprentissage automatique. Il y a quelques directions.

Résumé

Voici comment traiter l'erreur.

Je ne suis pas très professionnel moi-même, il peut donc y avoir des erreurs dans le contenu. Dans ce cas, veuillez l'indiquer dans les commentaires.

Recommended Posts

Pour les débutants, comment gérer les erreurs courantes dans les keras
Comment gérer les erreurs d'exécution dans subprocess.call
Comment gérer l'erreur DistributionNotFound
Comment gérer les erreurs de compatibilité d'énumération
Comment gérer les fuites de mémoire dans matplotlib.pyplot
Comment gérer les erreurs en frappant pip ②
[Pour les débutants] Comment utiliser la commande say avec python!
Comment gérer l'échec de l'initialisation pyenv dans Fish 3.1.0
Comment gérer l'exécution de la transaction: échec dans Anaconda
[TensorFlow 2 / Keras] Comment exécuter l'apprentissage avec CTC Loss dans Keras
[AWS] Comment gérer l'erreur "Point de code non valide" dans CloudSearch
[Pour les débutants] Comment implémenter l'exemple de code O'reilly dans Google Colab
Comment gérer l'erreur d'installation de python dans pyenv (BUILD FAILED)
Comment gérer les erreurs lors de l'installation de whitenoise et du déploiement sur Heroku
Comment gérer les erreurs lors de l'installation de Python et de pip avec choco
Comment utiliser BigQuery en Python
10 erreurs Python communes aux débutants
Comment gérer les caractères déformés dans json de Django REST Framework
Que faire lorsque la version Python est ancienne dans Cloud 9 créée par une autre personne
Comment réduire l'utilisation de la mémoire GPU avec Keras
[REAPER] Comment jouer à Reascript avec Python
Comment créer un plug-in Spigot (pour les débutants Java)
J'ai essayé d'intégrer Keras dans TFv1.1
ne peut pas décaper. Comment gérer les objets Annoy
Comment gérer le module 'Sensorflow' n'a aucun attribut '
Essayez de calculer RPN avec Python (pour les débutants)
Comment utiliser tkinter avec python dans pyenv
Comment rendre le Python des débutants plus rapide [numpy]
[Pour les débutants] Comment étudier la programmation Mémo privé
[Introduction pour les débutants] Manipuler MySQL avec Python
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
[EC2] Remède en cas d'erreur de non-exécution du sélénium (aucun module nommé sélénium)
Comment traiter l'erreur "Aucun module nommé" "" dans Jupyter Notebook | Installer avec! Pip!
Comment convertir / restaurer une chaîne avec [] en python
Comment convertir le type Python # pour les super débutants de Python: str
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Comment faire un calcul de hachage avec Salt en Python
Expliquez en détail comment créer un son avec python
Comment exécuter python dans l'espace virtuel (pour MacOS)
La solution de contournement pour le modèle de Django n'existe pas
Comment faire du zéro-padding sur une ligne avec OpenCV
Comment exécuter des tests avec Python unittest
[Python] Comment gérer l'erreur de lecture pandas read_html
Comment résoudre les erreurs de module SSL dans l'environnement Anaconda
Python # Comment vérifier le type et le type pour les super débutants
Comment prendre en charge x-nullable pour swagger dans la bibliothèque jsonschema de python
Comment sortir un document au format pdf avec Sphinx
Comment extraire n'importe quel rendez-vous dans Google Agenda avec Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
[Pour les débutants] Comment utiliser l'instruction for sous Linux (variables, etc.)
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
Comment mettre en œuvre 100 coups de science des données pour les débutants en science des données (pour Windows 10 Home)
Comment définir plusieurs variables dans une instruction Python for
[Explication pour les débutants] Introduction au traitement du pool (expliqué dans TensorFlow)
Comment mettre à jour avec SQLAlchemy?
[Django] Comment donner des valeurs d'entrée à l'avance avec ModelForm
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python