卷积神经网络:使用卷积神经网络实现mnist数据集识别代码

1.用到的点介绍:
tensor:张量
operation: (op),专门运算的操作节点,所有操作都是一个op
graph:图,你的整个程序的结构,一组表示tf.Operation计算单位的对象和tf.tensor表示操作之间流动的数据单元的对象
获取调用:
(1) tf.get_default_graph()
(2) op、sess或者tensor的graph属性

session:会话:运算程序的图
placeholder提供占位符,run时候通过feed_dict指定参数
Name:张量的字符串描述
Shape:张量形状,0维:(),1维:(5),2维(5,6),3维:(2,3,,4)2张三行四列的表
reshape:把原来的数据通过直接修改
TensorFlow中的形状:
动态形状和静态形状:在于有没有生成一个新的张量数据
静态形状:一旦张量形状固定,就不能再次设置,不能跨维度修改,创建一个张量,初始状态的形状,tf.Tensor.get_shape(获取静态形状),tf.Tensor.set_shape:更新Tensor对象的静态形状
动态形状:张量形状固定后,改变的时候一定要注意元素数量要匹配。维度可以修改。可以创建一个新的形状,一种描述原始张量在执行过程中的一种形状(动态变化),tf.reshape:创建一个具有不同动态形状的新张量
提供给tensor运算的数学函数https://www.tensorflow.org/versions/r1.0/api_guides/python/math_ops
卷积神经网络结构:
卷积层、激活函数、池化层、全连接层
有的大型网络会有dropout层,用来减少过拟合
padding:卷积核在提取特征映射时的动作
卷积层的零填充:
1.SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致
2.VALID:不越过边缘取样,取样的面积小于输入的图像的像素宽度
sigmoid&ReLU激活函数:
卷积不是为了减少数据量,加上激活函数(sigmoid,relu)才会过滤,池化层用来减少参数量,
学习率不需要搜索,很大会造成梯度爆炸
增加激活函数:增加网络的非线性分割能力
采用sigmoid等函数,反向传播求误差梯度时,计算第一:量相对大,而采用Relu激活函数,整个过程的计算量节省很多
第二:对于深层网络,sigmoid函数反向传播时,很容易出现梯度爆炸的情况
池化:
主要作用:特征提取,通过去掉feature map中不重要的样本,减少参数量
最常用的是maxpooling(),
tf.nn.max_pool(value,ksize=,strides=,padding=,name=None)
value:4-D Tensor形状[batch,height,width,channels]
ksize:池化窗口大小,[1,ksize,ksize,1]
strides:步长大小,[1,strides,strides,1]
padding:“SAME”,“VALID”,
全连接层:
前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权,最后的全连接在整个卷积神经网络中起到“分类器”的作用。
使用卷积神经网络实现手写数字识别:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow_core.python.training import saver
from deep.mnist import full_connected
#定义一个初始化权重的函数
def weight_variables(shape):
    w = tf.compat.v1.Variable(tf.random_normal_initializer(shape=shape, mean=0.0, stddev=1.0))
    return w
#定义一个初始化偏置的函数
def bias_variables(shape):
    b = tf.compat.v1.Variable(tf.constant(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值