zoukankan      html  css  js  c++  java
  • TensorFlow中Variable对象的用法

     

    TensorFlow中Variable对象的用法

     

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    所用版本:python3.5.2,tensorflow1.8.0,tensorboard1.8.0

    In [1]:
    # 修改variable对象的值,使用Variable.assing()方法,作用是为Variable对象赋予新值。
    
    In [2]:
    import tensorflow as tf
    
    In [3]:
    # 创建一个初始值为1的Variable对象
    
    In [4]:
    my_var = tf.Variable(1)
    
    In [5]:
    # 创建一个Op,使其在每层运行是都将该Variable对象乘以2
    
    In [6]:
    my_var_2 = my_var.assign(my_var*2)
    
    In [7]:
    # Variable对象的初始化
    
    In [8]:
    init = tf.global_variables_initializer()
    
    In [9]:
    # 启动一个会话
    
    In [10]:
    sess = tf.Session()
    
    In [11]:
    # 初始化Variable对象
    
    In [13]:
    sess.run(init)
    
    In [14]:
    # 将Variable对象乘以2,并将其返回
    
    In [15]:
    sess.run(my_var_2)
    
    Out[15]:
    2
    In [16]:
    # 再次乘以2
    
    In [17]:
    sess.run(my_var_2)
    
    Out[17]:
    4
    In [18]:
    # 再次乘以2
    
    In [19]:
    sess.run(my_var_2)
    
    Out[19]:
    8
    In [20]:
    sess.close()
    
    In [21]:
    # 实现Variable对象的自增自减
    
    In [22]:
    reset
    
     
    Once deleted, variables cannot be recovered. Proceed (y/[n])? y
    
    In [23]:
    import tensorflow as tf
    
    In [24]:
    my_var = tf.Variable(0)
    
    In [25]:
    init = tf.global_variables_initializer()
    
    In [26]:
    # 启动两个Session对象
    
    In [27]:
    sess1 = tf.Session()
    
    In [28]:
    sess2 = tf.Session()
    
    In [29]:
    # 在sess1内对Variable对象进行初始化,以及在同一个Session对象中对my_var的值自增
    
    In [30]:
    sess1.run(init)
    
    In [31]:
    sess1.run(my_var.assign_add(5))
    
    Out[31]:
    5
    In [32]:
    # 在sess2内做先沟通的运算,但使用不同的自增值
    
    In [33]:
    sess2.run(init)
    
    In [34]:
    sess2.run(my_var.assign_add(2))
    
    Out[34]:
    2
    In [35]:
    # 能够在不同的Session对象中独立的对Variable对象的值实现自增/自减
    
    In [36]:
    sess1.run(my_var.assign_add(5)) # 5+5=10
    
    Out[36]:
    10
    In [37]:
    sess2.run(my_var.assign_sub(2)) # 2-2=0
    
    Out[37]:
    0
    In [38]:
    sess2.run(my_var.assign_sub(4)) #0-4=-4
    
    Out[38]:
    -4
    In [39]:
    # 将sess1的Variable对象的值重置为初始值0
    
    In [41]:
    sess1.run(init)
    
    In [42]:
    sess1.run(my_var)
    
    Out[42]:
    0
    In [43]:
    sess2.run(my_var)
    
    Out[43]:
    -4
    In [44]:
    # 将sess2的Variable对象的值重置为0
    
    In [45]:
    sess2.run(init)
    
    In [46]:
    sess2.run(my_var)
    
    Out[46]:
    0
    In [47]:
    sess1.close()
    
    In [48]:
    sess2.close()
    
     

    参考文献:人工智能原理与实践:基于Python语言和TensorFlow / 张明,何艳珊,杜永文编著. —— 北京:人民邮电出版社,2019.8.

    作者:凯鲁嘎吉
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    java的一些基本概念──JDK 、j2se 、j2sdk...
    shell函数的调用执行
    ICE第三方包简介及安装&ICE安装(linux)
    http状态码
    Grep命令学习笔记(转)
    STL map用法详解
    ubuntu下安装subversion客户端
    linux下安装Tomcat及设置JSP环境
    ICE总结
    struts开发
  • 原文地址:https://www.cnblogs.com/kailugaji/p/15200432.html
Copyright © 2011-2022 走看看