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)
  • 相关阅读:
    08.net网站开发(前端):5.jQuery
    weblogic的ejb远程调用
    UVa 10131: Is Bigger Smarter?
    Qt5 FOR WINCE7, Visual Studio 2008环境的搭建
    Web常见安全漏洞原理及防范-学习笔记
    【转载】Spark学习 & 机器学习
    公司hadoop客户端试用
    Zen of Python(Python的19条哲学)
    【转载】GitHub中国区前100名到底是什么样的人
    【转载】Spark学习——入门
  • 原文地址:https://www.cnblogs.com/action0/p/11615005.html
Copyright © 2011-2022 走看看