2018aでのtrainNetwork

1 回表示 (過去 30 日間)
Yuto Omae
Yuto Omae 2018 年 7 月 17 日
回答済み: Yuto Omae 2018 年 7 月 17 日
2017bのバージョンで保存させておいたNetworkを、2018aにバージョンアップさせた後にtrainNetworkで学習させようとしたところ、
「層12のクラス順序は、学習データで指定された順序と一致しなければなりません」
というエラーがでて、学習できなくなってしまいました。 プログラムを変更はしておらず、以前は問題なく学習できていました。
trainNetwork(DX, DY, oldNet, opt)
でエラーが出ます。
DXは画像ファイル、 DYはカテゴリカル型の教師データラベル、 oldNetは2017bで、trainNetworkにより作成したCNN、 optは学習条件となります。
oldNetは学習に数か月かかっており、再度1から学習ということはしたくありません。 再度、エラーをださずに学習を行うには、どのような対応が考えられますか。
よろしくお願いします。
備考: activations関数で、CNNにおける特定の層から特徴量抽出を行ったところ、 これまではn回目の入力がn行目に格納されていたのにも拘らず、 先ほど実行したところ、n列目に格納される、というように変更されていました。 これにより、いくつかプログラムを組みなおさねばならない事態になってしまいました。 CNNまわりで何か大きな変更などあったのでしょうか。

採用された回答

Yuto Omae
Yuto Omae 2018 年 7 月 17 日
すいません、自己解決しました。
trainNetworkの中身をみていたところ、入力された教師データのラベルの型と、既に学習されたCNNの最終層のクラスラベルの型をチェックし、お互いの順序あり/なしが不一致ではないか、チェックしているコードを発見しました。 そのため、
DY=categorical(DY,'Ordinal',false)
とし、ラベルデータを順序なしのカテゴリカル型にしたところ、2018aのtrainNetworkで、2017bで作成したCNNを学習させることができました。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!