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


相关文章
|
机器学习/深度学习 人工智能 自然语言处理
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
791 0
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
|
机器学习/深度学习 定位技术
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
335 2
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(三)
|
机器学习/深度学习
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
244 1
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(一)
|
机器学习/深度学习 算法 数据可视化
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
326 0
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
|
机器学习/深度学习
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
226 0
DNN、CNN和RNN的12种主要dropout方法的数学和视觉解释(二)
|
机器学习/深度学习 算法
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
|
机器学习/深度学习 人工智能 算法
不确定性助益学习准确率,GPU训练预测性DNN误差更少、效果更好
有学者发现在 GPU 而不是 CPU 上训练的机器学习系统在训练过程中可能包含更少的误差,并产生更好的结果。这一发现与一般的理解相矛盾,即 GPU 只具有加速功能,而不是使训练结果更好。
不确定性助益学习准确率,GPU训练预测性DNN误差更少、效果更好
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
194 0
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
199 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习 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...
637 0

相关实验场景

更多