機械学習たまたま僕が参考にしたサイトがバッチの取り扱いを間違えていたのですが、特に気にせずそのまま使いまわしていて、ふと読み直してみたらなんじゃこりゃとなった話です。今までchainerの記事をいくつかあげましたが、その中でのバッチ学習は大体以下のようなコードでした。optimizer.update()ここだけ抽出してみればなんじゃこりゃという感じなのですが、恐ろしいことに全く気付いていませんでした。バッチ学習をしているので、train_sizeをbatch_sizeごとに切り分けて学習するべきなのですが、このコードではiが0,1,...,n_batch-1とインクリメントされていて、それぞれについてニューラルネットに突っ込まれるのが[i,i+n_batch)という意味不明なことになっています*1。optimizer.update()のようにするべきです。過去の記事で既に上のコードを掲載してしまっていて、あーあという気持ちです。検索はてなブログをはじめよう!gasinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。