• tensorflow学习笔记


    计算图:是包含节点和边的网络。本节定义所有要使用的数据,也就是张量(tensor)对象(常量、变量和占位符),同时定义要执行的所有计算,即运算操作对象(Operation Object,简称 OP)。

    每个节点可以有零个或多个输入,但只有一个输出。
    图定义和执行的分开设计。

    每个会话都需要使用 close() 来明确关闭,而 with 格式可以在运行结束时隐式关闭会话。
    TensorFlow 还允许使用 with tf.device() 命令来使用具有不同计算图形对象的特定设备(CPU/GPU)

    run(fetches,feed_dict=None,options=None,run_metadata)
    运算结果的值在 fetches 中提取;在示例中,提取的张量为 v_add。run 方法将导致在每次执行该计算图的时候,都将对与 v_add 相关的张量和操作进行赋值。如果抽取的不是 v_add 而是 v_1,那么最后给出的是向量 v_1 的运行结果:
    {1,2,3,4}
    此外,一次可以提取一个或多个张量或操作对象,例如,如果结果抽取的是 [v_1,v_2,…,v_add],那么输出如下:
    {array([1,2,3,4]),array([2,1,5,3]),array([3,3,8,7])}

    zero_t = tf.zeros([2,3],tf.int32)
    test = tf.zeros_like(a)

    range_t = tf.linspace(2.0,5.0,5)
    #We get:[2. 2.75 3.5 4.25 5.]

    range_t = tf.range(10)

    随机生成的张量受初始种子值的影响。要在多次运行或会话中获得相同的随机数,应该将种子设置为一个常数值。当使用大量的随机张量时,可以使用 tf.set_random_seed() 来为所有随机产生的张量设置种子。以下命令将所有会话的随机张量的种子设置为 54:
    tf.set_random_seed(54)

    tf.random_crop(t_random,[2,5],seed=12)
    这里,t_random 是一个已经定义好的张量。这将导致随机从张量 t_random 中裁剪出一个大小为 [2,5] 的张量。

    变量的定义将指定变量如何被初始化,但是必须显式初始化所有的声明变量。在计算图的定义中通过声明初始化操作对象来实现:
    在这里插入图片描述

    保存变量:使用 Saver 类来保存变量,定义一个 Saver 操作对象:
    saver = tf.train.Saver()

    用 tf.convert_to_tensor() 可以将给定的值转换为张量类型

    tf.eye(5) #返回大小为5的单位矩阵

    对于变量,要初始化,可以使用全部初始化函数 或者 单个进行初始化
    1.全部初始化:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    2.单个优化 a_var.initializer.run():需要注意的是要在sess之后写

    tf.summary.FileWriter(‘summart_dir’,sess.graph)
    #tensorboard --logdir=C:\Users\Administrator\Desktop\python工程\tf1.x\summart_dir

    tf.matmul(a,b) #矩阵乘法,和a @ b相同
    a * b #是对应的元素相乘
    tf.div(a,b) #矩阵除法
    tf.scalar(2,a) 相当于2 * a

    以 DNN 为例,通常需要知道损失项(目标函数)如何随时间变化。在自适应学习率的优化中,学习率本身会随时间变化。可以在 tf.summary.scalar OP 的帮助下得到需要的术语摘要。假设损失变量定义了误差项,我们想知道它是如何随时间变化的:
    loss = tf…
    tf.summary.scalar(‘loss’,loss)

    TensorFlow 将支持的 CPU 设备命名为“/device:CPU:0”(或“/cpu:0”),第 i 个 GPU 设备命名为“/device:GPU:I”(或“/gpu:I”)。

  • 相关阅读:
    Mabatis-puls强于Mybatis的地方
    WPF ListView 鼠标点击,移动改变背景色不启作用
    计算机网络:运输层
    1000 - 熟悉一下Online Judge的环境
    idea拉去新建子模块,提交提示此模块处于游离状态
    ECcube 使用负载平衡器时无法识别 HTTPS/SSL 时的响应,链接都变成 http
    mysql使用--简单查询
    LC15.三数之和、LC22括号生成
    迭代器-面试
    数据结构与算法9-排序算法:选择排序、冒泡排序、快速排序
  • 原文地址:https://blog.csdn.net/you_jinpeng/article/details/103551764