1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google ColabでYOLOの学習をする上でつまずいたエラー

Last updated at Posted at 2020-03-18

本記事はGoogle Colab上でYOLOの学習をした際に解決に時間がかかったエラーをまとめたものです。
初歩的なものが多いですが大目に見ていただけると幸いです。

改行コード周り

./src/utils.c:256: error: Assertion `0' failed
色々原因があるようですが、私の場合.dataファイルの改行コードがCRLFになっていることが原因でした。
テキストエディタ等でLFに変更すれば治りました。
手元のWindows環境で動かす分にはエラーが出なかったので特定に時間がかかりました。

STB Reason: can't fopen
Cannot load image "data/images/xxx.jpg
原因はtrain.txtやtest.txtの改行コードがCRLFになっていることでした。
私はこちらのprocss.pyを用いて学習・テストデータの振り分けをしていたのですが、Windows上で実行した場合勝手にCRLFになってしまうようで、少し改造する必要がありました。
参考にあるように、ファイルを開く際に改行コードをnewlineで指定してやると良いようです。

file_train = open(path_data + 'train.txt', 'w',newline="\n")
file_test = open(path_data + 'test.txt', 'w',newline="\n")

参考:Windows上で実行したPythonの出力ファイルの改行コードが変わる

メモリ不足によるエラー

/bin/bash: line 1: 761 Killed
数字は時によって変わります。解決法からの類推ですが、Out of memoryエラーのことと思われます。
YOLOは.cfgで指定したbatch/subdivisionの枚数を一度に(ここ正確性に欠けます)処理するので、例えば batch 64 subdivision 16の場合は一度に4枚処理します。しかし、GPUの性能等の事情でメモリが足りずエラーが出るので、この場合はsubdivisonの値を順次増やしていけばよいです。
私は最終的にbatch 64 subdivison 64 で動かすとエラーを出さなくなりました。
処理速度とのトレードオフになってくるので、値をどの程度にするかはデータセットによって適宜調整する必要があります。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?