如何增加我的cnn模型的准确性?

时间:2019-07-18 11:34:27

标签: tensorflow keras classification conv-neural-network image-recognition

我有4种不同类型的图像,例如自行车,汽车,飞机和音乐仪器,我尝试使用此数据集进行图像分类。然后,当我训练模型时,我得到的精度是0.62 我该怎么做才能提高准确性?

class InputItem:Mappable {
var title:String?
var placeholder:String?
var contentType:UITextContentType?
var keyboardType:UIKeyboardType?
var isSecure:Bool = false
}

这是结果:

  

史诗1/10   18620/18620 [==============================]-987s 53ms / step-损耗:2.0487-acc:0.39380 / 18620 [=======> ......................]-ETA:11:57-损失:4.0915-acc:0.278410500 / 18620 [= =============> ..............]-预计到达时间:7:07-损失:2.7013-acc:0.325015500 / 18620 [=== ====================> ......]-预计到达时间:2:45-损失:2.2196-总计:0.3754   时代2/10   18620/18620 [==============================]-985s 53ms / step-损耗:1.1145-acc:0.5409TA: 14:05-损失:1.1721-帐户:0.4987 7750/18620 [============> ..................]-ETA:9 :31-亏损:1.1378-acc:0.5288-ETA:2:44-亏损:1.1183-acc:0.5392   时代3/10   18620/18620 [==============================]-978s 53ms / step-损失:1.0331-acc:0.5830TA: 14:17-损失:1.0323-acc:0.5845   时代4/10   18620/18620 [==============================]-975s 52ms / step-损失:1.0032-acc:0.5942TA: 9:37-损失:1.0127-acc:0.5875 9750/18620 [===============> ......]-ETA:7 :41-损失:1.0119-帐户:0.5892-预计到达时间:5:19-损失:1.0122-帐户:0.5902   时代5/10   18620/18620 [==============================]-973s 52ms / step-损失:0.9680-acc:0.6137TA: 11:27-损失:0.9670-acc:0.6137 7000/18620 [=========== .......................]-ETA:9 :58-亏损:0.9718-acc:0.6066 15000/18620 [=======================> ......]-预计到达时间:3: 08-亏损:0.9694-总计:0.6115   时代6/10   18620/18620 [==============================]-979s 53ms / step-损耗:0.9308-acc:0.62960 / 18620 [=============> ................]-预计到达时间:8:36-损失:0.9311-acc:0.633110500 / 18620 [= =============> ..............]-预计到达时间:7:05-损失:0.9310-acc:0.6304   时代7/10   18620/18620 [==============================]-976s 52ms / step-损耗:0.9052-acc:0.63860 / 18620 [==========> ..........]-预计到达时间:10:02-损失:0.9112-总计:0.6347-预计到达时间:9 :11-损失:0.9055-acc:0.6368-预计到时间:5:19-损失:0.9105-acc:0.6362   时代8/10   18620/18620 [==============================]-1008s 54ms / step-损失:0.8755-acc:0.6507 / 18620 [==================> ..............]-预计到达时间:5:52-损失:0.8746-总计:0.6513   时代9/10   18620/18620 [==============================]-994s 53ms / step-损耗:0.8479-acc:0.66140 / 18620 [===> .......................................]-预计到达时间:14:12-损失:0.8474-总计:0.6560 3500/18620 [ ====> .....................................]-预计到达时间:13:27-损失:0.8437-总计:0.6566-预计到达时间:11: 54-损失:0.8318-acc:0.6672-ETA:9:30-损失:0.8273-acc:0.6681 9500/18620 [============== ........ .......]-ETA:8:08-损失:0.8390-acc:0.6653-ETA:6:09-损失:0.8399-acc:0.6660-ETA:1:53-损失:0.8473-acc:0.6628   时代10/10   18620/18620 [==============================]-997s 54ms / step-损耗:0.8108-acc:0.67490 / 18620 [=======> ......................]-ETA:11:54-损失:0.8146-acc:0.6650-ETA:10 :45-损失:0.8196-累积:0.6652   4656/4656 [==============================]-40s 9ms / stepETA:1s   验证准确性:0.6265034364261168   验证损失:0.964772748373628

2 个答案:

答案 0 :(得分:2)

首先,您可以增加CNN过滤器(8或16个还不够),然后在MaxPool层之后使用BatchNormalization层。如果不起作用,请更改优化器(例如SGD等)

答案 1 :(得分:0)

您可能需要调整过滤器的确切值,具体取决于

  1. 数据集的复杂性。
  2. 神经网络的深度,但我建议从较早的 [32, 64, 128] 范围内的过滤器开始,并在更深层增加到 [256, 512, 1024]。

如果您的输入图像大于 128×128,您可以选择使用内核大小 > 3。

  1. 学习更大的空间过滤器。
  2. 帮助减小卷大小。

如果您的图片小于 128×128,您可能需要考虑坚持使用严格的 1×1 和 3×3 过滤器。

同时使用 Adam 优化器及其原始值。