質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

8102閲覧

学習がエラー表示なしに強制終了してしまう

kamehameha1241

総合スコア1

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/02 13:42

編集2020/11/04 10:51

初質問です。色々と至らないところがあるとは思いますがよろしくお願いします。

前提・実現したいこと

https://github.com/MrGiovanni/UNetPlusPlus
URL先のU-net++というネットワークを使用してみたく自身でデータの用意とmain.pyが無かったので自作し、昨日いざ動かしてみたのですが、
epoch1でしかもプログレスバーを表示させる設定にしているにも関わらず表示されずに強制終了とだけ出て動きません。
エラーメッセージも表示されないので原因がわからず質問させていただきました。
どなたか原因・対処法を教えていただけないでしょうか…

発生している問題・エラーメッセージ

以下の画像の通りです。
FutureWarningは発生していますがエラーメッセージが表示されず強制終了されてしまいます。塗りつぶしてある部分は名前隠しです。
イメージ説明

該当のソースコード

python

1from model import * 2from PIL import Image 3import sys 4import os,glob 5import numpy as np 6import cv2 7 8sys.path.append(os.path.abspath("..")) 9sys.path.append(os.path.abspath("../backbones")) 10 11from utils import freeze_model 12from backbones import get_backbone 13from utils import get_layer_number, to_tuple 14 15 16dir_train_img="data/train/image" 17dir_train_label="data/train/label" 18dir_test_img="data/test/image" 19dir_test_label="data/test/label" 20 21train_image=np.empty((1,256,256,3)) 22train_label=np.empty((1,256,256,3)) 23test_image=np.empty((1,256,256,3)) 24test_label=np.empty((1,256,256,3)) 25 26def processing_data(dir_name): 27 data_list=np.empty(0) 28 path=[dir_name,"*.png"] 29 files=glob.glob(os.path.join(*path)) 30 for num,i in enumerate(files): 31 img=cv2.imread(i) 32 img=cv2.resize(img,(256,256)) 33 img=img/255 34 img_expanded=np.expand_dims(img,axis=0) 35 if(num>0): 36 data_list=np.concatenate((data_list,img_expanded),axis=0) 37 else: 38 data_list=img_expanded 39 print(data_list.shape) 40 return data_list 41 42 43train_image=processing_data(dir_train_img) 44train_label=processing_data(dir_train_label) 45test_image=processing_data(dir_test_img) 46test_label=processing_data(dir_test_label) 47 48 49# prepare model 50model = Xnet(backbone_name='vgg16', encoder_weights='imagenet', decoder_block_type='upsampling') 51 52model.compile('Adam', 'binary_crossentropy', ['binary_accuracy']) 53 54# train model 55model.fit(train_image, train_label,epochs=5,verbose=1) 56test_loss, test_acc =model.evaluate(test_image,test,label) 57 58print("loss=",test_loss) 59print("acc=",test_acc) 60 61

このmainを新たに作成したこと以外、他の部分(冒頭のリンク先からDLできるもの)のコードはほとんど変えていません。
結果を見る限りmodel.fitの部分でなにか起きているようですが…

補足情報(FW/ツールのバージョンなど)

冒頭のリンク先の設定を参考にして、
python:3.5.9
tensorflow:1.4.1
keras:2.2.2

追記
pythonはpyenvを利用してversion3.5.9にしています。

###回答者様へ
sudo cat /var/log/syslogでのプログラム終了間際の出力です。
エラーメッセージの部分の画像と同様、塗りつぶされている部分は名前隠しです。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/11/03 00:09

メッセージを見ると、「tensorflowが使用できない」的なことが書いてありますが、今まではtensorflowは使用できていましたか?
kamehameha1241

2020/11/03 02:01

お返事ありがとうございます。 下部の Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 というメッセージのことについてでしょうか。 https://teratail.com/questions/193036 こちらのリンクの通りに動作確認を行ってみましたが、 正しく出力されているようなので、tensorflowはきちんと動作していると思われます。
退会済みユーザー

退会済みユーザー

2020/11/03 04:14

○○ is deprecated(そのうち使えなくなるから次のバージョンアップまでに切り替えてね) と、CPUの命令セット系のエラー(TensorflowはこのCPUが対応していない命令セットでコンパイルされているから、実際には使わないで実行するよ)は無視してOKです。コンソールの末端部分にこのほかのエラーが出ているのであれば掲載してください。 pythonのコードの途中の要所要所に、print("check point 1")、print("check point 2")のような感じで目印をつけて行って、どの関数を実行したときに強制終了されるか観察してはいかがでしょうか?
kamehameha1241

2020/11/03 04:59

お返事ありがとうございます。 ・他のエラーが出ているかについて スクリーンショット撮影時には消えてしまっていますが、Epoch 1/5の次の行に「強制終了」とだけ表示されました。model.fitについて書かれているページ(https://keras.io/ja/models/model/)にもこの場合のエラーについて記載されておらず、困っています。 ・printデバッグについて 行ってみたところ、model.fitの行で停止してしまっているようです。
退会済みユーザー

退会済みユーザー

2020/11/03 21:54

ありがとうございます。これ以上は何も特に表示なしに「強制終了」(もしくはprocess killedのような通知のみが一瞬(?)だけ)出て落ちる、として理解しました。 念のためタスクマネージャーか何かのCPU,メインメモリの使用率を見ながらmodel.fitできますか?リソースを食いつぶして落ちている可能性があるためです。もしかしたらSSDかHDDで同じことが起きているかもしれませんので注意深く観察してください。
kamehameha1241

2020/11/04 10:48

ありがとうございます。 タスクマネージャーではなくsudo cat /var/log/syslogでの確認になりますが、その内容を質問の方に追記させて頂きました。 内容を見る限りメモリ不足による強制終了だと思われるのですが、そのような認識で合っていますでしょうか?
退会済みユーザー

退会済みユーザー

2020/11/04 12:28

原因が確定ではないので回答ではなくコメント欄に書きます。 --- syslogの読み方に慣れていませんが、メモリを食いつぶされて"Process killed"はよく見てきました。その時はgnome-system-monitor何かを使って処理の進行とメモリ残量を確認してきました。 メモリ増設以外の対策があるとすれば、SWAPを増やす、モデルを小さくする、学習データを減らす、バッチを小さくするといった対策になると思います。
kamehameha1241

2020/11/05 08:23

gnome-system-monitorを使用してみたところ、CPUとメモリが100%使用されていたのでやはりメモリ不足による強制終了だと思われます。 とりあえず仰られた対策を実行してみようかと思いますが、質問の主題である強制終了の原因は判明したので、ベストアンサーの方を差し上げたいです。 お手数ですが、回答の方お願いできますでしょうか。
guest

回答1

0

ベストアンサー

深層学習では膨大な量のメモリを使用します。この時、メモリの許容量の限界までPythonが使ってしまうと、突然通知がなく落ちたり、Process killedのような表示のみがされてクラッシュすることがあります。
Ubuntuではgnome-system-monitorを使うと、グラフィカルに使用中のメモリの量の推移を見ることができます。

メモリが食いつぶされてクラッシュする場合の対策は、以下の対策が考えられます。ご検討ください。

  1. データ量を減らす(画像であれば解像度や枚数を減らす)
  2. モデルを小さくする
  3. バッチサイズを小さくする
  4. スワップ領域を増やす
  5. メモリを増設する

投稿2020/11/05 11:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問