• TensorFlow学习笔记1-入门


    TensorFlow学习笔记1-入门


    作者: YunYuan


    写在前面

    本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与各位交流。如有问题,可邮箱联系。

    TensorFlow运算的本质是有状态的数据流式图。TensorFlow的直译是“流动的张量”。

    特点:计算模型简洁灵活,计算性能显著提升,支持更多的异构计算系统。

    一些概念:

    • 有向图(计算图):由节点(node)和边(edge)组成。节点表示运算操作,节点与节点之间的是边。整个计算图描述了计算流程。
    • 节点:表示运算操作,每个节点可以有任意多的输入和任意多的输出。
    • 边:在中流动(flow)的是张量(tensor)。
    • 有一种特殊的边没有数据流动,这种边是依赖控制。作用是让它的起始节点执行完再执行目标节点,从而进行控制。

    简单的有向图示例如图:

    其代码表示为:

    import tensorflow as tf
    b=tf.Variable(tf.zeros([100])) # 生成100维的向量,初始化为0
    W=tf.Variable(tf.random_uniform([784,100],-1,1)) # 生成784x100的随机矩阵W 
    x=tf.placeholder(name="x") # 输入的Placeholder
    
    relu=tf.nn.relu(tf.matmul(W, x)+b) # ReLU(Wx+b)
    C=[...] # 根据ReLU函数的结果计算Cost
    
    s=tf.Session()
    for step in range(0, 10):
      input=...construct 100-D input array... # 为输入创建一个100维的向量
      result=s.run(C, feed_dict={x: input}) # 获取Cost,供给输入x
      print(step, result)
    

    在代码中,Variable表示参量,即你要训练的参数,而Placeholder表示输入数据,即训练集。

    TensorFlow内建运算操作

    • 标量运算:Add、Sub、Mul、Div、Exp、Log、Greater、Less、Equal
    • 向量运算:Concat、Slice、Split、Constant、Rank、Shape、Shuffle
    • 矩阵运算:MatMul、MatrixInverse、MatrixDeterminant
    • 带状态的运算:Variable、Assign、AssignAdd
    • 神经网络组件:SoftMax、Sigmoid、ReLU、Convolution2D、MaxPooling
    • 存储、恢复:Save、Restore
    • 队列及同步运算:Enqueue、Dequeue、MutexAcquire、MutexRelease
    • 控制流:Merge、Switch、Enter、Leave、NextIteration

    更进一步

    sess.run()函数里的参数通常有两种:

    • 一种是tensor,将feed_dict中的数据送进计算图中计算一次,并取出tensor

    • 另一种是train=optimizer.minimize(loss),即训练动作(对loss进行优化),每执行一次sess.run(train)会优化一次。


    参考资料

    1. TensorFlow官方文档中文版
    2. 黄文坚 唐源, TensorDlow实战 , 201703, 电子工业出版社
  • 相关阅读:
    编写可读性代码的艺术
    web前端常见的加密算法介绍
    git 遇到的问题
    Vue.js使用proxytable跨域的路径问题
    设置动画元素
    解决echarts图表在显示没有数据后再切换后渲染不出的问题
    svn回滚到之前的版本
    插件用法--视频播放video.js
    网页适配
    不跳转页面下载文件
  • 原文地址:https://www.cnblogs.com/charleechan/p/11435078.html
Copyright © 2020-2023  润新知