DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)

简介: DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)

输出结


image.png


 

设计思

image.png

image.png

 

核心代

class DeepConvNet:

   def __init__(self, input_dim=(1, 28, 28),

                conv_param_1 = {'filter_num':16, 'filter_size':3, 'pad':1, 'stride':1},

                conv_param_2 = {'filter_num':16, 'filter_size':3, 'pad':1, 'stride':1},

                conv_param_3 = {'filter_num':32, 'filter_size':3, 'pad':1, 'stride':1},

                conv_param_4 = {'filter_num':32, 'filter_size':3, 'pad':2, 'stride':1},

                conv_param_5 = {'filter_num':64, 'filter_size':3, 'pad':1, 'stride':1},

                conv_param_6 = {'filter_num':64, 'filter_size':3, 'pad':1, 'stride':1},

                hidden_size=50, output_size=10):

       # 初始化权重===========

           ……

   def predict(self, x, train_flg=False):

           ……

   def loss(self, x, t):    

           ……

       return acc / x.shape[0]

   def gradient(self, x, t):

       # forward

       self.loss(x, t)

       # backward

           ……

       return grads

   def save_params(self, file_name="params.pkl"):

           ……

   def load_params(self, file_name="params.pkl"):

           ……

       for i, layer_idx in enumerate((0, 2, 5, 7, 10, 12, 15, 18)):

           self.layers[layer_idx].W = self.params['W' + str(i+1)]

           self.layers[layer_idx].b = self.params['b' + str(i+1)]


相关文章
|
12月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1134 6
|
10月前
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
839 70
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
590 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
算法 Java C++
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
|
算法 C++
蓝桥 算法训练 共线(C++)
蓝桥 算法训练 共线(C++)
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
295 0
|
算法 搜索推荐
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
141 0
|
存储 算法
【C算法】编程初学者入门训练140道(1~20)
【C算法】编程初学者入门训练140道(1~20)

热门文章

最新文章