Neural Network ConsoleでCIFAR用ResNetを試してみた

WindowsアプリのNeural Network ConsoleでCIFAR用ResNetを試してみました。

データセットは、以下の記事でセットアップしたCIFAR-10を使用します。

Neural Network ConsoleでCIFAR-10をセットアップしてみた
Neural Network ConsoleのWindowsアプリをインストールして、CIFAR-10(とCIFAR-100)データセットをセットアップしてみました。
スポンサーリンク

CIFAR用ResNetのセットアップ

Deep Residual Learning for Image Recognition(https://arxiv.org/abs/1512.03385)とGitHubのfb.resnet.torch(https://github.com/facebook/fb.resnet.torch)を参考にして、Neural Network ConsoleのサンプルプロジェクトのImageNet用ResNetを改造して、CIFAR用ResNetを作成します。

上図がImageNet用ResNet(ResNet-34)、下図がCIFAR用ResNet(ResNet-20)になります。

なお、データ拡張として、ゼロパディング後にランダムクロップしたいのですが、Neural Network Consoleのどのレイヤーを組み合わせればいいのか分かっていません。

CIFAR用ResNetの学習結果と評価結果

MNISTデータセットではあまり気にならなかったのですが、CIFAR-10データセットでは、キャッシュデータの作成に結構時間がかかります。

Neural Network ConsoleのFAQを見ると、「ConfigタブのEnable Dataset Cacheをチェックすることで、既に作成されたキャッシュデータが利用されるようになり、次回以降のキャッシュデータ再生成をスキップすることができます。」と記載されていました。

これに気が付くまで、結構時間を無駄にしました。

30エポックの学習結果(ランダムクロップなし)が、下図となります。

なお、ロス(又はコスト)は、エポック毎に計算されるのですが、エラーは、5エポック以降は、10エポック毎に計算されるように設定されているようです。

エラーは、エポック毎に計算したほうが良いと思うのですが、既に「構造自動探索」の時代に突入しているのでしょうか?

学習したモデルの評価結果が、下図となります。

データ拡張(ランダムクロップ)なしのため、精度(accuracy)は0.8524でした。

使用感としては、プログラミングなしでコンフュージョンマトリックスが作成できる等、NVIDIAのDIGITSと似た機能が多いのですが、GUIでモデルを作成できる点は、評価できると思います。

まとめ

WindowsアプリのNeural Network Consoleで、CIFAR用ResNetを試してみました。