1. TensorFlow特殊的张量计算引擎使得TensorFlow能够很好的满足机器学习的计算需要,从2015年开始发起
  2. 本书基于TensorFlow0.12+和python3.0+
  3. 环境安装要求
    1. pip install -r requirements.txt
  4. TensorFlow计算的一般流程
    1. 生成或者导入数据generate or import data
      1. 所有的机器学习算法都需要数据,在这里我们可以自己生成数据或者使用外部数据,有的时候可以更好地依赖于生成的数据,因为我们想知道期望的结果,有的时候我们会选择使用公开的数据集。
    2. 转换或者是正则化数据 transform  or normalize data
      1. 有的时候数据并不是TensorFlow能够接受的期望的形式,比如说数据的维度不对或者是数据的类型不对,所以我们必须要在使用之前对数据进行转换处理,大部分的算法需要对数据进行正则化处理,TensorFlow提供了可以正则化处理数据的功能
        1. data=tf.nn.batch_norm_with_global_normalization(...)
    3. 设置算法的参数set algorithm parameters
      1. 我们的算法通常在整个处理过程当中都需要参数,比如说:迭代次数,学习率或则我们选择的其他的固定参数,我们应该以一种良好的形式去初始化那些所有的参数,以便方便我们能够方便用户可以很好的使用它们。
        1. learning_rate=0.01  iterations=10000
    4. 初始化变量和占位符initialize variables and placeholders
      1. tensorflow依赖于用户告诉它们如何进行更改,TensorFlow会在优化过程当中不断的更新变量以减小损失函数,为了做到这些,所以我们需要给占位符喂数据,我们需要初始化所有的那些变量和参数,给以适当的数据类型type和大小size,所以使TensorFlow知道接下来应该怎么做,
        1. a_var=tf.constant(42)
        2. x_input=tf.placeholder(tf.float32,[None,input_size])
        3. y_input=tf.placeholder(tf.float32,[None,num_class])
    5. 定义模型结构Define Model Structure
      1. 当我们有了数据,初始化了所有的变量和占位符,接下来我们就应该定义模型结构了,通过构建一个计算图computational graph,我们告诉TensorFlow应该在变量和参数上面执行什么操作以便能够达到我们期望的目的,接下来就计算图将会进行更多的讨论
        1. y_pred=tf.add(tf.mul(x_input,weights_matrix),b_matrix)
    6. 定义损失函数declare loss  functions
      1. 定义了模型结构之后,我们开始计算输出,这就是我们为什么定义了损失函数,损失函数的重要之处在于能够告诉我们预期值距离实际值的距离,更多不同的期望函数在接下来会有介绍
        1. loss=tf.reduce_mean(tf.square(y_actual-y_pred))
    7. 初始化并且开始训练模型initialize and train model
      1. 现在我们已经具备了一切,然后开始创建一个实例或者我们的计算图通过给计算图喂入数据,然后让TensorFlow更好的能够改变变量和进行预测我们的训练数据,下面是初始化计算图的一种方式
        1. with tf,Session(graph=graph)  as session:
          1. session.run()
      2. 我们可以使用另外一种方式
        1. session=tf.Session(graph=graph) session.run(....)
    8. (可选)评估模型 Evaluate the model
      1. 当我们构建训练完我们的模型之后,我们通过使用新的数据按照一些特定标准来评估我们的模型
    9. (可选)预测新的结果
  5. 总结Summary
    1. 总体来说,在TensorFlow当中可以设计为如下的循环结构
        1. 通过占位符喂入数据,
        2. 估算计算图的输出
        3. 通过损失函数计算期望结果
        4. 使用反向自动求导更新模型变量
        5. 重复以上过程直到满足某一个特定的标准
  6. (完)

附件列表

