十四、文件读取流程

多线程+队列

第一阶段:构造文件名队列

File_queue=Tf.train.string_input_producer(string_tensor,shuffle=True)

String_tensor:含有文件名+路径的1阶张量

Num_epochs:过几遍数据,默认无限过数据

Return:文件队列

第二阶段:读取与解码

文本文件

读取:Tf.TextLineReader()

解码:tf.decode_csv()

图片文件

读取:tf.WholeFileReader()

解码:tf.image.decode_jpeg(contents)/tf.image.decode_png(contents)

二进制文件

读取:tf.FixedLengthRecordReader(record_bytes)

解码:tf.decode_raw()

TFRecords文件

读取:tf.TFRecordReader()

共同的读取方法:key,value=读取器.read(file_queue)

默认都解码成tf.uint8类型

第三阶段:批处理队列

Tf.train.batch(tensors,batch_size,num_threads=1,capacity=32,name=None)

Tensors:可以是包含张量的列表,批处理的内容放到列表当中

Batch_size:从队列中读取的批处理大小

Num_threads:进入队列的线程数

Capacity:整数,队列中元素的最大数量

Return:tensors

Tf.train.shuffle_batch()

启动运行这些队列操作的线程

Tf.train.QueueRunner()

开启会话:

Tf.train.start_queue_runners(sess=None,coord=None)

Sess:所在的会话

Coord:线程协调器

Tf.train.Coordinator()

Request_stop():请求停止

Should_stop():询问是否结束

十五、神经网络基础

输入层,隐藏层、输出层

感知机==逻辑回归

线性加权=logits=sigmod

神经网络主要用途在于分类

神经网络原理:

损失函数

交叉熵损失

总损失——求平均

最小二乘法——线性回归的损失——均方误差

优化损失函数

Tf.nn.softmax_crose_entropy_with_logits(labels=None,logits=None,name=None)

计算logits和labels之间的交叉损失熵

Labels:标签值

Logits:样本加权之后的值

Return:返回损失值列表

Tf.reduce_mean(input_tensor)

计算张量的尺寸的元素平均值

十六、Mnist手写数字识别

Mnist数据获取API

Mnist手写数字识别

网络设计

全连接层设计

流程

完善模型功能

如何计算准确率

增加变量tensorboard显示

增加模型保存模型

增加模型预测结果输出

完善代码

准确率计算:

(1)比较输出结果最大值所在位置和真实值的的最大所在位置

Tf.equal(Tf.argmax(y_true,1),tf.argmax(y_predict,1)) 一致返回true

  1. 求平均

十七、卷积神经网络

传统意义上的多层神经网络:输入层、隐藏层、输出层。隐藏层根据需要来定

卷积神经网络CNN:加入有效的特征学习部分,在原来的全连接层前面加入了卷积层和池化层。卷积神经网络出现,使得神经网络层数加深。

输入层

隐藏层

卷积层

激活层

池化层

Pooling layer

subsample

全连接层

输出层

卷积神经网络原理:

结构:

卷积层

作用:通过在原始图像上平移来提取特征

激活层

作用:增加非线性分割能力

池化层

作用:减少学习的参数,降低网络的复杂度(最大池化和平均池化)

全连接层

作用:进行损失计算并输出分类结果

