tf.Variable()、tf.get_variable()和tf.placeholder()
1.tf.Variable()
- tf.Variable(initializer,name)
功能:tf.Variable()创建变量时,name属性值允许重复,检查到相同名字的变量时,由自动别名机制创建不同的变量。
参数:
- initializer:初始化参数;
- name:可自定义的变量名称
举例:
- import tensorflow as tf
- v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
- v2=tf.Variable(tf.constant(2),name='v2')
- v3=tf.Variable(tf.ones([2,3]),name='v3')
- with tf.Session() as sess:
- sess.run(tf.global_variables_initializer())
- print(sess.run(v1))
- print(sess.run(v2))
- print(sess.run(v3))
结果如下:
2.tf.get_variable()
- tf.get_variable(
- name,
- shape=None,
- dtype=None,
- initializer=None,
- regularizer=None,
- trainable=None,
- collections=None,
- caching_device=None,
- partitioner=None,
- validate_shape=True,
- use_resource=None,
- custom_getter=None,
- constraint=None,
- synchronization=tf.VariableSynchronization.AUTO,
- aggregation=tf.VariableAggregation.NONE
- )
功能: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:满足均匀分布,但不影响输出数量级的随机值
举例:
- v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
- v2=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1')
- v3=tf.Variable(tf.ones([2,3]),name='v3')
- a1 = tf.get_variable(name='a1', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
- a2 = tf.get_variable(name='a2', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
- a3 = tf.get_variable(name='a3', shape=[2, 3], initializer=tf.ones_initializer())
- with tf.Session() as sess:
- sess.run(tf.initialize_all_variables())
- print(sess.run(v1))
- print(sess.run(v2))
- print(sess.run(v3))
- print(sess.run(a1))
- print(sess.run(a2))
- print(sess.run(a3))
v1和v2的参数完全相同,创建时候不会报错;a1和a2的参数完全相同,创建时候会报错
3.tf.placeholder()
- tf.placeholder(
- dtype,
- shape=None,
- name=None
- )
功能:在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:操作的名称(可选)。
举例:
- input1 = tf.placeholder(tf.float32)
- input2 = tf.placeholder(tf.float32)
- output = tf.multiply(input1, input2)
- with tf.Session() as sess:
- 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()的更多相关文章
- tensorflow共享变量 the difference between tf.Variable() and get_variable()
一般这样用tf.get_variable(): v = tf.get_variable(name, shape, dtype, initializer) 下面内容来源于 http://blog.csd ...
- tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别
在训练深度网络时,为了减少需要训练参数的个数(比如具有simase结构的LSTM模型).或是多机多卡并行化训练大数据大模型(比如数据并行化)等情况时,往往需要共享变量.另外一方面是当一个深度学习模型变 ...
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
https://blog.csdn.net/lanchunhui/article/details/61712830 https://www.cnblogs.com/silence-tommy/p/70 ...
- TF.VARIABLE、TF.GET_VARIABLE、TF.VARIABLE_SCOPE以及TF.NAME_SCOPE关系
1. tf.Variable与tf.get_variable tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要 ...
- tf.Variable() 与tf.get_variable()的区别
每次调用 tf.Variable() 都会产生一个新的变量,变量名称是一个可选参数,运行命名相同,如果命名冲突会根据命名先后对名字进行处理, tf.get_variable()的变量名称是必填参数,t ...
- 理解 tf.Variable、tf.get_variable以及范围命名方法tf.variable_scope、tf.name_scope
tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递. 1. tf.Variable( ...
- 彻底弄懂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提 ...
- TensorFlow函数(二)tf.get_variable() 和 tf.Variable()
tf.Variable(<initial - value>,name=<optional - name>) 此函数用于定义图变量.生成一个初始值为initial - value ...
- 深度学习原理与框架-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表示 ...
随机推荐
- [LeetCode] 380. Insert Delete GetRandom O(1) 常数时间内插入删除和获得随机数
Design a data structure that supports all following operations in average O(1) time. insert(val): In ...
- java 多行注释
public class Sample { public static void main(String[] args) { // java compiler ignores the comment ...
- C语言I作业12—学期总结
一.我学到的内容 二我的收获 作业 收获 C语言博客作业1 刚开始初步了解C语言方面的知识 学会Markdown基本语法 C语言博客作业2 学会了应该如何提问 PTA系统常见问题解答 学会了MinGW ...
- Ubuntu18.04开机挂载硬盘
一.查看磁盘信息 fstab文件的格式如上,其中: 1.设备文件名称是指磁盘或分区的文件名称,也可以使用label或uuid.UUID可以通过"sudo blkid"命令 ...
- Django 数据库同步命令
版本1.8.2 检查数据库配置是否有错 Python manage.py validate/check 创建对应书看的映射语句 Python manage.py makemigrations 同步或者 ...
- 苹果开发之App签名
如果你的Apple ID账号(可使用邮箱来注册)为Apple developer类型的话,登录之后是看不到Certificates, Indentifiers & Profiles信息的 Ap ...
- Docker下构建centos7容器无法使用systemctl命令的解决办法
最近在使用docker 构建centos7 容器时,发现无法使用systemctl 命令.后来万能的百度解决了问题,随记之以备后用. 解决办法: docker run --privileged -it ...
- Java连载12-继承开发环境&long类型
一.集成开发环境(Integrated Develop Environment,简称IDE) 1.什么是集成开发环境 (1)集成开发环境可以使软件开发变得更简单 (2)没有IDE工具: i.需要安装J ...
- LInux 学习笔记系列
1.Linux 就该这么学的笔记系列
- Go - chan 通道
概述 原来分享的基础语法的时候,还未分享过 chan 通道,这次把它补上. chan 可以理解为队列,遵循先进先出的规则. 在说 chan 之前,咱们先说一下 go 关键字. 在 go 关键字后面加一 ...