MNIST数据集深度学习实践汇总
2019-05-02 本文已影响9人
AwesomeTang
Why MNIST
MNIST数据集对深度学习初学者来说应该是最友好的数据集了:
- 拿来即用,你只需要专注于模型搭建就好(数据处理真的很费时间);
- 数据集不大,很适合普通玩家,一般的PC都能跑的动,能快速的反馈结果;
近几个月通过MNIST尝试了一些算法模型,包括:
- SoftMax回归
- 卷积神经网络(CNN)
- 循环神经网络(RNN)
- 基于PyTorch的CNN&RNN
- 生成对抗网络(GAN&CGAN)
代码都已上传到我的GitHub,后续也会继续更新,欢迎star⭐️⭐️⭐️
SoftMax回归🏎
严格来说,softmax回归应该不算深度学习,不过这是我用Tensorflow搭建的第一个模型,所以如果你之前没接触过Tensorflow,我觉得softmax作为入门的第一个项目是一个不错的选择。
- 代码:softmax
- 训练时长:1分钟
- 测试集准确率:92%左右
CNN&RNN🚗
CNN是基于LeNet来搭建的,conv1->pool->conv2->pool2后接全连接,RNN是一个双GRU隐层的网络结构,当然你也可以选择使用LSTM,只需要修改74行代码,改成tf.nn.rnn_cell.LSTMCell
即可。
基于PyTorch的CNN&RNN🚕
执行效率没有去仔细比较,不过直观来说,差别不大。个人而言,我觉着PyTorch的代码更简洁易读,至于准确率都差不多,毕竟网络结构一样。
- 代码:基于PyTorch的CNN&RNN
- 训练时长:1-2小时
- 测试集准确率:99.2%左右
生成对抗网络(GAN)🚜
以上的模型目的都是去完成MNIST手写字分类,GAN网络可能刚好相反,它是根据一堆随机数组生成手写字图片。
- 代码:GAN
- 训练时长:30W次迭代,1小时
-
实现效果:
- 其实还尝试了一些其他的结构,包括AlexNet/ResNet等,不过好多被我改来改去,覆盖掉了😂😂😂,后续整理了再更新。
- 各位如果觉得有帮助的,麻烦点个喜欢,GitHub也欢迎Star🌟