十八、卷积层(convolutional Layer

卷积核 – filter - 过滤器 – 卷积单元 - 模型参数

四大要素:

个数

大小

步数

零填充的大小

零填充就是在图片像素外围填充一圈值为0的像素

如何计算输出图像的大小:

输入体积大小H1,W1,D1

四个超参数:

Filter数量K

Filter大小F

步长S

零填充大小P

输出体积大小H2,W2,D2

H2=(H1-F+2P)/S+1

W2=(W1-F+2P)/S+1

D2=K

卷积网络API:

Tf.nn.conv2d(input,filter,strides=,padding=,name=None)

Input:输入张量,具有[batch,height,width,channel]类型为float32,64

Filter:指定过滤器的权重数量,[height,width,in_channels,out_channels]

Strides:步长strides=[1,stride,stride,1]

Padding:零填充 “SAME””VALID”

“SAME”:越过边缘取样

“VALID”:不越过边缘取样

总结:

  1. 掌握filter要素的相关计算公式
  2. Filter大小:1*1,3*3,5*5
  3. 每个过滤器会带有若干权重和1个偏置

十九、激活函数

Sigmoid缺点:

  1. 计算量相当大
  2. 反向传播,梯度消失
  3. 输入的值的范围[-6,6]

Relu=max(0,x)

Relu优点:

  1. 有效解决梯度消失的问题
  2. 计算速度快
  3. 图像没有负的像素值

API:tf.nn.relu(features,name=none)

Features:卷积后加上偏置的结果

二十、池化层

最主要的作用是特征提取

Pooling的方法很多,通常采用最大池化:

Max_pollong:取池化窗口的最大值

Avg_polling:取池化窗口的平均值

API:tf.nn.max_pool(value,ksize=,strides=,padding=)

Value:4-D Tensor形状[bath,height,width,channels]

Channels:并不是原始图片的通道数,而是多少filter观察

Ksize:池化窗口大小,[1,ksize,ksize,1]

Strides:步长大小,[1,strides,strides,1]

Padding:”SAME””VALID”,默认使用“SAME”

全连接层(Full Connection)起到分类器的作用

运用公式求解输出图片大小:卷积向下取整,池化向上取整

网络的优化和改进:

初始参数的大小缩小

模型大小参数的缩小

使用改进版SGD算法

对于深度网络使用bath normalization或者droupout层(防止过拟合)

验证码识别流程分析:

  1. 读取图片数据
  2. 解析csv文件,将标签值对应
  3. 将filename和标签值联系起来
  4. 构建卷积神经网络
  5. 构造损失函数(sigmoid交叉熵损失                                  )
  6. 优化损失
  7. 计算准确率
  8. 开启会话开启线程

TensorFlow1深度学习基础(笔记二)相关推荐

  1. 深度学习基础笔记——激活函数

    相关申明及相关参考: 体系学习地址 主要学习笔记地址 激活函数,你真的懂了吗? - 知乎 (zhihu.com) 聊一聊深度学习的activation function - 知乎 (zhihu.com ...

  2. 深度学习基础笔记——前向传播与反向传播

    相关申明及相关参考: 体系学习地址 主要学习笔记地址 由于是文章阅读整合,依据个人情况标注排版, 不确定算不算转载,主要学习围绕AI浩的五万字总结,深度学习基础 如有侵权,请联系删除. 1前向传播与反 ...

  3. 深度学习基础笔记(MLP+CNN+RNN+Transformer等等)

    提示:本人还在学习当中,所作笔记仅供大家参考,若有问题欢迎大家指出! 目录 专业词汇 基础神经网络 感知机 多层感知机MLP 卷积神经网络CNN 激活函数 正则化 最优化方法 生成模型GAN 自然语言 ...

  4. 深度学习基础(二)激活函数

    激活函数(也被称为激励函数)的意义就是加入非线性因素,使得神经网络具有非线性表达的能力.其必要条件是激活函数的输入和输出都是可微的,因为神经网络要求处处可微.(可微是指函数的各个方向可导,可微大于等于 ...

  5. matlab中的pred,Matlab深度学习基础笔记-2

    笔记来源于matlab官网,不足之处还请提出.. 1.4检查预测 Prediction scores 使用classify可以获得所有类别的预测值,存储在数组scrs中: [pred scrs] = ...

  6. 深度学习基础(二)—— 从多层感知机(MLP)到卷积神经网络(CNN)

    经典的多层感知机(Multi-Layer Perceptron)形式上是全连接(fully-connected)的邻接网络(adjacent network). That is, every neur ...

  7. Python深度学习基础(二)——反向传递概念透彻解析以及Python手动实现

    反向传递概念透彻解析以及Python手动实现 前言 最简单的反向传递 乘法层 加法层 激活函数的反向传递 Relu层 Sigmoid层 带交叉熵误差的SoftMax层 前言 我们在感知机中采用了梯度下 ...

  8. 深度学习入门笔记(二):神经网络基础

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  9. 深度学习入门笔记系列 ( 二 )——基于 tensorflow 的一些深度学习基础知识

    本系列将分为 8 篇 .今天是第二篇 .主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 . 1.Tensor .Flow .Session .Graphs TensorFlo ...

最新文章

  1. Jchatting通过Sina SAE云开发平台高级开发者认证
  2. 【树型DP】BZOJ1564 二叉查找树(noi2009)
  3. 快速构建Windows 8风格应用31-构建磁贴
  4. 7-19 谁先倒 (15 分)
  5. SQL*Plus 系统变量之32 - NEWP[AGE]
  6. AlphaGo来了,终结者不远了
  7. ESP32S 数据手册
  8. 【Java】9、Java IO 流
  9. 指纹识别综述(5): 分类与检索
  10. IOS版aplayer使用教程_Google地球 安卓手机版(教程)流畅使用
  11. 如有需要跟我学习 触摸精灵软件的朋友请加我QQ 811037998 备注来源 CSDN
  12. 下载全球国家shp数据(公路、铁路、河流等)的网站
  13. 07.从密码学看进制转化
  14. 数据压缩原理与应用 WAV文件的分析
  15. 最小操作数,木块砌墙问题
  16. 后台java 实现验证码生成
  17. RF化合物半导体市场规模将在2021年达到110亿美元
  18. 一文了解RPA「财务机器人」 自动运行,效率+1+1+1……
  19. 数据库范式4nf什么意思_什么是第一范式(1NF)?
  20. vCenter的证书过期问题

热门文章

  1. 微软确认:从4月13日起,Win10系统将强制卸载旧版Edge浏览器
  2. 第一集 斗罗世界 第八章
  3. mysql是什么?mysql的特点
  4. 【数据结构-树】哈夫曼树及其应用
  5. 利用Service实现简单的音乐播放功能
  6. 春招旺季提前,北上深杭平均招聘月薪过万
  7. 洛谷:P1424 小鱼的航程(改进版) JAVA
  8. 贝尔曼-福特算法(Bellman-Ford)最短路径问题
  9. 【卷积神经网络】12、激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / Mish
  10. python入门教程慕课网_秒懂系列 | 史上最简单的Python Django入门教程