【发布时间】:2021-09-02 09:45:30
【问题描述】:
我开始在 PyTorch 中学习 CNN 实现,并尝试构建 CNN 来处理从 0 到 3 的 4 个类别的灰度图像。我的初始准确度在 0.55 左右。我得到的最大准确率约为 0.683%。
我尝试了使用不同的 lr 和 batch_size 值的 SGD 和 Adam 优化器,但准确率仍然很低。
我使用数据增强来创建更多样本,大约 4k。
我无法进一步提高准确性,想知道是否可以就我需要更改 CNN 结构以提高准确性获得一些建议。 损失开始于:损失:[1.497] 然后在附近减少:损失:[0.001] 然后围绕该值上下波动。
我花时间阅读了类似的问题,但没有运气。 我正在为我的 loss_fn 使用 nn.CrossEntropyLoss()。我不将 softmax 用于密集层。
这是CNN模型的总结:
-------------------------------------------------------------
Layer (type) Output Shape Param #
=============================================================
Conv2d-1 [-1, 32, 128, 128] 320
ReLU-2 [-1, 32, 128, 128] 0
BatchNorm2d-3 [-1, 32, 128, 128] 64
MaxPool2d-4 [-1, 32, 64, 64] 0
Conv2d-5 [-1, 64, 64, 64] 18,496
ReLU-6 [-1, 64, 64, 64] 0
BatchNorm2d-7 [-1, 64, 64, 64] 128
MaxPool2d-8 [-1, 64, 32, 32] 0
Conv2d-9 [-1, 128, 32, 32] 73,856
ReLU-10 [-1, 128, 32, 32] 0
BatchNorm2d-11 [-1, 128, 32, 32] 256
MaxPool2d-12 [-1, 128, 16, 16] 0
Flatten-13 [-1, 32768] 0
Linear-14 [-1, 512] 16,777,728
ReLU-15 [-1, 512] 0
Dropout-16 [-1, 512] 0
Linear-17 [-1, 4] 2,052
============================================================
我将不胜感激。
【问题讨论】:
标签: pytorch conv-neural-network classification