一、引言
经过一段时间tensorflow的学习,对全连接神经网络代码的框架有了一定的了解。通过dropout实验来解析代码结构。
二、代码释义
1、定义神经网络层
def add_layer_dropput(input, in_size, out_size,keep_prob = None,activation_function=None):
Weights = Variable(random_normal([out_size, in_size]))
Biases = Variable(zeros([out_size, 1]) + 0.1)
Wx_plus_b = matmul(Weights, input) + Biases
Wx_plus_b = nn.dropout(Wx_plus_b,keep_prob= keep_prob)
if activation_function == None:
output = Wx_plus_b
else:
output = activation_function(transpose(Wx_plus_b))
output = transpose(output)
return output
在其中定义一个神经网络层应有的权重Weights,偏置Biaes,输出Wx_plus_b,激活函数输出output。数据的格式是一列为一个样本,格式详见bp反向传播+3层全连接神经网络+softmax交叉熵损失+代码实现详解,相应的权重和偏置都会有所调整。至于output这里为什么会有转置,请转到Tensorflow解决训练误差大于测试误差查看。
3、定义神经网络类
class neural_network_3(object):
def __init__(self,in_size,hidden_size,ou

本文详细介绍了如何使用TensorFlow实现带Dropout的全连接神经网络,通过实验对比展示了Dropout在防止过拟合方面的显著效果。
最低0.47元/天 解锁文章
1448

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



