鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

AI::MXNetでイメージのロードに挑戦できた

 use AI::MXNet qw('mx');                                                     
 my $ite = mx->img->ImageIter(
   {path_root => "" , batch_size => 1, data_shape=> [3,224,224],label_width =    >1, path_imglist => "data/custom.lst"});
  for $data (@{$ite}){
    print $data->[0];
 }

Use of uninitialized value $fname in concatenation (.) or string 

エラーを吐いて読むことができない。
これはバグなのかpath_rootを渡したいのだけど、渡せないのはなぜだろう。。。

github.com

バグだったようで、作者の方から迅速な返事もあり。解決しました。サンプルソースまで添削していただけました。
どんどん、アウトプットしていきましょう。
jpgなどの画像データをパスリスト作っておくとndarrayへ格納できるようになります。
data_shapeと画像のサイズを揃えて置かないと叱られますので注意です。

  1  use AI::MXNet qw('mx');                                                    
  2  use Data::Dumper;
  3  my $ite = mx->img()->ImageIter(
  4  {  batch_size => 1, data_shape=> [3,183,275],label_width =>1, path_imglist     => "custom.lst", path_root => '.' });
  5  for $data (@{$ite}){
  6    print Dumper($data);
  7    print $data->data->[0]->aspdl;
  8    print $data->label->[0]->aspdl;
  9  }