TensorFlow学习笔记(1)—— 基本概念与框架
入门框架时的常见问题
学习框架的原因?
- 方便、易用
学习框架的哪些知识点?
- 掌握一个项目的基本流程,就知道需要学习哪些知识点了
迅速学习框架的方法
- 根据项目每块流程的需要针对性的学
- 可以看官方的入门教程
TensorFlow快速入门思维导图
(图)
TensorFlow的高级API
TF SLIM:一个可以定义、训练和评估复杂模型的轻量库(用到的时候详细说)
TF Learn(tf.contrib.learn):类似于scikit-learn的接口
其他:Keras等
TensorFlow学习要点
- 数据类型
- 运行机制
- 数据的I/O
- 模型的训练
- 模型的保存
- 模型的调用
TensorFlow的基本开发流程
项目流程
数据预处理->模型训练->模型保存->模型预测
- 数据预处理:数据准备、数据清洗、特征工程、归一化处理
- 神经网络与传统的机器学习不同,不需要做大量特征工程之后喂入特征,只需要设置好网络结构,输入原始数据即可完成训练。
- 可以先对原始数据做归一化的处理,避免训练误差。
编写TensorFlow的两个步骤
- 构建计算图graph
- 使用Session去执行graph中的operation
其中涉及的基本定义
Tensor
类型化的多维数组,是图的边
???是N维的矩阵,可以看做一种符号化的句柄,指向存储运算结果吗,执行之后返回的基本类型,例如numpy的数组、list等
创建方法:
- tf.zeros()
- tf.ones()
- tf.fill()
- tf.constant()
- tf.random_uniform()
- tf.random_normal()
- ......
三个属性:rank、shape、data_type
Rank:指的是数据的数据的维度,与线性代数中的rank不是一个概念
(图)
rank = 0(标量)、1(向量)、2(矩阵)、3~n(n维Tensor)
注意rank与shape之间的关系!
Shape:指的是Tensor每个维度数据的个数,可以用Python的list/tuple表示
Rank和Shape之间的关系:
(图)
Data_type:是指单个数据的类型。常用DT_FLOAT,也就是32位的浮点数。
所有的Types如下:
(图)
Operation
- 执行计算的单元,图的节点
- 是一个符号化的运算过程,是TensorFlow中的基本单元。是Graph中的计算节点,输入和输出均为Tensor
- 创建方法:
- tf.add()
- ......
Graph
一张有边与点的图,其表示了需要进行计算的任务
TensorFlow中使用tf.Graph表示可计算的图,图是由操作Operation和张量Tensor构成的,其中Operation表示图的节点(即为运算单元),而Tensor则表示图的边(即为在Op之间流动的数据单元)
创建方法:
tf.Graph._ init _()(MK语法限制,下划线无空格):创建一个新的空Graph
在TF中本身存在一个默认的Graph,若直接使用则不需要再创建图
在with中调用tf.Graph().as_default()这个方法,可以设置默认的计算图
(图)
Session
称之为会话的上下文,用于执行图
提供Operation执行和Tensor求值的环境
(图)
分布式运算的使用,指定GPU/CPU
释放资源
调用session.close()方法
(图)
使用with tf.Session()创建上下文(Context)来执行,当上下文退出时,资源将自动释放
(图)
三大基本概念之间的关系如下:
(图)
Tensor和Operation都是Graph的对象,Operation是图的节点,而Tensor作为边,将Op连接起来。而Graph又必须在Session中才能执行
例子一
(图)
- 在Tf中定义和执行这个计算图的操作时分开来的。
- 创建一个完整的计算过程:
- 创建Tensor
- 添加Operation
- 创建Session,运行Graph
- 这个图里有3个Operation,输入不是Operation但是输出是,因为输出可以执行计算,但是输入不行。
- Operation添加之后不会立即执行,TensorFlow将等待所有的Operation均添加到Graph中后,根据最终的输出需要运算相应的Operation。
TensorFlow中的基本函数
Veriable
- 作用:保存并且更新参数,保存在内存中
(未完待续)
TensorFlow学习笔记(1)—— 基本概念与框架的更多相关文章
- TensorFlow学习笔记(一)
[TensorFlow API](https://www.tensorflow.org/versions/r0.12/how_tos/variable_scope/index.html) Tensor ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- TensorFlow学习笔记——LeNet-5(训练自己的数据集)
在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...
- TensorFlow学习笔记4-线性代数基础
TensorFlow学习笔记4-线性代数基础 本笔记内容为"AI深度学习".内容主要参考<Deep Learning>中文版. \(X\)表示训练集的设计矩阵,其大小为 ...
- TensorFlow学习笔记1-入门
TensorFlow学习笔记1-入门 作者: YunYuan *** 写在前面 本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与 ...
- Tensorflow学习笔记No.4.1
使用CNN卷积神经网络(1) 简单介绍CNN卷积神经网络的概念和原理. 已经了解的小伙伴可以跳转到Tensorflow学习笔记No.4.2学习如和用Tensorflow实现简单的卷积神经网络. 1.C ...
- X-Cart 学习笔记(二)X-Cart框架1
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 四.X- ...
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
随机推荐
- vue解决大文件断点续传
一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...
- 关于System.Reflection.TargetInvocationException 异常
什么是TargetInvocationException 由通过反射调用的方法引发的异常. 继承 Object Exception ApplicationException TargetInvocat ...
- 【cf contest 1119 G】Get Ready for the Battle
题目 你有\(n\)个士兵,需要将他们分成\(m\)组,每组可以为0: 现在这些士兵要去攻打\(m\)个敌人,每个敌人的生命值为\(hp_i\) : 一轮游戏中一组士兵选定一个攻打的敌人,敌人生命值- ...
- WAMP 3.1.0 APACHE 2.4.27 从外网访问
想测试一下从外网访问自己的电脑,找了一圈,网上教程都是修改APACHE 的 httpd.conf,经过1小时的摸索,发现完全不对. 正真的方法是修改httpd-vhost.conf,需要修改2处: 1 ...
- 鱼塘钓鱼(fishing)(信息学奥赛一本通 1373)
[问题描述] 有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表: 即:在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8条鱼,……,第5分钟以后再 ...
- uni-app input text-indent失效解决
有两种方法去解决 第一种 input { padding-left: 10upt } 第二种 input { display: block }
- node.js切换多个版本
开言 试用场景就是我们开发项目的时候,有可能一个项目需要v10版本,另一个项目需要v8版本,遇到这种问题,我们不能卸载再重新安装对应的版本去开发,遇到这样的问题的时候,那我们就可以去用另一种方式去切换 ...
- CSP-S乱搞记
还有一年的时间,没人能挡住我前进的脚步 以后不打算写游记了,补完这篇再写就等退役吧,不太想传播什么负能量,走这条路,希望能得到自己想要的东西 Day-n 上了一个月文化课,班主任突然催我搞竞赛??? ...
- Centos 7配置nginx反向代理负载均衡集群
一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76 nginx负载均衡器 192.168.2.82 web ...
- locust参数化(数据库取值)
locust参数化(数据库取值) 基于上一篇参数化的梳理,本篇用另一种方法从数据库中取出这100个用户来登录 思路:在 TaskSet 中的 on_start 方法表示执行任务前的操作,可以将数据库取 ...