zoukankan      html  css  js  c++  java
  • 使用占位符和变量

    变量是TensorFlow机器学习算法的参数,TensorFlow调整这些变量的状态来优化机器学习的算法。

    占位符是TensorFlow对象,用于表示输入输出数据的格式,允许传入指定类型和形状的数据,并依赖计算机的计算结果。

    在TensorFlow中,tf.Variable()函数创建变量,过程是输入一个张量,返回一个变量。声明变量后需要初始化变量。

    下面是创建变量并初始化的例子:

    my_var = tf.Variable(tf.zeros([2,3]))
    sess = tf.Session()
    initialize_op = tf.global_variables_intializer()
    sess.run(intialize_op)

    占位符仅仅声明数据位置,用于传入数据到计算图。占位符通过会话的feed_dict参数获取数据。在计算图中使用占位符时,必须在其上执行至少一个操作。在Tensorflow中,初始化计算图,声明一个占位符x,定义y为x的identity操作。identity操作返回占位符传入数据本身。

    结果图,代码如下:

    sess = tf.Session()
    x = tf.placeholder(tf.float32, shape=[2,2])
    y = tf.identity(x)
    x_vals = np.random,rand(2,2)
    sess.run(y ,feed_dict={x:x_vals})
    #Note that sess.tun(x, feed_dict={x:x_vals}) will result in a self-referencing error.

    延展学习

    在计算图运行的过程中,需要告诉tensorflow初始化创建的变量。tensorflow的每个变量都有initalizer方法,但最常用的方式时helper函数(global_variables_initalizer())。此函数会一次性初始化所创建的所有变量,使用方法如下:

    initializer_op = tf.global_variables_initializer()

    但是,如果是基于已经初始化的变量进行初始化,则必须按序进行初始化,使用方式如下:

    sess = tf.Session()
    first_var = tf.Variable(tf.zeros([2,3])
    sess.run(first_var.initializer)
    second_var = tf.Variable(tf.zeros_like(first_var))
    #Depends onfirst_var
    sess.run(second_var.initializer)
  • 相关阅读:
    查找->静态查找表->次优查找(静态树表)
    P1993-小K的农场
    P1983-车站分级
    P1268-树的重量
    P1113-杂务
    P1265-公路修建
    P2330-[SCOI2005]繁忙的都市
    P1546-最短网络
    P1144-最短路计数
    P1462-通往奥格瑞玛的道路
  • 原文地址:https://www.cnblogs.com/action0/p/11615005.html
Copyright © 2011-2022 走看看