DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
导读
神经网络算法封装为层级结构的作用。在神经网络算法中,通过将神经网络的组成元素实现为层,可以高效地计算梯度(反向传播法)。通过比较数值微分和误差反向传播法的结果,可以确认误差反向传播法的实现是否正确(梯度确认)。
目录
输出结果
设计思路
核心代码
代码实现过程错误记录
输出结果
设计思路
核心代码
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 accuracydef gradient(self, x, t):self.loss(x, t)dout = 1dout = 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'].dbgrads['W2'], grads['b2'] = self.layers['Affine2'].dW, self.layers['Affine2'].dbreturn gradsnetwork_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)
代码实现过程错误记录
出现错误,待解决!!!
Traceback (most recent call last):
File "F:\File_Python\Python_daydayup\190316.py", line 281, in <module>
grad = network.gradient(x_batch, t_batch)
File "F:\File_Python\Python_daydayup\190316.py", line 222, in gradient
self.loss(x, t)
File "F:\File_Python\Python_daydayup\190316.py", line 193, in loss
return self.lastLayer.forward(y, t) # ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ------部分更改
File "F:\File_Python\Python_daydayup\190316.py", line 132, in forward
self.loss = cross_entropy_error(self.y, self.t)
File "F:\File_Python\Python_daydayup\190316.py", line 39, in cross_entropy_error
return -np.sum(np.log(y[np.arange(batch_size), t.astype('int64')] + 1e-7)) / batch_size #t.astype('int64')
IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (100,) (100,10)
相关文章
DL之DNN:自定义2层神经网络TwoLayerNet模型(层级结构更高效)算法对MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比相关推荐
- DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练.预测 导读 计算图在神经网络算法中的作用.计算图的节点是由局部计算构成的. ...
- DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测
DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...
- DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程
DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程 目录 输出结果 设计思路 核心代码 更多输出 相关文章: ...
- DL之DNN优化技术:神经网络算法简介之GD/SGD算法的简介、代码实现、代码调参之详细攻略
DL之DNN优化技术:神经网络算法简介之GD/SGD算法的简介.代码实现.代码调参之详细攻略 目录 GD算法的简介 GD/SGD算法的代码实现 1.Matlab编程实现 GD算法的改进算法 GD算法中 ...
- DL之CNN:自定义SimpleConvNet【3层,im2col优化】利用mnist数据集实现手写数字识别多分类训练来评估模型
DL之CNN:自定义SimpleConvNet[3层,im2col优化]利用mnist数据集实现手写数字识别多分类训练来评估模型 目录 输出结果 设计思路 核心代码 更多输出 输出结果 设计思路 核心 ...
- DL之DNN优化技术:神经网络算法简介之GD/SGD算法(BP的梯度下降算法)的简介、理解、代码实现、SGD缺点及改进(Momentum/NAG/Ada系列/RMSProp)之详细攻略
DL之DNN优化技术:神经网络算法简介之GD/SGD算法(BP的梯度下降算法)的简介.理解.代码实现.SGD缺点及改进(Momentum/NAG/Ada系列/RMSProp)之详细攻略 目录 GD算法 ...
- DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理
DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理 目录 BP类神经网络理解 1.信号正向传播FP 2.误差反向传播BP+GD B ...
- DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】
DL之DNN优化技术:神经网络算法简介之数据训练优化[mini-batch技术+etc] 目录 1.mini-batch技术 输出结果 实现代码 1.mini-batch技术 输出结果 实现代码 # ...
- 排序层-深度模型-2015:AutoRec【单隐层神经网络推荐模型】
AutoRec模型是2015年由澳大利亚国立大学提出的. 它将 自编码器(AutoEncoder ) 的思想和协同过滤结合,提出了一种单隐层神经网络 推荐模型.因其简洁的网络结构和清晰易懂的模型原理, ...
最新文章
- c语言 sysinfo_操作系统:内存分配(C语言 winapi)
- win10 远程登录 无密码用户
- jni 入门 android的C编程之旅 ---环境搭建helloworld
- eclipse 使用指南
- 平行志愿遵循分数优先php,2020平行志愿的录取规则是什么有哪些优势
- 简单mysql数据库备份一例及crontab说明
- 笔试题:简述以下两个for循环的优缺点
- 一个简单LEGv8处理器的Verilog实现【二】【指令相关基础知识与实验分析】
- 【数学建模】模拟冰山运输系统含Matlab源码
- 芯科Zigbee应用程序框架
- 【修真院java小课堂】什么是restful?rest的请求方法有哪些,有什么区别?
- php文字加边框,word怎么给段落加边框
- ZOJ 1138 Symbolic Derivation
- 计算机中的八卦知识,论八卦与电脑的关系
- 分析非结构化数据的10个步骤
- CSS基础之 背景属性设置
- ipad发布会ipad_如何在iPad上调试网站
- 石油大学专升本计算机课程-计算机应用基础(1)
- 第2-2-1章 常见组件与中台化-中台概述
- 联发科的原厂芯片资料下载?那里有这些资料?最全的资料整理在这里
热门文章
- Linux 内核引导选项简介 *********很多常用的受益匪浅
- 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...
- Android之ListView的getItemViewType和getViewTypeCount
- 投资者建议三星电子一分为二 股价创历史新高
- 调试node服务器-过程
- 计算机网络 网络设备命令 数据链路层解析
- 给wxPython事件处理函数传递参数
- 在华为写了 13 年代码,都是宝贵的经验
- 老大难的分布式锁与幂等性问题,如何解决?长文干货!
- 从一个故障说说Java的三个BlockingQueue