pytorchでクラス分類を行っています。訳がありまして、推論時に学習データを入力して学習時と同じ認識精度とlossが得られるか確認しているのですが、学習時と推論時でlossと認識精度(Accuracy)が大きく異なります。
モデルには、ResNetを使用しており、評価時はmodel.eval()で評価モードに切り替えて推論しています。
学習データの入力の前処理は、学習時と推論時で以下の通りで同様の処理となっています。
lossには、クロスエントロピーロスを用いています。
python
1transforms.Resize((224, 224)), 2transforms.ToTensor(), 3transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
ResNetなので、評価時はBatch Normalizationがoffになっているので、認識精度とlossが変化するのは何となく理解できるのですが、学習時と評価時でlossと認識精度は大きく異なるものなのでしょうか?
また、推論時に学習時と同じlossと認識精度を獲得することは可能なのでしょうか?
同じような事例をご経験された方、詳しい方がいましたら、ご教授頂けると嬉しいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。