1.tf.Variable()

  1. tf.Variable(initializer,name)

功能:tf.Variable()创建变量时,name属性值允许重复,检查到相同名字的变量时,由自动别名机制创建不同的变量。

参数:

  • initializer:初始化参数;
  • name:可自定义的变量名称

举例:

  1. import tensorflow as tf
  2. v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
  3. v2=tf.Variable(tf.constant(2),name='v2')
  4. v3=tf.Variable(tf.ones([2,3]),name='v3')
  5. with tf.Session() as sess:
  6. sess.run(tf.global_variables_initializer())
  7. print(sess.run(v1))
  8. print(sess.run(v2))
  9. print(sess.run(v3))

结果如下:

2.tf.get_variable()

  1. tf.get_variable(
  2. name,
  3. shape=None,
  4. dtype=None,
  5. initializer=None,
  6. regularizer=None,
  7. trainable=None,
  8. collections=None,
  9. caching_device=None,
  10. partitioner=None,
  11. validate_shape=True,
  12. use_resource=None,
  13. custom_getter=None,
  14. constraint=None,
  15. synchronization=tf.VariableSynchronization.AUTO,
  16. aggregation=tf.VariableAggregation.NONE
  17. )

功能:tf.get_variable创建变量时,会进行变量检查,当设置为共享变量时(通过scope.reuse_variables()或tf.get_variable_scope().reuse_variables()),检查到第二个拥有相同名字的变量,就返回已创建的相同的变量;如果没有设置共享变量,则会报[ValueError: Variable varx alreadly exists, disallowed.]的错误。

参数:

  • name:新变量或现有变量的名称
  • shape:新变量或现有变量的形状
  • dtype:新变量或现有变量的类型(默认为DT_FLOAT)。
  • initializer:变量初始化的方式

初始化方式:

  • tf.constant_initializer:常量初始化函数
  • tf.random_normal_initializer:正态分布
  • tf.truncated_normal_initializer:截取的正态分布
  • tf.random_uniform_initializer:均匀分布
  • tf.zeros_initializer:全部是0
  • tf.ones_initializer:全是1
  • tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值

