paddle 深度学习cv七日训练营day3车牌识别

经过了第二天的手势识别,用的是DNN 的网络,我在一开始还不知道使用CNN,于是我在第三天意识到,DNN在图像方面并不是很适合,我们需要应用CNN,也就是卷积神经网络,我观察图像,我发现其实图像其实很小,很像minst的那个数据集,于是我便采用了lenet,尝试在lenet下这个网络的效果如何,令我惊讶的是,我在一开始的正确率就能达到96%+的样子,这就让我很满意了,于是接下来我遇见的问题就是如何去优化这个网络
1.我一直在改变epoch的大小使其变得更加合适,我同时在调整epoch的时候观察loss的大小,这里我发现如果你利用loss画一幅折线图你就会看到很明显的一个loss变化,从而选择一个比较好的epoch
2.同时我在网络里加上了一些dropout,也就是随机丢掉一些了连接,使我们的网络防止过拟合。
3.炼丹大法好!!!

class MyLeNet(fluid.dygraph.Layer):
    def __init__(self):
        super(MyLeNet,self).__init__()
        self.hidden1_1 = Conv2D(1,6,5,1,act="relu")
        self.hidden1_2 = Pool2D(pool_size=2,pool_type='max',pool_stride=1)
        self.hidden2_1 = Conv2D(6,40,5,1,act="relu")
        self.hidden2_2 = Pool2D(pool_size=2,pool_type='max',pool_stride=1)
        self.hidden3_1 = Conv2D(40,100,5,1,act="relu")
        self.hidden4 = Linear(3600,360,act='relu')
        self.hidden5 = Linear(360,65,act='softmax')
    def forward(self,input):
        x = self.hidden1_1(input)
        a = self.hidden1_2(x)
        b = self.hidden2_1(a)
        c = self.hidden2_2(b)
        d = self.hidden3_1(c)
        x = fluid.layers.reshape(d, shape=[-1,360*10])
        #x = layers.dropout(x, dropout_prob=0.1)
        d = self.hidden4(x)
        d = layers.dropout(d, dropout_prob=0.2)
        #f = fluid.layers.reshape(d, shape=[-1,10*10*10])
        y = self.hidden5(d)

        return y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值