北大人工智能课程学习记录:神经网络八股

模块化设计神经网络

前向传播

前向传播的目的是搭建网络,设计网络结构。

一般新建一个forward.py文件描述前向传播过程,

一般新建三个函数,forward给出前向传播的设计,给出从输入到输出的通路

定义的时候要记住forward有两个参数,一个是x,一个正则化权重regularizer

forward函数定义了前向传播过程,包括wby返回y

第二个函数与参数w有关,有两个参数

包括w的形状shape,正则化权重regularizer。

这个函数需要给w赋初值,使用tf.Variable()实现,括号中写赋初值的方法。

这个函数还要加一句,把每个w的正则化损失加到总损失losses中,返回w

第三个函数与参数b有关,b是偏差。其参数是b的形状shape,就是某层中b的个数。

这个函数要给b赋初值tf.Variable(),返回b。



反向传播

反向传播就是训练网络,优化网络参数。

新建一个backward.py文件,描述反向传播过程。

在backward函数中,使用placeholder给输入x和y_占位。


利用forward模块复现前向传播设计的网络结构。计算求得y。

定义轮数计数器global_step。定义损失函数loss,loss函数可以

选择均方误差,自定义或交叉熵,表示计算的y与标准答案y_的差距。



可能使用正则化,指数衰减学习率、滑动平均公用g s。



反向传播函数要定义训练过程train_step。

用with结构初始化所有参数,用for循环迭代steps轮。每轮会调用sess.run

执行训练过程。没运行一定训练轮数,打印当前loss信息。


python引入了来判断所运行文件是否是主文件。

如果是主文件则执行backward函数。

最后把opt4_7.py(分界程序)用模块化程序实现。

代码实现:


数据集生成文件:


前向传播文件:


反向传播文件:



运行结果:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值