举例:

  1. v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
  2. v2=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
  3. v3=tf.Variable(tf.ones([2,3]),name='v3')
  4.  
  5. a1 = tf.get_variable(name='a1', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
  6. a2 = tf.get_variable(name='a2', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
  7. a3 = tf.get_variable(name='a3', shape=[2, 3], initializer=tf.ones_initializer())
  8.  
  9. with tf.Session() as sess:
  10. sess.run(tf.initialize_all_variables())
  11. print(sess.run(v1))
  12. print(sess.run(v2))
  13. print(sess.run(v3))
  14. print(sess.run(a1))
  15. print(sess.run(a2))
  16. print(sess.run(a3))

v1和v2的参数完全相同,创建时候不会报错;a1和a2的参数完全相同,创建时候会报错  

3.tf.placeholder()

  1. tf.placeholder(
  2. dtype,
  3. shape=None,
  4. name=None
  5. )

功能:在tensorflow中类似于函数参数,运行时必须传入值。

TensorFlow链接:https://tensorflow.google.cn/api_docs/python/tf/placeholder?hl=en

参数:

  • dtype:要进给的张量中的元素类型。常用的是tf.float32,tf.float64等数值类型。
  • shape:要进给的张量的形状(可选)。如果未指定形状,则可以提供任何形状的张量。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定。
  • name:操作的名称(可选)。

举例:

  1. input1 = tf.placeholder(tf.float32)
  2. input2 = tf.placeholder(tf.float32)
  3.  
  4. output = tf.multiply(input1, input2)
  5.  
  6. with tf.Session() as sess:
  7. print(sess.run(output, feed_dict={input1: [23.], input2: [4.]})) # [92.]

  

参考文献:

【1】Tensorflow——tf.Variable()、tf.get_variable()和tf.placeholder()

tf.Variable()、tf.get_variable()和tf.placeholder()的更多相关文章

  1. tensorflow共享变量 the difference between tf.Variable() and get_variable()

    一般这样用tf.get_variable(): v = tf.get_variable(name, shape, dtype, initializer) 下面内容来源于 http://blog.csd ...

  2. tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别

    在训练深度网络时,为了减少需要训练参数的个数(比如具有simase结构的LSTM模型).或是多机多卡并行化训练大数据大模型(比如数据并行化)等情况时,往往需要共享变量.另外一方面是当一个深度学习模型变 ...

  3. TensorFlow 辨异 —— tf.placeholder 与 tf.Variable

    https://blog.csdn.net/lanchunhui/article/details/61712830 https://www.cnblogs.com/silence-tommy/p/70 ...

  4. TF.VARIABLE、TF.GET_VARIABLE、TF.VARIABLE_SCOPE以及TF.NAME_SCOPE关系

    1. tf.Variable与tf.get_variable tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要 ...

  5. tf.Variable() 与tf.get_variable()的区别

    每次调用 tf.Variable() 都会产生一个新的变量,变量名称是一个可选参数,运行命名相同,如果命名冲突会根据命名先后对名字进行处理, tf.get_variable()的变量名称是必填参数,t ...

  6. 理解 tf.Variable、tf.get_variable以及范围命名方法tf.variable_scope、tf.name_scope

    tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递. 1. tf.Variable( ...

  7. 彻底弄懂tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope异同

    https://blog.csdn.net/qq_22522663/article/details/78729029 1. tf.Variable与tf.get_variabletensorflow提 ...

  8. TensorFlow函数(二)tf.get_variable() 和 tf.Variable()

    tf.Variable(<initial - value>,name=<optional - name>) 此函数用于定义图变量.生成一个初始值为initial - value ...

  9. 深度学习原理与框架-Tensorflow基本操作-变量常用操作 1.tf.random_normal(生成正态分布随机数) 2.tf.random_shuffle(进行洗牌操作) 3. tf.assign(赋值操作) 4.tf.convert_to_tensor(转换为tensor类型) 5.tf.add(相加操作) tf.divide(相乘操作) 6.tf.placeholder(输入数据占位

    1. 使用tf.random_normal([2, 3], mean=-1, stddev=4) 创建一个正态分布的随机数 参数说明:[2, 3]表示随机数的维度,mean表示平均值,stddev表示 ...

随机推荐

  1. [LeetCode] 380. Insert Delete GetRandom O(1) 常数时间内插入删除和获得随机数

    Design a data structure that supports all following operations in average O(1) time. insert(val): In ...

  2. java 多行注释

    public class Sample { public static void main(String[] args) { // java compiler ignores the comment ...

  3. C语言I作业12—学期总结

    一.我学到的内容 二我的收获 作业 收获 C语言博客作业1 刚开始初步了解C语言方面的知识 学会Markdown基本语法 C语言博客作业2 学会了应该如何提问 PTA系统常见问题解答 学会了MinGW ...

  4. Ubuntu18.04开机挂载硬盘

    一.查看磁盘信息      fstab文件的格式如上,其中: 1.设备文件名称是指磁盘或分区的文件名称,也可以使用label或uuid.UUID可以通过"sudo blkid"命令 ...

  5. Django 数据库同步命令

    版本1.8.2 检查数据库配置是否有错 Python manage.py validate/check 创建对应书看的映射语句 Python manage.py makemigrations 同步或者 ...

  6. 苹果开发之App签名

    如果你的Apple ID账号(可使用邮箱来注册)为Apple developer类型的话,登录之后是看不到Certificates, Indentifiers & Profiles信息的 Ap ...

  7. Docker下构建centos7容器无法使用systemctl命令的解决办法

    最近在使用docker 构建centos7 容器时,发现无法使用systemctl 命令.后来万能的百度解决了问题,随记之以备后用. 解决办法: docker run --privileged -it ...

  8. Java连载12-继承开发环境&long类型

    一.集成开发环境(Integrated Develop Environment,简称IDE) 1.什么是集成开发环境 (1)集成开发环境可以使软件开发变得更简单 (2)没有IDE工具: i.需要安装J ...

  9. LInux 学习笔记系列

    1.Linux 就该这么学的笔记系列

  10. Go - chan 通道

    概述 原来分享的基础语法的时候,还未分享过 chan 通道,这次把它补上. chan 可以理解为队列,遵循先进先出的规则. 在说 chan 之前,咱们先说一下 go 关键字. 在 go 关键字后面加一 ...