DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程

简介: DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程

输出结

image.png

 

设计思

image.png

 

核心代

(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True)

x_train = x_train[:1000]

t_train = t_train[:1000]

max_epochs = 20

train_size = x_train.shape[0]

batch_size = 100

learning_rate = 0.01

   bn_network = MultiLayerNetExtend(input_size=784, hidden_size_list=[100, 100, 100, 100, 100], output_size=10,

                                   weight_init_std=weight_init_std, use_batchnorm=True)

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

                               weight_init_std=weight_init_std)

   optimizer = SGD(lr=learning_rate)  

   train_acc_list = []                              

   bn_train_acc_list = []

   iter_per_epoch = max(train_size / batch_size, 1)

   for i in range(1000000000):

       #定义x_batch、t_batch

       batch_mask = np.random.choice(train_size, batch_size)

       x_batch = x_train[batch_mask]

       t_batch = t_train[batch_mask]

 

       for _network in (bn_network, network):

           grads = _network.gradient(x_batch, t_batch)

           optimizer.update(_network.params, grads)    

 

       if i % iter_per_epoch == 0:

           train_acc = network.accuracy(x_train, t_train)      

           bn_train_acc = bn_network.accuracy(x_train, t_train)

           train_acc_list.append(train_acc)

           bn_train_acc_list.append(bn_train_acc)

 

           print("epoch:" + str(epoch_cnt) + " | " + str(train_acc) + " - " + str(bn_train_acc))

 

           epoch_cnt += 1

           if epoch_cnt >= max_epochs:

               break

             

   return train_acc_list, bn_train_acc_list  


相关文章
|
机器学习/深度学习 数据采集 算法
基于CNN卷积神经网络的目标识别算法matlab仿真,测试mnist数据库
基于CNN卷积神经网络的目标识别算法matlab仿真,测试mnist数据库
|
算法
白盒攻击中FGM、FGSM、DeepFool算法在MNIST手写数字集中的实战(附源码)
白盒攻击中FGM、FGSM、DeepFool算法在MNIST手写数字集中的实战(附源码)
854 0
|
机器学习/深度学习 算法 TensorFlow
秒懂算法 | MNIST手写体识别
来源于谷歌的TensorFlow是目前Python编程领域最热门的深度学习框架。Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow。
433 0
秒懂算法  | MNIST手写体识别
|
机器学习/深度学习 算法 数据库
基于mnist手写数字数据库识别算法matlab仿真,对比SVM,LDA以及决策树
基于mnist手写数字数据库识别算法matlab仿真,对比SVM,LDA以及决策树
|
机器学习/深度学习 算法 数据可视化
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
663 0
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
|
机器学习/深度学习 算法
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
734 0
|
8月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
464 2
|
9月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
377 3
|
8月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
360 8