用tensorflow搭建全连接神经网络实现mnist数据集的识别

说明:本代码来自于北京大学曹健老师的MOOC人工智能实践:Tensorflow笔记第五讲

I 前向传播网络搭建

在mnist_forward.py中搭建两层全连接网络,这里面就是定义层数,节点数,激活函数这些。
输入节点数目就是mnist数据集的图片28*28大小,用784行的向量作为输入。
第一层y1=relu(x*w1+b1 )其中y1为500行的向量。那么w1里面就有784*500个变量啦~~b1是500个变量。然后经过一个relu激活函数。
第二层就是从500节点变换到10个节点的输出,输出为标签,表示0-9手写数字出现的概率。y=y1*w2+b2。w2就是500*10的矩阵。b2是10行的向量。没有激活函数。
这里面w1 b1 w2 b2就是要训练的参数
采用了正则化
正则化就是在损失函数中给每个参数w加上权重,引入模型复杂度指标,从而抑制模型噪声,减少过拟合。这里使用的是L2正则化,即w的L2范数也是loss的一部分,也就是说在求解最优w的过程中,要使得w的值尽量在0附近。
在这里插入图片描述

import tensorflow as tf

INPUT_NODE = 784
OUTPUT_NODE = 10
LAYER1_NODE = 500

def get_weight(shape,regularizer):
    w = tf.Variable(tf.truncated_normal(shape,stddev=0.1))
    # 截断正态分布
    if reg
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值