[PYTHON] [Teil 1] Ich habe versucht, den in Maske R-CNN aufgetretenen Fehler "Benutzerwarnung: Eine Eingabe konnte nicht abgerufen werden. Dies kann daran liegen, dass ein Mitarbeiter gestorben ist" zu beheben.

Übungsmaske R-CNN Nucleus Detection Demo

Dies ist eine Fortsetzung der Herausforderung, die ich, ein Anfänger des Deep Learning, mit Google Colaboratory auf Mask R-CNN ausprobiert und geirrt habe. Dieses Mal versuchen wir, ** Zellen zu erkennen **, indem wir Folgendes verwenden.

https://github.com/matterport/Mask_RCNN/tree/master/samples/nucleus

Bekannt, es gehört zu Matterport.

In dieser Demo wird die Rückseite der Masken-R-CNN-Erkennung wie ** ROI und Anker ** angezeigt und zum Zeitpunkt der Erkennung Schritt für Schritt ausgeführt. Es wird eine großartige Lernerfahrung für Anfänger sein, da sie verstehen können, wie sie lernen und erkennen.

Kein Training ipynb

Ich habe zwei ipynb-Dateien, _data und _model, und ich konnte die Demo ausführen, ohne zu stolpern, aber ich habe keinen ipynb, um das für die Erkennung verwendete Gewicht zu trainieren. Also habe ich beschlossen, es selbst zu machen, und mir den Inhalt von Nucleus.py ** angesehen, der versteckte Hinweise enthält.

Die Zeilen 10 bis 25 enthielten die Befehle, die für das Training ausgeführt werden sollten.

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>

Ich sehe, um von 0 zu lernen, muss man nur den ersten Befehl ausführen.

Lass uns rennen

Schritt 1: Vorerst ausführen

--dataset = / path / to / dataset part

nucleus_train.py


--dataset=/content/drive/My drive/.../dataset

Wechseln zu und ausführen.

Schritt 2: Gewicht herunterladen

Wenn ich es damit ausführe, erscheint die URL in der Ausgabe, also resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5 Herunterladen.

Schritt ③: Beginnen Sie zu lernen

Danach der Teil von --weights = / path / to

nucleus_train.py


--weights=/content/.../resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5

Wechseln Sie zum selben. Ich konnte den Pfad angeben und dachte, es sei ein Erfolg ...! ??

Ärger

nucleus_train.py


Epoch 1/20

Ich blieb bei der angezeigten Nachricht hängen. Der dort auftretende Fehler ist

nucleus_train.py


UserWarning: An input could not be retrieved. It could be because a worker has died

?? ?? Kopieren Sie es einfach und fügen Sie es in Google ein und untersuchen Sie es. Der folgende Artikel war die erste Referenz.

Referenzartikel ①

** [UserWarning: Eine Eingabe konnte nicht abgerufen werden. Dies kann daran liegen, dass ein Mitarbeiter gestorben ist.] (https://qiita.com/mosamosa/items/9907a56cab7ae96d76c7)**

Anscheinend ist die Ursache ** "Der Dateistream von Colabolatory hält nicht mit der Lerngeschwindigkeit Schritt." **. Es scheint, dass das Lesen von Bildern von Google Drive zu einem Engpass wurde.

Referenzartikel ②

[“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)

Nun, ich weiß nur, dass ich den Pfad in das Labor kopieren sollte ...

Referenzartikel ③

** [[Kostenlose GPU mit Geschwindigkeit pro Sekunde verwenden] Deep Learning-Übungstipps für Labor] (https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935)**

nucleus_train.py


!cp drive/My Drive/<Angegebener Ordner>/<Ausgewiesene Dateien usw.>

Speichern Sie große Datenmengen als Zip-Dateien in Google Drive und entpacken Sie sie bei jedem Start von Colab lokal.

nucleus_train.py


!unzip -q drive/My Drive/<Angegebener Ordner>/<Angegebene Datei>.zip

-q ist eine Option, die beim Dekomprimieren keine Nachricht ausgibt. Sogar ein Archiv mit etwa 2 GB und Tausenden von Dateien kann in etwa 1 Minute von Google Drive erfasst und dekomprimiert werden.

In der Tat sollten Sie bei Verwendung großer Datenmengen die Daten in das Labor verschieben!

Referenzartikel ④

** [Entpacken, um das Verzeichnis anzugeben] (https://cutmail.hatenablog.com/entry/20100816/1281952284)**

Es ist nur eine Befehlseinführung, aber es scheint, dass Sie das Zip-Dekomprimierungsziel wie folgt angeben können.

nucleus_train.py


% unzip dataset.zip -d /content/dataset

Ich habe versucht zu implementieren

Es ist lange her, deshalb zeige ich Ihnen im nächsten Artikel ein Implementierungsbeispiel!

[~~ Ich schreibe gerade einen Artikel. Bleib dran! ~~] [Ich habe den Artikel fertig geschrieben. ]]

[[Teil 2] Ich habe versucht, den in Maske R-CNN aufgetretenen Fehler "Benutzerwarnung: Eine Eingabe konnte nicht abgerufen werden. Dies kann daran liegen, dass ein Mitarbeiter gestorben ist" zu beheben. ]] (https://qiita.com/skperfarming/items/8c0ebfe5e72ce7357cf2)

Recommended Posts

[Teil 1] Ich habe versucht, den in Maske R-CNN aufgetretenen Fehler "Benutzerwarnung: Eine Eingabe konnte nicht abgerufen werden. Dies kann daran liegen, dass ein Mitarbeiter gestorben ist" zu beheben.
[Teil 2] Ich habe versucht, den in Maske R-CNN aufgetretenen Fehler "Benutzerwarnung: Eine Eingabe konnte nicht abgerufen werden. Dies kann daran liegen, dass ein Mitarbeiter gestorben ist" zu beheben.
Ich dachte, es wäre langsam, die for-Anweisung in NumPy zu verwenden, aber das war nicht der Fall.
Ich habe versucht, die Pferde vorherzusagen, die mit LightGBM unter den Top 3 sein werden
Was scheint eine Vorlage für den Standardeingabe-Teil des Competition Pro in Python3 zu sein