tensorflow之四运转方式入门
- mnist.py 的目的
- fully_connected_feed.py的目的
- 只需要直接运行fully_connected_feed.py文件,就可以开始训练:
在这里插入代码片
- 在run_training()方法的一开始,什么函数会确保你的本地训练文件夹中,已经下载了正确的数据,然后将这些数据解压并返回一个含有什么实例的字典。
- 什么标记是用于单元测试的,读者可以不必理会。
- data_sets.train的目的
- data_sets.validation的目的
- data_sets.test的目的
- 什么函数将生成两个tf.placeholder操作,定义传入图表中的什么参数
- shape参数中包括什么值,后续还会将实际的训练用例传入图表。
在这里插入代码片
- 在训练循环(training loop)的后续步骤中,什么会被切片,以符合每一个操作所设置的batch_size值
- 然后使用什么参数,将数据传入sess.run()函数。
- 在为数据创建占位符之后,就可以运行mnist.py文件,经过三阶段的模式函数操作:什么, 什么,和什么。图表就构建完成了。
- 什么函数会尽可能地构建图表,做到返回包含了预测结果(output prediction)的Tensor。
- 它接受什么为输入,在此基础上借助什么激活函数
- 构建一对什么,以及一个有着几个节点(node)、指明了什么的线性层。
- 每一层都创建于一个唯一的什么之下,创建于该作用域之下的所有元素都将带有其前缀
在这里插入代码片
- 在定义的作用域中,每一层所使用的权重和偏差都在哪里生成,并且包含了各自期望的什么。
在这里插入代码片
- 当这些层是在hidden1作用域下生成时,赋予权重变量的独特名称将会是什么?
- 每个变量在构建时,都会获得什么?
- 在这种最常见的情况下,通过什么函数初始化权重变量,
- 赋予的shape则是一个二维tensor,其中第一个维度代表什么,第二个维度代表什么?
- 对于名叫hidden1的第一层,相应的维度则是什么?
- tf.truncated_normal初始函数将根据所得到的均值和标准差,生成什么?
- 通过什么函数初始化偏差变量(biases),确保所有偏差的起始值都是几,
- 而它们的shape则是什么?
- 图表的三个主要操作,分别是什么?
在这里插入代码片
- loss()函数通过添加什么,进一步构建图表。
- 首先,labels_placeholer中的值,将被编码为什么?
- 例如,如果类标识符为“3”,那么该值就会被转换为什么?
- 之后,又添加一个tf.nn.softmax_cross_entropy_with_logits操作,用来比较什么?
在这里插入代码片
- 使用tf.reduce_mean函数,计算batch维度(第一维度)下交叉熵(cross entropy)的平均值,将将该值作为总损失
在这里插入代码片
- 什么函数添加了通过梯度下降(gradient descent)将损失最小化所需的操作。
- 首先,该函数从什么函数中获取损失Tensor
- 将其交给什么,后者在与什么(见下文)配合使用时,可以向事件文件(events file)中生成汇总值(summary values
- 每次写入汇总值时,它都会释放什么?
- 接下来,我们实例化一个tf.train.GradientDescentOptimizer,负责按照所要求的学习效率(learning rate)应用梯度下降法(gradients)
在这里插入代码片
- 之后,我们生成一个变量用于什么?
- 使用什么函数更新系统中的三角权重(triangle weights)、增加全局步骤的操作
- 这个操作被称为 train_op,是TensorFlow会话(session)诱发一个完整训练步骤所必须运行的操作
在这里插入代码片
- 最后,程序返回什么?
- 一旦图表构建完毕,就通过什么文件中的用户代码进行循环地迭代式训练和评估。
- 在run_training()这个函数的一开始,是一个Python语言中的with命令,这个命令表明什么?
- 什么是一系列可以作为整体执行的操作。
- TensorFlow的大部分场景只需要依赖什么?
- 完成全部的构建准备、生成全部所需的操作之后,我们就可以创建一个tf.Session,用于运行图表。
在这里插入代码片
- 另外,也可以利用with代码块生成Session,限制作用域:
在这里插入代码片
- Session函数中没有传入参数,表明该代码什么?
- 生成会话之后,所有tf.Variable实例都会立即通过调用各自初始化操作中的sess.run()函数进行初始化
在这里插入代码片
- sess.run()方法将会运行什么?
- 在初次调用时,init操作只包含了什么?
- 图表的其他部分不会在这里,而是在哪
- 完成会话中变量的初始化之后,就可以干什么?
- 训练的每一步都是通过用户代码控制,而能实现有效训练的最简单循环就是
在这里插入代码片
- 教程中的例子要更为复杂一点,原因是什么?
- 执行每一步时,我们的代码会生成什么?
- 这些例子的哈希键就是什么?
- 什么 函数会查询给定的DataSet
- 索要下一批次batch_size的图像和标签,与占位符相匹配的Tensor则会包含什么
在这里插入代码片
- 然后,以占位符为哈希键,创建一个Python字典对象,键值则是其代表的反馈Tensor
在这里插入代码片
- 这个字典随后作为什么参数,传入sess.run()函数中,为这一步的训练提供输入样例。
- 在运行sess.run函数时,要在代码中明确其需要获取的两个值:
在这里插入代码片
- 因为要获取这两个值,sess.run()会返回什么?
- 其中每一个Tensor对象,对应了什么?
- 这些数组中包含了什么?
- 由于train_op并不会产生输出,其在返回的元祖中的对应元素就是几,所以会怎样。
- 如果模型在训练中出现偏差,loss Tensor的值可能会变成什么,所以我们要获取它的值,并记录下来
- 假设训练一切正常,没有出现NaN,训练循环会怎样
在这里插入代码片
- 为了释放TensorBoard所使用的事件文件(events file),所有的即时数据(在这里只有一个)都要在图表构建阶段合并至一个操作(op)中。
在这里插入代码片
- 在创建好会话(session)之后,可以实例化一个tf.train.SummaryWriter,用于写入包含了图表本身和即时数据具体值的事件文件。
在这里插入代码片
- 最后,每次运行summary_op时,都会往事件文件中写入最新的即时数据,函数的输出会传入事件文件读写器(writer)的add_summary()函数。
在这里插入代码片
- 事件文件写入完毕之后,可以就训练文件夹打开一个什么,查看即时数据的情况。
- 为了得到可以用来后续恢复模型以进一步训练或评估的检查点文件(checkpoint file),我们实例化一个tf.train.Saver。
在这里插入代码片
- 在训练循环中,将定期调用saver.save()方法,向训练文件夹中写入包含了当前所有可训练变量值得检查点文件。
在这里插入代码片
- 这样,我们以后就可以使用saver.restore()方法,重载模型的参数,继续训练。
在这里插入代码片
- 每隔一千个训练步骤,我们的代码会尝试使用训练数据集与测试数据集,对模型进行评估。do_eval函数会被调用三次,分别使用训练数据集、验证数据集合测试数据集
在这里插入代码片
- 在打开默认图表(Graph)之前,我们应该先调用get_data(train=False)函数,抓取测试数据集。
在这里插入代码片
- 在进入训练循环之前,我们应该先调用mnist.py文件中的evaluation函数,传入的logits和标签参数要与loss函数的一致。这样做事为了先构建Eval操作。
在这里插入代码片
- evaluation函数会生成tf.nn.in_top_k 操作,如果在K个最有可能的预测中可以发现真的标签,那么这个操作就会将模型输出标记为正确。在本文中,我们把K的值设置为1,也就是只有在预测是真的标签时,才判定它是正确的。
在这里插入代码片
- 之后,我们可以创建一个循环,往其中添加feed_dict,并在调用sess.run()函数时传入eval_correct操作,目的就是用给定的数据集评估模型。
在这里插入代码片
- true_count变量会累加所有in_top_k操作判定为正确的预测之和。接下来,只需要将正确测试的总数,除以例子总数,就可以得出准确率了。
在这里插入代码片
tensorflow之四运转方式入门相关推荐
- TensorFlow保姆级别教入门,不会就把我头打爆
TensorFlow保姆级别教入门,不会就把我头打爆. 前言: 仓库地址:https://github.com/linxinloningg/tf_project 数据集地址:https://aistu ...
- TensorFlow数据读取方式:Dataset API,以及如何查看dataset:DatasetV1Adapter的方法
TensorFlow数据读取方式:Dataset API Datasets:一种为TensorFlow 模型创建输入管道的新方式.把数组.元组.张量等转换成DatasetV1Adapter格式 Dat ...
- Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介、入门、安装流程之详细攻略
Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介.入门.安装流程之详细攻略 目录 安装流程 1.安装nvidia显卡驱动 2.安装cuda8 3.安装Cudnn 4.Ana ...
- TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN
原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...
- 【tensorflow 读取图片方式】本地文件名读取以及url方式读取
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程.人工智能教程 图片存在形式,一般 ...
- python提取发票信息发票识别_(附完整python源码)基于tensorflow、opencv的入门案例_发票识别二:字符分割...
(附完整python源码)基于tensorflow.opencv的入门案例_发票识别二:字符分割 发布时间:2018-05-14 20:16, 浏览次数:1201 , 标签: python tenso ...
- python之四种方式读取文档
python之四种方式读取文档 第一种:读取纯文本 1:代码 # coding=utf-8 """ @author: jiajiknag 程序功能: 读取txt文件 &q ...
- TensorFlow 教程 --教程--2.5TensorFlow运作方式入门
代码:tensorflow/g3doc/tutorials/mnist/ 本篇教程的目的,是向大家展示如何利用TensorFlow使用(经典)MNIST数据集训练并评估一个用于识别手写数字的简易前馈神 ...
- TensorFlow运作方式入门
Table of Contents 教程使用的文件 准备数据 下载 输入与占位符(Inputs and Placeholders) 构建图表 (Build the Graph) 推理(Inferenc ...
最新文章
- Python操作Zip文件
- 【STL】list基础(转)
- windows平台 python生成 pyd文件
- P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
- 人类一败涂地显示服务器,人类一败涂地怎么开服务器 | 手游网游页游攻略大全...
- 计算机网络管理员高级操作技能考核试卷,高级计算机维修工操作技能考核试卷...
- word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?
- while循环 dowhile循环 for循环(C++)
- 【开源】在线教育系统.net源码-PC端-手机端
- Word 2019如何从任意页开始设置页码?
- 计算机系统常见故障及处理,电脑常见故障以及解决方案都在这里!
- ie8 css hack 只适用ie8的css写法
- 如何在游戏中快速集成聊天功能
- 继电器开关阿里云IOT上云设置操作
- 历经艰难,终成大器!改变,永远不迟!
- pdf合并成一个pdf工具,可以合并pdf的软件哪个好?
- vue中Echarts之省市地图(北京市)展示相关数据
- 机房收费系统之可行性研究报告
- C语言for循环语句及嵌套(误区,易错点要理解)
- 决策树算法中处理噪音点
热门文章
- APT样本分析 -plugx家族RAT⽊⻢
- 台式电子计算机内部电源的电压,电源知识:台式电脑电源中的+12V/+5V/+3.3V都为哪些硬件供电?(2)...
- ML_12 Sum-Produkt Networks 和积网络
- Joplin插件推荐-持续更新
- maven自定义插件-mojo标注和参数
- 2019年南京大学计算机考研分数线,南京大学2019年考研复试分数线已公布
- 如何把文本文档转换成html格式,把固定格式的文本文档转换为Excel电子表格的方法...
- 在数据帧转发过程中源/目标IP地址,源/目标MAC地址的变化释疑---划重点!!!
- 干货!旋转预测能够告诉我们分类器准确度的哪些信息?
- rabbitMQ概述/在springboot下测试五种模式