入门框架时的常见问题

学习框架的原因?

  • 方便、易用

学习框架的哪些知识点?

  • 掌握一个项目的基本流程,就知道需要学习哪些知识点了

迅速学习框架的方法

  • 根据项目每块流程的需要针对性的学
  • 可以看官方的入门教程

TensorFlow快速入门思维导图

(图)

TensorFlow的高级API

TF SLIM:一个可以定义、训练和评估复杂模型的轻量库(用到的时候详细说)

TF Learn(tf.contrib.learn):类似于scikit-learn的接口

其他:Keras等

TensorFlow学习要点

  • 数据类型
  • 运行机制
  • 数据的I/O
  • 模型的训练
  • 模型的保存
  • 模型的调用

TensorFlow的基本开发流程

项目流程

数据预处理->模型训练->模型保存->模型预测

  • 数据预处理:数据准备、数据清洗、特征工程、归一化处理
  • 神经网络与传统的机器学习不同,不需要做大量特征工程之后喂入特征,只需要设置好网络结构,输入原始数据即可完成训练。
  • 可以先对原始数据做归一化的处理,避免训练误差。

编写TensorFlow的两个步骤

  1. 构建计算图graph
  2. 使用Session去执行graph中的operation

其中涉及的基本定义

Tensor

  1. 类型化的多维数组,是图的边

  2. ???是N维的矩阵,可以看做一种符号化的句柄,指向存储运算结果吗,执行之后返回的基本类型,例如numpy的数组、list等

  3. 创建方法:

    1. tf.zeros()
    2. tf.ones()
    3. tf.fill()
    4. tf.constant()
    5. tf.random_uniform()
    6. tf.random_normal()
    7. ......
  4. 三个属性: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

  1. 执行计算的单元,图的节点
  2. 是一个符号化的运算过程,是TensorFlow中的基本单元。是Graph中的计算节点,输入和输出均为Tensor
  3. 创建方法:
    1. tf.add()
    2. ......

Graph

  1. 一张有边与点的图,其表示了需要进行计算的任务

  2. TensorFlow中使用tf.Graph表示可计算的图,图是由操作Operation和张量Tensor构成的,其中Operation表示图的节点(即为运算单元),而Tensor则表示图的边(即为在Op之间流动的数据单元)

  3. 创建方法:

    • tf.Graph._ init _()(MK语法限制,下划线无空格):创建一个新的空Graph

    • 在TF中本身存在一个默认的Graph,若直接使用则不需要再创建图

    • 在with中调用tf.Graph().as_default()这个方法,可以设置默认的计算图

      (图)

Session

  1. 称之为会话的上下文,用于执行图

  2. 提供Operation执行和Tensor求值的环境

    (图)

  3. 分布式运算的使用,指定GPU/CPU

  4. 释放资源

    • 调用session.close()方法

      (图)

    • 使用with tf.Session()创建上下文(Context)来执行,当上下文退出时,资源将自动释放

      (图)

三大基本概念之间的关系如下:

(图)

Tensor和Operation都是Graph的对象,Operation是图的节点,而Tensor作为边,将Op连接起来。而Graph又必须在Session中才能执行

例子一

(图)

  • 在Tf中定义和执行这个计算图的操作时分开来的。
  • 创建一个完整的计算过程:
    1. 创建Tensor
    2. 添加Operation
    3. 创建Session,运行Graph
  • 这个图里有3个Operation,输入不是Operation但是输出是,因为输出可以执行计算,但是输入不行。
  • Operation添加之后不会立即执行,TensorFlow将等待所有的Operation均添加到Graph中后,根据最终的输出需要运算相应的Operation。

TensorFlow中的基本函数

Veriable

  1. 作用:保存并且更新参数,保存在内存中

(未完待续)

TensorFlow学习笔记(1)—— 基本概念与框架的更多相关文章

  1. TensorFlow学习笔记(一)

    [TensorFlow API](https://www.tensorflow.org/versions/r0.12/how_tos/variable_scope/index.html) Tensor ...

  2. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  3. tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)

    tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...

  4. tensorflow学习笔记——自编码器及多层感知器

    1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...

  5. TensorFlow学习笔记——LeNet-5(训练自己的数据集)

    在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...

  6. TensorFlow学习笔记4-线性代数基础

    TensorFlow学习笔记4-线性代数基础 本笔记内容为"AI深度学习".内容主要参考<Deep Learning>中文版. \(X\)表示训练集的设计矩阵,其大小为 ...

  7. TensorFlow学习笔记1-入门

    TensorFlow学习笔记1-入门 作者: YunYuan *** 写在前面 本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与 ...

  8. Tensorflow学习笔记No.4.1

    使用CNN卷积神经网络(1) 简单介绍CNN卷积神经网络的概念和原理. 已经了解的小伙伴可以跳转到Tensorflow学习笔记No.4.2学习如和用Tensorflow实现简单的卷积神经网络. 1.C ...

  9. X-Cart 学习笔记(二)X-Cart框架1

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 四.X- ...

  10. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

随机推荐

  1. 洛谷 UVA12563 Jin Ge Jin Qu hao 题解

    这道题其实是一道01背包的变形题,主要思路如下:在不把剩余时间用光的前提下(剩余时间>0),尽可能的多唱歌.于是我们可以用dp[i]表示的是到当前i秒时,最多可以唱多少歌. 状态转换方程:dp[ ...

  2. mysql 获取单个科目的平均分

    mysql> select * from test; +----+----------+-------+-----------+ | id | name | score | subject | ...

  3. Runtime Only和Runtime + Compiler

    如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器,即完整版 当使用 vue-loader ...

  4. 作业——12 hadoop大作业

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 Hadoop综合大作业 1.以下是爬虫大作业产生的csv文件 ...

  5. 【CS224n】Lecture8 Notes

    注:这是2017年课程的lecture8.一直都在用RNN,但是对它内部的构造不甚了解,所以这次花了一个下午加一个晚上看了CS224n中关于RNN的推导,不敢说融会贯通,算是比以前清楚多了.做个笔记, ...

  6. 正向代理 & 反向代理 & 透明代理

    正向代理(Forward Proxy) 概述 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正 向代理(forward)是一个位于客户端[用户A]和原始服务器 ...

  7. 第06组 Beta冲刺(5/5)

    队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 继续维护后端代码 准备beta版本的答辩 GitHub签入记录 接下来的计划 整理任务, ...

  8. 单细胞数据normalization方法 | SCTransform

    SCTransform Normalization and variance stabilization of single-cell RNA-seq data using regularized n ...

  9. PHP系列 | 编译安装msgpack-php

    Msgpack 是一个 PECL 扩展,此扩展提供用于与 MessagePack 序列化通信的 API. MessagePack 是一个基于二进制高效的对象序列化类库,可用于跨语言通信.它可以像JSO ...

  10. uploadifive 1.1.2 动态传参

    之前用过Flash版本的uploadify,写过一篇关于uploadify动态传参的文章(点击打开链接).后来有了HTML5版本的上传控件,叫uploadifive,测试着用了一下,效果还不错.这里主 ...