DL之DNN:利用MultiLayerNetExtend模型【6*100+ReLU+SGD,dropout】对Mnist数据集训练来抑制过拟合

简介: DL之DNN:利用MultiLayerNetExtend模型【6*100+ReLU+SGD,dropout】对Mnist数据集训练来抑制过拟合

输出结

image.png

image.png

 

设计思

 image.png

image.png


核心代

class RMSprop:

   def __init__(self, lr=0.01, decay_rate = 0.99):

       self.lr = lr

       self.decay_rate = decay_rate

       self.h = None

     

   def update(self, params, grads):

       if self.h is None:

           self.h = {}

           for key, val in params.items():

               self.h[key] = np.zeros_like(val)

         

       for key in params.keys():

           self.h[key] *= self.decay_rate

           self.h[key] += (1 - self.decay_rate) * grads[key] * grads[key]

           params[key] -= self.lr * grads[key] / (np.sqrt(self.h[key]) + 1e-7)

class Nesterov:

   def __init__(self, lr=0.01, momentum=0.9):

       self.lr = lr

       self.momentum = momentum

       self.v = None

     

   def update(self, params, grads):

       if self.v is None:

           self.v = {}

           for key, val in params.items():

               self.v[key] = np.zeros_like(val)

         

       for key in params.keys():

           self.v[key] *= self.momentum

           self.v[key] -= self.lr * grads[key]

           params[key] += self.momentum * self.momentum * self.v[key]

           params[key] -= (1 + self.momentum) * self.lr * grads[key]

use_dropout = True  

dropout_ratio = 0.2

network = MultiLayerNetExtend(input_size=784, hidden_size_list=[100, 100, 100, 100, 100, 100],

                             output_size=10, use_dropout=use_dropout, dropout_ration=dropout_ratio)

trainer = Trainer(network, x_train, t_train, x_test, t_test, epochs=301, mini_batch_size=100,

                 optimizer='sgd', optimizer_param={'lr': 0.01}, verbose=True)  

trainer.train()                                                                

train_acc_list, test_acc_list = trainer.train_acc_list, trainer.test_acc_list


相关文章
|
机器学习/深度学习 算法 数据可视化
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
260 0
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
|
机器学习/深度学习 定位技术
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
270 2
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
|
机器学习/深度学习
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
167 0
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
|
机器学习/深度学习
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
170 1
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
|
机器学习/深度学习 算法
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
|
机器学习/深度学习
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
|
7月前
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
138 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习
如何使用NAnt 自动打包DNN模块 之一
一、安装NAnt 每次开发完毕一个DNN模块的版本,打包DNN模块是一件很繁琐的事情。更重要的是,为每一个发布的版本做一个安装包如果用手工管理和容易出错。这里介绍一下如何使用NAnt自动打包模块。 首先需要下载NAnt,http://sourceforge.net/projects/nant/ 下载之后解压这个ZIP包 解压之后的目录重名名为NAnt,拷贝到c:下面。
943 0
|
机器学习/深度学习 SEO
介绍几个DNN SEO模块,可免费试用的
iFinity Url Master - Get the best SEO results by taking control of your DNN urls iFinity Tagger - Tag your DNN content and create specific, target...
612 0

相关实验场景

更多
http://www.vxiaotou.com