[PYTHON] [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 décédé" qui s'est produite dans le masque R-CNN.

Jusqu'à ce que la cause de l'erreur soit identifiée

[[Part 1] J'ai essayé de résoudre l'erreur "User Warning: Une entrée n'a pas pu être récupérée. Cela peut être parce qu'un travailleur est mort" qui s'est produite dans Mask R-CNN. ] (https://qiita.com/skperfarming/items/68cdec8ad8672837bd38)

Dans la première partie, nous avons exploré l'occurrence des erreurs et leurs causes. Dans la deuxième partie, je présenterai une implémentation que vous pouvez réellement apprendre correctement.

DOWNLOAD/SETUP/IMPORT

nucleus_train.py


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

Montez Google Drive. Spécifiez la version précédente de tensorflow.

nucleus_train.py


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

Spécifiez le répertoire où se trouve setup.py et configuré.

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")

J'importerai diverses choses familières. Peut-être que je viens de copier les autres trucs ipynb.

Jusqu'à l'apprentissage

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

Créez un dossier appelé ensembles de données directement sous le contenu → Stockez le zip dedans → Créer un dossier pour placer les données décompressées directement sous les jeux de données → Décompressez le zip et stockez-le dans le dossier créé

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"

Déplacer le répertoire vers l'emplacement de nucleus.py → Exécutez la commande pour commencer l'apprentissage!

Résolution d'erreur

J'ai pu passer à Epoch 40 sans l'erreur mentionnée dans la première partie. Si la session expire au milieu, vous pouvez reprendre l'apprentissage à partir du milieu en spécifiant ce qui suit.

nucleus_train.py


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

J'ai pu poursuivre mon apprentissage en toute sécurité! Veuillez commenter s'il y a des améliorations ~

Recommended Posts

[Partie 1] 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.
[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 décédé" qui s'est produite dans le masque R-CNN.
Je pensais qu'il serait lent d'utiliser l'instruction for dans NumPy, mais ce n'était pas le cas.
Ce qui semble être un modèle pour la partie d'entrée standard du pro de la concurrence en python3