C'est une continuation du défi que moi, un débutant en apprentissage profond, ai essayé et erroné sur Mask R-CNN en utilisant google colaboratory. Cette fois, nous essayons de ** détection de cellule ** en utilisant ce qui suit.
https://github.com/matterport/Mask_RCNN/tree/master/samples/nucleus
Familier, il appartient à Matterport.
Dans cette démo, l'arrière de la détection Mask R-CNN, comme ** ROI et Anchor **, sera affiché, et au moment de la détection, cela se fera étape par étape. Ce sera une excellente expérience d'apprentissage pour les débutants car ils peuvent comprendre comment ils apprennent et reconnaissent.
J'ai deux fichiers ipynb, _data et _model, et j'ai pu lancer la démo sans trébucher, mais je n'ai pas d'ipynb pour entraîner le poids utilisé dans la détection. J'ai donc décidé de le faire moi-même et j'ai jeté un coup d'œil au contenu de Nucleus.py **, qui contient des indices cachés.
Les lignes 10 à 25 contenaient les commandes à exécuter pour l'entraînement.
nucleus_train.py
#Train a new model starting from ImageNet weights
python3 nucleus.py train --dataset=/path/to/dataset --subset=train --weights=imagenet
#Train a new model starting from specific weights file
python3 nucleus.py train --dataset=/path/to/dataset --subset=train --weights=/path/to/weights.h5
#Resume training a model that you had trained earlier
python3 nucleus.py train --dataset=/path/to/dataset --subset=train --weights=last
#Generate submission file
python3 nucleus.py detect --dataset=/path/to/dataset --subset=train --weights=<last or /path/to/weights.h5>
Je vois, pour apprendre à partir de 0, il suffit d'exécuter la première commande.
--dataset = / chemin / vers / partie de l'ensemble de données
nucleus_train.py
--dataset=/content/drive/My drive/.../dataset
Passez à et exécutez.
Lorsque je l'exécute avec cela, l'URL apparaît dans la sortie, donc resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5 Télécharger.
Après cela, la partie de --weights = / path / to
nucleus_train.py
--weights=/content/.../resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5
Changer pour le même. J'ai pu spécifier le Chemin, donc j'ai pensé que c'était un succès ...! ??
nucleus_train.py
Epoch 1/20
Je suis resté coincé avec le message affiché. L'erreur qui y apparaît est
nucleus_train.py
UserWarning: An input could not be retrieved. It could be because a worker has died
?? ?? Alors, copiez-le et collez-le sur Google et enquêtez. L'article suivant était la première référence.
** [UserWarning: Une entrée n'a pas pu être récupérée. Cela peut être dû au décès d'un collaborateur] (https://qiita.com/mosamosa/items/9907a56cab7ae96d76c7)**
Apparemment, la cause est ** "Le flux de fichiers de Colabolatory ne suit pas la vitesse d'apprentissage." **. Il semble que la lecture d'images à partir de Google Drive soit devenue un goulot d'étranglement.
[“UserWarning: An input could not be retrieved. It could be because a worker has died. We do not have any information on the lost sample.”] (https://stackoverflow.com/questions/58446290/userwarning-an-input-could-not-be-retrieved-it-could-be-because-a-worker-has)
Eh bien, je sais seulement que je devrais copier le chemin dans le colaboratoire ...
** [[Utiliser un processeur graphique gratuit à la vitesse par seconde] (https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935)**
nucleus_train.py
!cp drive/My Drive/<Dossier spécifié>/<Fichiers désignés, etc.>
Enregistrez de grands ensembles de données sous forme de fichiers zip dans Google Drive et décompressez-les localement chaque fois que vous démarrez Colab.
nucleus_train.py
!unzip -q drive/My Drive/<Dossier spécifié>/<Fichier spécifié>.zip
-q est une option qui ne génère pas de message lors de la décompression. Même une archive contenant environ 2 Go et des milliers de fichiers peut être acquise et décompressée à partir de Google Drive en environ 1 minute.
En effet, lorsque vous utilisez des données volumineuses, vous devez déplacer les données vers le colaboratoire!
** [Décompressez pour spécifier le répertoire] (https://cutmail.hatenablog.com/entry/20100816/1281952284)**
C'est juste une introduction de commande, mais il semble que vous puissiez spécifier la destination de décompression zip comme ceci.
nucleus_train.py
% unzip dataset.zip -d /content/dataset
Cela fait longtemps, je vais donc vous montrer un exemple d'implémentation dans le prochain article!
[~~ J'écris un article maintenant. Restez à l'écoute! ~~] [J'ai fini d'écrire l'article. ]
[[Partie 2] J'ai essayé de résoudre l'erreur "Avertissement utilisateur: une entrée n'a pas pu être récupérée. Cela pourrait être parce qu'un travailleur est mort" qui s'est produite dans le masque R-CNN. ] (https://qiita.com/skperfarming/items/8c0ebfe5e72ce7357cf2)
Recommended Posts