LoginSignup
2
1

More than 3 years have passed since last update.

【後編】Mask R-CNNで発生したエラー「UserWarning: An input could not be retrieved. It could be because a worker has died」を解決してみた。

Posted at

エラーの原因特定まで

【前編】Mask R-CNNで発生したエラー「UserWarning: An input could not be retrieved. It could be because a worker has died」を解決してみた。

前編ではエラーの発生とその原因を探りました。
後編では実際にちゃんと学習できる実装を紹介します。

DOWNLOAD/SETUP/IMPORT

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

google driveをマウントします。
tensorflowのバージョンも前のものを指定しましょう。

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

setup.pyがあるディレクトリを指定して、セットアップをします。

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

おなじみのいろいろをimportしたりします。
多分、他のipynbのものをコピーしただけです。

学習まで

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

content直下にdatasetsというフォルダを作成
→その中にzipを格納
→datasets直下に解凍したデータを入れるフォルダを作成
→zipを解凍して、作成したフォルダに格納

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"

ディレクトリをnucleus.pyがあるところまで移動
→学習開始するコマンドを実行!

エラー解決

前編で述べていたエラーは出ることなく、Epoch40まで学習を進めることができました。
途中でセッションが切れてしまったりした場合、以下のように指定することで途中から学習を再開することができます。

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

無事学習を進めることができました!
改善点等あればコメントを下さい~

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1