本文记录tensorflow搭建简单神经网络,并进行模块化处理,目的在于总结并提取简单神经网络搭建的基本思想和方法,提炼核心结构和元素,从而能够移植到日后深入学习中去。
1 模块提炼
1.1 template_forward.py
a 结构分析
forward.py用于构建网络图结构,具体分为以下几步:
forward()主方法– 设计网络层数和维度get_weight()– 传入维度和正则化信息,生成符合要求的weightget_bias()– 传入维度信息,生成符合要求的bias
b 代码分析
import tensorflow as tf
# 主方法,定义前向传播网络结构
def forward(x, regularizer):
w =
b =
y =
return y
# 获取权重变量
def get_weight(shape, regularizer=None):
"""
传入指定的shape和regularizer(lambda)
返回tensorflow的Variable类型变量,用于优化weight
"""
w = tf.Variable()
if regularizer:
tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(regularizer)(w))
return w
# 获取偏置变量
def get_bias(shape):
"""
传入指定的shape
返回tensorflow的Variable类型变量,用于优化bias
"""
b = tf.Variable( )
return b
1.2 template_backward.py
a 结构分析
backward.py用于构建网络图结构,具体分为以下几步:
- 定义常量:
STEPS:总训练轮数BATCH_SIZE:每batch训练样本数LEARNING_RATE_BASE:学习率初值,作为指数衰减学习率的初始值LEARNING_RATE_DECAY:学习率衰减基数,作为指数衰减项的基底REGULARIZER:正则化强度 λ λ
backward()主方法:
- 定义常量:

本文介绍了如何使用tensorflow构建模块化的全连接神经网络,对MNIST手写数字进行识别。文章详细分析了template_forward.py和template_backward.py中的网络结构和代码,包括网络层数与维度设计、权重与偏置生成,以及训练过程中的学习率衰减和正则化策略。此外,还探讨了forward.py、backward.py和evaluate.py在模块化编写中的作用。
最低0.47元/天 解锁文章
3543

被折叠的 条评论
为什么被折叠?



