• TensorFlow中文手册


    注意:本文只为读书笔记。

    第一章 起步

    - 起步
      - [介绍](SOURCE/get_started/introduction.md)
      - [下载及安装](SOURCE/get_started/os_setup.md)
      - [基本用法](SOURCE/get_started/basic_usage.md)

    第二章 基础教程

    - 教程
      - [总览](SOURCE/tutorials/overview.md)
      - [MNIST 机器学习入门](SOURCE/tutorials/mnist_beginners.md)
      - [深入 MNIST](SOURCE/tutorials/mnist_pros.md)
      - [TensorFlow 运作方式入门](SOURCE/tutorials/mnist_tf.md)
      - [卷积神经网络](SOURCE/tutorials/deep_cnn.md)
      - [字词的向量表示](SOURCE/tutorials/word2vec.md)
      - [递归神经网络](SOURCE/tutorials/recurrent.md)
      - [曼德布洛特(Mandelbrot)集合](SOURCE/tutorials/mandelbrot.md)
      - [偏微分方程](SOURCE/tutorials/pdes.md) 
      - [MNIST数据下载](SOURCE/tutorials/mnist_download.md)

    第三章 运作方式

    - 运作方式
      - [总览](SOURCE/how_tos/overview.md) 
      - [变量:创建、初始化、保存和加载](SOURCE/how_tos/variables.md) 
      - [TensorBoard:可视化学习](SOURCE/how_tos/summaries_and_tensorboard.md) 
      - [TensorBoard:图表可视化](SOURCE/how_tos/graph_viz.md) 
      - [读取数据](SOURCE/how_tos/reading_data.md) 
      - [线程和队列](SOURCE/how_tos/threading_and_queues.md) 
      - [添加新的Op](SOURCE/how_tos/adding_an_op.md) 
      - [自定义数据读取](SOURCE/how_tos/new_data_formats.md) 
      - [使用gpu](SOURCE/how_tos/using_gpu.md) 
      - [共享变量](SOURCE/how_tos/variable_scope.md) 

    第四章 Python API

    第五章 C++ API

    第六章 资源

    - 资源
      - [总览](SOURCE/resources/overview.md) 
      - [BibTex 引用](SOURCE/resources/bib.md) 
      - [示例使用](SOURCE/resources/uses.md)
      - [FAQ](SOURCE/resources/faq.md)
      - [术语表](SOURCE/resources/glossary.md)
      - [Tensor排名、形状和类型](SOURCE/resources/dims_types.md)

    第七章 其他

    - 其他
      - [常见问题汇总](SOURCE/faq.md)
      - [相关资源](SOURCE/resource.md)
      - [个人学习心得](SOURCE/personal.md)

    第一章 起步

    TensorFlow安装?

    http://www.cnblogs.com/2008nmj/p/8710527.html

    第二章 基础教程

    2.1 MNIST机器学习入门

    2.1.1 The MNIST Data | MNIST数据集

    2.1.2 Softmax回归介绍

    evidencei是指x属于数字i的证据  xj是784个像素。这是图像x是属于类i的可能。

     这里i属于0-9共10个数,W为10x784,x为784个像素元的矢量。

    将evidencei转换为y,(利用softmax函数),

     像素xj属于类yi的可能性 共有784x10个乘法要计算 对应的公式方程为:

    更进一步,可以写成更加紧凑的方式:

    y=softmax(Wx+b)

    2.1.3 实现回归模型

    为了在python中高效的进行数值计算,我们通常会调用如Numpy外部函数库,把类似矩阵乘法这样的复杂运算使用其他外部语言实现。不幸的是,从外部计算切换回Python的每一个操作,仍然是一个很大的开销。如果你用GPU来进行外部计算,这样的开销会更大。用分布式的计算方式,也会花费更多的资源用来传输数据。

    TensorFlow也把复杂的计算放在python之外完成,但是为了避免前面说的那些开销,它做了进一步完善。TensorFlow不单独地运行单一的复杂计算,而是让我们可以先用图描述一系列可交互的计算操作,然后全部一起在Python之外运行。(这样类似的运行方式,可以在不少的机器学习库中看到。)

    forwithy@forwithy-virtual-machine:~$ python
    Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
    [GCC 4.8.4] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    >>> import input_data
    >>> mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
    Extracting MNIST_data/train-images-idx3-ubyte.gz
    Extracting MNIST_data/train-labels-idx1-ubyte.gz
    Extracting MNIST_data/t10k-images-idx3-ubyte.gz
    Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
    >>> x = tf.placeholder("float", [None, 784])
    >>> W = tf.Variable(tf.zeros([784, 10]))
    >>> b = tf.Variable(tf.zeros([10])
    >>> y = tf.nn.softmax(tf.matmul(x, W) + b)

    2.1.4 训练模型

    为了训练我们的模型,我们首先需要定义一个指标来评估这个模型是好的。其实,在机器学习,我们通常定义指标来表示一个模型是坏的,这个指标称为成本(cost)或损失(loss),然后尽量最小化这个指标。但是,这两种方式是相同的。

    一个非常常见的,非常漂亮的成本函数是“交叉熵”(cross-entropy)。交叉熵产生于信息论里面的信息压缩编码技术,但是它后来演变成为从博弈论到机器学习等其他领域

    里的重要技术手段。它的定义如下:

    其中y是我们预测的概率分布,y'是实际的分布(我们输入的one-hot vector)。比较粗糙的理解是,交叉熵是用来衡量我们的预测用于描述真相的低效性。更详细的关于交叉熵的解释超出本教程的范畴,但是你很有必要好好理解它。

    >>> y_ = tf.placeholder("float", [None, 10])
    >>> cross_entropy = -tf.reduce_sum(y_*tf.log(y))
    >>> train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
    >>> init = tf.initialize_all_variables()
    >>> sess = tf.Session()
    I tensorflow/core/common_runtime/local_device.cc:40] Local device intra op parallelism threads: 1
    I tensorflow/core/common_runtime/direct_session.cc:58] Direct session inter op parallelism threads: 1
    >>> sess.run(init)
    >>> for i in range(1000):
    ...   batch_xs, batch_ys = mnist.train.next_batch(100)
    ...   sess.run(train_step, feed_dict={x:batch_xs, y_:batch_ys})
    ... 
    
    >>> 
    >>> correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    >>> accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
    >>> print sess.run(accuracy, feed_dict={x:mnist.test.images, y_:mnist.test.labls})
    0.9188

    2.1.5 Evaluating Our Model || 评估我们的模型

    首先让我们找出那些预测正确的标签。tf.argmax()是一个非常有用的函数,它能给你在一个张量里沿着某条轴的最高条目的索引值。比如, tf.argmax(y,1)是模型认为每个输入最有可能对应的那些标签,而tf.argmax(y_,1)代表正确的标签。

    2.2 深入 MNIST

    https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/g3doc/tutorials/mnist/

  • 相关阅读:
    Is LaMDA Sentient? — an Interview
    【TED演讲】为什么你应该知道你的同事得多少报酬?(中英字幕)
    炉石传说 卡牌 英文
    Springboot 指定运行时配置文件的几种方式 规格严格
    WARNING: bridgenfcalliptables is disabled解决 规格严格
    Ambari报错大全 规格严格
    CentOS7使用firewallcmd操作防火墙与端口 规格严格
    Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.19.2 requires conntrack to be installed in root's path 规格严格
    如何使用Journalctl查看并操作Systemd日志 规格严格
    linux查看修改路由表route命令详解 规格严格
  • 原文地址:https://www.cnblogs.com/2008nmj/p/7890772.html
Copyright © 2020-2023  润新知