深度学习 音乐分类_深度学习解决图像分类的问题

45b4380ae4559d5873795e6f2dac6dd8.png

前言

深度学习在计算机视觉领域全面超过了传统的机器学习,利用kaggle的Digit Recognizer竞赛来介绍卷积神经网络识别手写数字的基本思路。

数据集

MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,它也包含每一张图片对应的标签,告诉我们这个是数字几。

92dce7af037a9bfd2b668c2231034093.png
MNIST数据集

创建CNN模型

深度学习解决图像分类问题的基本模型:

  • Covolution Layer:卷积层
  • Pooling Layer:池化层
  • Fully Connected Layer:全连接层
def VGG16():
    input = Input(shape=(28, 28, 1))

    x = Conv2D(64, (3, 3))(input)
    x = Conv2D(64, (3, 3))(x)
    x = MaxPooling2D(pool_size=(2,2), strides=(2, 2))(x)

    x = Conv2D(128, (3, 3), activation='relu', padding='same')(x)
    x = Conv2D(128, (3, 3), activation='relu', padding='same')(x)
    x = MaxPooling2D(pool_size=(2,2), strides=(2, 2))(x)

    x = Conv2D(256, (3, 3), activation='relu', padding='same')(x)
    x = Conv2D(256, (3, 3), activation='relu', padding='same')(x)
    x = Conv2D(256, (3, 3), activation='relu', padding='same')(x)
    x = MaxPooling2D(pool_size=(2,2), strides=(2, 2))(x)

    x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)    #x = MaxPooling2D(pool_size=(2,2), strides=(2, 2))(x)

    #x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)
    #x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)
    #x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)    

    # 展开像素
    x = Flatten()(x)    #x = Dense(4096, activation='relu')(x)
    #x = Dense(4096, activation='relu')(x)
    x = Dense(2048, activation='relu')(x)
    x = Dense(1000, activation='relu')(x)
    output = Dense(10, activation='softmax')(x)

    cnn_model = Model(input, output)    return cnn_model

上面的代码用Keras实现的CNN模型,这个模型结构是参考了VGG16的模型。(把注释去掉就是完整的VGG16模型,我因为笔记本显存只有2G跑不动,所以简化了网络。)

18f3f1f333a9ec33e55aa996369e67d0.png
VGG16模型

结果

最后,用表现最好的模型进行预测,并提交到Kaggle。当然喽,成绩很低,有计算资源的可以试试把注释去掉,应该会有一定的提高。

b5bd5cccf09d71caebbcda0ac805358f.png
欢迎关注微信公众号:kaggle数据分析,也可以加我们的群,一起打比赛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值