DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比

简介: DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比

输出结

image.png

 

设计思

image.png

image.png

 

核心代

 

class TwoLayerNet:

   def __init__(self, input_size, hidden_size, output_size, weight_init_std = 0.01):

       self.params = {}

       self.params['W1'] = weight_init_std * np.random.randn(input_size, hidden_size)

       self.params['b1'] = np.zeros(hidden_size)

       self.params['W2'] = weight_init_std * np.random.randn(hidden_size, output_size)

       self.params['b2'] = np.zeros(output_size)

       self.layers = OrderedDict()

       self.layers['Affine1'] = Affine(self.params['W1'], self.params['b1'])

       self.layers['Relu1'] = Relu()

       self.layers['Affine2'] = Affine(self.params['W2'], self.params['b2'])

       self.lastLayer = SoftmaxWithLoss()

     

   def predict(self, x):

       for layer in self.layers.values():

           x = layer.forward(x)

     

       return x

     

   # x:输入数据, t:监督数据

   def loss(self, x, t):

       y = self.predict(x)

       return self.lastLayer.forward(y, t)

 

   def accuracy(self, x, t):

       y = self.predict(x)

       y = np.argmax(y, axis=1)

       if t.ndim != 1 : t = np.argmax(t, axis=1)

     

       accuracy = np.sum(y == t) / float(x.shape[0])

       return accuracy

     

     

   def gradient(self, x, t):

       self.loss(x, t)

       dout = 1

       dout = self.lastLayer.backward(dout)

     

       layers = list(self.layers.values())

       layers.reverse()

       for layer in layers:

           dout = layer.backward(dout)

       grads = {}

       grads['W1'], grads['b1'] = self.layers['Affine1'].dW, self.layers['Affine1'].db

       grads['W2'], grads['b2'] = self.layers['Affine2'].dW, self.layers['Affine2'].db

       return grads

network_batch = TwoLayerNet(input_size=784, hidden_size=50, output_size=10)

grad_numerical = network_batch.numerical_gradient_api(x_batch, t_batch)  

grad_backprop = network_batch.gradient(x_batch, t_batch)    


相关文章
|
机器学习/深度学习 人工智能 自然语言处理
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
1409 0
AI顶会ICLR 2022 | WPipe 蚂蚁集团大规模 DNN 训练的流水线并行技术
|
机器学习/深度学习 数据采集 监控
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
**神经网络与AI学习概览** - 探讨神经网络设计,包括MLP、RNN、CNN,激活函数如ReLU,以及隐藏层设计,强调网络结构与任务匹配。 - 参数初始化与优化涉及Xavier/He初始化,权重和偏置初始化,优化算法如SGD、Adam,针对不同场景选择。 - 学习率调整与正则化,如动态学习率、L1/L2正则化、早停法和Dropout,以改善训练和泛化。
538 0
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
|
机器学习/深度学习 数据采集 存储
AI遮天传 DL-反馈神经网络RNN
AI遮天传 DL-反馈神经网络RNN
AI遮天传 DL-反馈神经网络RNN
|
机器学习/深度学习 算法 数据可视化
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
724 0
基于PaddlePaddle框架对CIFAR-100数据集在简易CNN(LeNet-5修改)和简易DNN的效果对比
|
机器学习/深度学习 自然语言处理 API
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
726 0
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
|
机器学习/深度学习 计算机视觉
DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略
DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略
DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略
|
移动开发 算法 算法框架/工具
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)
|
机器学习/深度学习 移动开发 算法框架/工具
DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)
DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)
DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)
|
机器学习/深度学习 数据可视化 算法
DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)
DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)
DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)
|
机器学习/深度学习
【DL】神经网络中卷积层输出大小尺寸计算
神经网络中卷积层输出大小尺寸计算

热门文章

最新文章