我用了this例如项目(框架 - caffe,网络架构 - AlexNet 的 mod,使用 400 张图像进行训练)。我有这个结果:
求解器:
net: "./CDNet/Models/train.prototxt"
test_iter: 500
test_interval: 500
base_lr: 0.001
lr_policy: "step"
gamma: 0.1
stepsize: 100000
display: 50
max_iter: 450000
momentum: 0.9
weight_decay: 0.0005
snapshot: 10000
snapshot_prefix: "./CDNet/Models/Training/cdnet"
solver_mode: GPU
任何人都可以解释这种准确性和我的网络丢失的行为吗?我做错了什么?
UPD: 我将批量大小从 1 更改为 12,将步长更改为 2000。结果如下图所示:
每次测试的准确度约为 0.5。
最佳答案
如果不查看您的代码和您的数据,就很难进行完整的分析。请注意,二元分类的 0.5
准确度仅仅是随机猜测。如果网络输出一个常量并且测试集不偏向某一类,您将得到相同的结果。
从这些图表中可以明显看出,该模型没有学习。由于图表上没有训练准确性,我什至无法判断它是否过度拟合(我不敢相信增强型 AlexNet 拟合不足)。
据我所知,该任务需要仔细的数据准备,并且这是一个可能犯错误的步骤:检查您的训练和测试数据是否有意义(它们应该是 227x227,人类可以清楚地识别,还要检查两组的大小)。仔细检查计算出的平均图像和预处理步骤。超参数看起来很合理,据说适用于这个数据集,所以一般来说我会相信它。
关于python - 任何人都可以解释这种准确性和我的网络丢失的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445825/