[PYTHON] [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.

Bis die Fehlerursache identifiziert ist

[[Teil 1] Ich habe versucht, den in Mask 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/68cdec8ad8672837bd38)

Im ersten Teil haben wir das Auftreten von Fehlern und ihre Ursachen untersucht. Im zweiten Teil werde ich eine Implementierung vorstellen, die Sie tatsächlich richtig lernen können.

DOWNLOAD/SETUP/IMPORT

nucleus_train.py


# Mount drive
from google.colab import drive
drive.mount('/content/drive/')
%tensorflow_version 1.x

Google Drive einbinden. Geben Sie die vorherige Version von Tensorflow an.

nucleus_train.py


# Change directory to project folder
%cd "/content/drive/My Drive/DeepLearning2/Mask_RCNN"
!python setup.py install

Geben Sie das Verzeichnis an, in dem sich setup.py befindet, und richten Sie es ein.

nucleus_train.py


import os
import sys
import random
import math
import re
import time
import numpy as np
import tensorflow as tf
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.patches as patches

# Root directory of the project
ROOT_DIR = os.path.abspath("../../")

# Import Mask RCNN
sys.path.append(ROOT_DIR)  # To find local version of the library
from mrcnn import utils
from mrcnn import visualize
from mrcnn.visualize import display_images
import mrcnn.model as modellib
from mrcnn.model import log

from samples.nucleus import nucleus

%matplotlib inline 

# Directory to save logs and trained model
LOGS_DIR = os.path.join(ROOT_DIR, "logs")

Ich werde verschiedene vertraute Dinge importieren. Vielleicht habe ich gerade das andere ipynb-Zeug kopiert.

Bis zum Lernen

nucleus_train.py


!mkdir "/content/datasets"
!cp "/content/drive/My Drive/DeepLearning2/Mask_RCNN/datasets/nucleus/stage1_train.zip" "/content/datasets"
!mkdir "/content/datasets/stage1_train"
!unzip /content/datasets/stage1_train.zip -d /content/datasets/stage1_train

Erstellen Sie einen Ordner namens Datasets direkt unter dem Inhalt → Reißverschluss darin speichern → Erstellen Sie einen Ordner, um die dekomprimierten Daten direkt unter Datasets abzulegen → Entpacken Sie die Zip-Datei und speichern Sie sie im erstellten Ordner

nucleus_train.py


%cd "/content/drive/My Drive/DeepLearning2/Mask_RCNN/samples/nucleus/"
!python3 nucleus.py train --dataset=/content/datasets/ --subset=train --weights="/content/drive/My Drive/DeepLearning2/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5"

Verschieben Sie das Verzeichnis dorthin, wo sich nucleus.py befindet → Führen Sie den Befehl aus, um mit dem Lernen zu beginnen!

Fehlerbehebung

Ich konnte ohne den im ersten Teil erwähnten Fehler zu Epoche 40 übergehen. Wenn die Sitzung in der Mitte abläuft, können Sie das Lernen aus der Mitte fortsetzen, indem Sie Folgendes angeben.

nucleus_train.py


!python3 nucleus.py train --dataset=/content/datasets/ --subset=train --weights=last

Ich konnte sicher weiter lernen! Bitte kommentieren Sie, wenn es irgendwelche Verbesserungen gibt ~

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.
Was scheint eine Vorlage für den Standardeingabe-Teil des Competition Pro in Python3 zu sein