今天遇到了这样一个问题,做神经网络量化的过程中,load训练好的高精度模型作为pretrain model,然后立即test accuracy为10%,以下为几个可能出现问题的点:
- 查看load模型的路径有无问题
- 查看加载的数据集有无问题(有时会出现用svhn数据集去验证cifar10数据集的事件)
- 查看load模型当时在训练时的acc:
info = torch.load('modelpath')
info.keys() # 列出保存checkpoints时的所有参数,包括best_acc
info['best_acc']
- 由于预训练模型定义与当前训练模型定义差别较大(如直接将一个全精度的模型参数load到binary neural network里),导致未经fine-tune的情况下,采用new model去inference的精度远远低于原始模型的精度。
如果无以上问题,但训练结果不太好,还可以看一下脚本中的学习率设置。