2017年6月15日木曜日

Darknet で ImageNet 分類を試してみたが、失敗した。(I tried ImageNet classification with Darknet, but it failed.)

エラーメッセージ

はじめに

Darknet は、 YOLO だけでなく、 ImageNet ClassificationNightmare などの機能も実現している。

ImageNetは、1000クラスの分類用の画像データセットであり、Darknetは、このデータを学習に使用して、いくつかの学習済みモデルを提供している。

提供されているモデルは以下のものである。詳細は、説明ページの下段に記されている。


学習済みモデル

今回は、 ImageNet Classification を試してみたが、残念ながら問題が生じたため実現できなかった。
6/20 解決しました。

事前準備

wget http://pjreddie.com/media/files/extraction.weights

でモデルデータを取得する

実行コマンド

./darknet classifier predict cfg/imagenet1k.data cfg/extraction.cfg ../work/extraction.weights ../work/dog.jpg

実行結果は、画面上部の用なエラーが生じて中断される。

GPUボードは、GeForce GTX 1050Ti 8G を使用しているが、8Gでは、メモリが少ないと想像される。

学習の時は、バッチサイズを小さくするなど、何らかの対策が考えられたが、inferenceなのでメモリの減らす方法は浮かばない。

念のために他のモデル(darknet19、darknet19_448)でも試してみたが、いずれも、CUDA Error: out of memory で中断されてしまう。

以上

2 件のコメント:

  1. cfgファイルのsubdivisionsの値を大きくしてみてください。
    1回に処理される単位がbatch÷subdivisionsなので、
    メモリの小さなGPUでも処理できるようになります。

    返信削除
    返信
    1. sounansuさん
      アドバイスありがとうございます。値を大きくすることで、out of memory が出なくなりました。

      削除