研究CNTK(四):ConvNet_MNIST.cntk

道家阴符派博客--研究CNTK(四):ConvNet_MNIST.cntk--CNTK

可以看出结果为:

Minibatch[1-10]: errs = 0.470% * 10000; ce = 0.01797164 * 10000
Final Results: Minibatch[1-10]: errs = 0.470% * 10000; ce = 0.01797164 * 10000; perplexity = 1.01813410

错误仅只有0.47,相当于正确率为99.53%,这个非常高了。

这是采用了三层卷积的效果,迭代了40次,算了挺久的,按MNIST的网站上的公布最好成绩为0.23,共计用了35个卷积层,很难想象这个得算多久。

与之前的代码几乎还是相同,不同主要是在model上,它是这样的:

 model = Sequential (
            Scale {featScale} :
            ConvolutionalLayer {32, (5:5), pad = true} : ReLU :
            MaxPoolingLayer    {(3:3), stride=(2:2)} :
            ConvolutionalLayer {48, (3:3), pad = false} : ReLU :
            MaxPoolingLayer    {(3:3), stride=(2:2)} :
            ConvolutionalLayer {64, (3:3), pad = false} : ReLU :
            DenseLayer         {96} : Dropout : ReLU :  
            LinearLayer        {labelDim}
        )

这个就是经典的代码了:输入,归一化,卷积,池化,卷积,池化,卷积,池化,全连接,输出。

而且可以注意到在卷积时使用了32个滤波器,更进一步地增强了提取特征的能力,并且池化时候使用的是(3:3),stride=(2:2)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注