搭建模块化神经网络八股

一、搭建模块化神经网络八股

1,前向传播:由输入到输出,搭建完整的网络结构

描述前向传播的过程需要定义三个函数:

def forward(x,regularizer):

w=

b=

y=

return y

第一个函数forword()完成网络结构的设计,从输入到输出搭建完整的网络结构,实现前向传播过程。该函数中,参数x为输入,regularizer为正则化权重,返回值为预测或分类结果y。

def get_weight(shape,regularizer):

w=tf.Variable()

tf.add_to_collection('losses',tf.contrib.layers.12_regularizer(regularizer)(w))

return w

第二个函数get_weight()对参数w设定,该函数中,参数shape表示参数w的形状,regularizer表示正则化权重,返回值为参数w。其中,tf.variable()给参数w赋初值,tf.add_to_collection()表示将参数w正则化损失加到总损失losses中。

def get_bias(shape):

b=tf.Variable()

return b

第三个函数get_bias()对参数b进行设定,该函数中,参数shape表示参数b的形状,返回值为参数b,其中,tf.Variable()表示给b赋初值。

2,反向传播:训练网络,优化网络参数,提高模型准确性。

get backward():

x=tf.placeholder()

y_=tf.placeholder()

y=forward.forward(x,REGULARIZER)

global_step=tf.Variable(0,trainable=False)

loss=

函数backward()中,placeholder()实现对数据集x和标准答案y_占位,forward.forward()实现前向传播的网络结构,参数global_step表示训练轮数,设置为不可训练型参数。

在训练网络模型时,常将正则化、指数衰减学习率和滑动平均这三个方法作为模型优化方法。

1)在tensorflow中,正则化表示为:损失值+正则化项

首先计算预测结果与标准答案的损失值

其次,总损失值为预测结果与标准答案的损失值加上正则化项

2)在tensorflow中,指数衰减学习率表示为:

3)在tensorflow中,滑动平均表示为:

其中,滑动平均和指数衰减学习率中的global_step为同一个参数。

3,用with结构初始化所有参数

with tf.Session() as sess:

      init_op=tf.global_variables_initializer()

             sess.run(init_op)

      for i in range(STEPS):

             sess.run(train_step,feed_dict={x: ,y_: })

                       for i %轮数 ==0:

                              print

其中,with结构用于初始化所有参数信息以及实现调用训练过程,并打印出loss值。

4,判断python运行文件是否为主文件

if __name=='__main__':

backward()

该部分用来判断python运行的文件是否为主文件,若是主文件,则执行backwar()函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值