1、TensorFlow如何工作?的更多相关文章

  1. Tensorflow学习笔记(一):MNIST机器学习入门

    学习深度学习,首先从深度学习的入门MNIST入手.通过这个例子,了解Tensorflow的工作流程和机器学习的基本概念. 一  MNIST数据集 MNIST是入门级的计算机视觉数据集,包含了各种手写数 ...

  2. (转)TensorFlow 入门

        TensorFlow 入门 本文转自:http://www.jianshu.com/p/6766fbcd43b9 字数3303 阅读904 评论3 喜欢5 CS224d-Day 2: 在 Da ...

  3. TensorFlow从1到2(一)续讲从锅炉工到AI专家

    引言 原来引用过一个段子,这里还要再引用一次.是关于苹果的.大意是,苹果发布了新的开发语言Swift,有非常多优秀的特征,于是很多时髦的程序员入坑学习.不料,经过一段头脑体操一般的勤学苦练,发现使用S ...

  4. 初见TensorFlow :知其所以然

    2.1 TensorFlow的主要依赖包 TensorFlow依赖的两个最主要的工具包——Protocol Buffer和Bazel. 2.1.1 Protocol Buffer Protocol B ...

  5. Tensorflow[架构流程]

    1. tensorflow工作流程 如官网所示: 根据整体架构或者代码功能可以分为: 图1.1 tensorflow架构 如图所示,一层C的api接口将底层的核运行时部分与顶层的多语言接口分离开. 而 ...

  6. Tensorflow之基于MNIST手写识别的入门介绍

    Tensorflow是当下AI热潮下,最为受欢迎的开源框架.无论是从Github上的fork数量还是star数量,还是从支持的语音,开发资料,社区活跃度等多方面,他当之为superstar. 在前面介 ...

  7. 对比深度学习十大框架:TensorFlow 并非最好?

    http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow ...

  8. Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow

    系统配置: Ubuntu14.04(x64) CUDA8.0 cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖) Anaconda 1. Torch安装 Torch是 ...

  9. windows10配置tensorflow深度学习环境(GPU版)各种坑

    我们配置一个tensorflow-gpu版的深度学习环境 windows10 64 python3.5 vs2017(需要C++部分) cuda9.0 cudnn7.1 GeForce GTX1060 ...

随机推荐

  1. Python tip

    shutil.rmtree() 表示递归删除文件夹下的所有子文件夹和子文件.

  2. Freezable 对象概述 | Microsoft Docs

    原文:Freezable 对象概述 | Microsoft Docs Freezable 对象概述Freezable Objects Overview 2017/03/30 本文内容 什么是可冻结的? ...

  3. Linux零碎002

    1.if else就近原则: 2.指针位数与机器地址总线宽度一致: 3.数组即常量指针,用法和指针类似,在操作指针时:p与&p[0]含义一样: 4.编译器按照内存递减的方式来分配变量.

  4. Mahmoud and Ehab and the message

    Mahmoud wants to send a message to his friend Ehab. Their language consists of n words numbered from ...

  5. C++ 实例练习-替换原生数组

    C++ 实例练习-替换原生数组 main.cpp #include <stdio.h> #include "intarray.h" int main(int argc, ...

  6. java 集合与数组的互转方法,与源码分析

    前言 java数组与集合需要互相转换的场景非常多,但是运用不好还是容易抛出UnSupportedOperationException.下面讲解一下互转的方法,以及结合源码分异常产生的原因 集合转数组 ...

  7. 解决jmeter 24h长时间压测-o生成报告文件达到几个g以及以上的问题

    问题描述:jmeter执行稳定性测试时,因时间过长,导致jtl文件过大,生成html报告过程报内存溢出错误(增加内存配置也不能解决) 使用 jmeter -n -t    test.jmx   -l  ...

  8. Python中的模块简单认识

    将自己定义的方法,变量存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件称为模块. 细说的话,模块可以分为四个通用类别: 1 使用python编写的.py文件(自定义模块) 2 已被编译为共 ...

  9. 初识Vue--生命周期

    初学Vue,写一些随记谨防忘记,不足之处谢谢指出!!! 本文可以直接复制自行创建一个HTML页面,查看结果. <!DOCTYPE html> <html lang="en& ...

  10. 801. 二进制中1的个数(lowbit(n)函数)

    给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数. 输入格式 第一行包含整数n. 第二行包含n个整数,表示整个数列. 输出格式 共一行,包含n个整数,其中的第 i 个数表示数列中的第 ...