だいぶ時間が空いてしまった。RISC-VプロセッサHiFive1を使った実験、機械学習のネットワークを動作させてMNISTを動作させる件、やっと再開した。
とりあえずMNISTのデータを使ってちゃんと計算できるようになりたい。それでも、デバッグはなかなか大変だ。
MNISTとして提供されているt10k-images-idx3をロードして、正しい結果を得られるようにしたい。 このプログラムは既にx86上で正しく動作しているので、あとはHiFive1上で動かすだけなのだが、どうもまだうまく動いてくれない。
上記の通り、ほとんど結果が合っていない!なんじゃこりゃ!100個データを入れていって9個しか合っていないとか、ほとんど、単なる確率だね。 まあ、こっから先は一つずつデータを合わせながらx86の結果を合わせていくしかないね。地道な作業だけれども。
あと問題なのは、バッチサイズをあまり増やすことができない点。これについては今のところバッチサイズ=1で動作させているが、L1キャッシュのサイズの関係もあるし、サイズは10でも厳しい気がする。まあ、途中の演算用のバッファを繰り返し利用するようにすればもうちょっとましになるかもしれないけど。