loss, accuracyの計算方法まとめ

criterionのreductionはデフォルトで'mean'。
len(data_loader)はバッチ数。

なので、epochの平均lossの算出は、バッチごとの(平均)lossを加算していって、len(data_loader)で割ればよい。

正解数は

correct += pred.eq(target.view_as(pred)).sum().item()

で足していく。
これはバッチ数len(data_loader)ではなく、データ数len(dataset)で割ることで、accuracyを算出する。

numpy(onnx)の場合は、

correct += np.equal(pred, np.reshape(target, pred.size)).sum()

で、正解数をカウントしていく。