【发布时间】:2017-01-02 19:12:25
【问题描述】:
我正在我自己的一堆图像数据上运行卷积神经网络 (this one),形状(通道数、高度、宽度)= (3, 30, 30)。我有 76960 个训练样本,19240 个测试样本,有 39 个类。最后几块代码是:
# Train the model using Stochastic grad descent + momentum
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
cnn.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
batch_size = 128
nb_epoch = 50
cnn.fit(x_train, y_train,
batch_size = batch_size,
nb_epoch = nb_epoch,
validation_data=(x_test, y_test),
shuffle=True)
训练损失和准确率随着 epoch 的变化而变化,但验证准确率只从第 1 个 epoch 变化到第 2 个 epoch(从 0.3387 到 0.3357),然后一直保持在 0.3357。
我尝试了不同的批量大小(32、128 或 256)learning rate(从 1e-6 到 0.1,沿途乘以 10)并尝试使用或不使用 data normalization(基本均值偏移) , 和除以 sd)。这些都没有奏效。
【问题讨论】:
-
你测试其他分类器吗?如果是,根据不同的分类器,你得到的最佳准确率是多少?
-
你的班级平衡如何?任何类的样本比其他类多?
-
1.是的,我尝试过其他分类器。 2. 没有,有2个班级人数严重超标,分别占总人口的34%和35%左右。但是,请注意,我的问题并不是“如何让方法 X 准确分类我的数据”。我不确定给我的标签是否正确,因此分类失败仍然可能是反映现实的准确结果。我只是担心技术错误。
-
您还在处理这个问题吗?你会在每一层上添加正则化器吗?
标签: python neural-network classification