Tensorflow学习笔记(6)——变量管理和模型持久化

来源:互联网 发布:手机淘宝4.6.0下载 编辑:程序博客网 时间:2024/06/09 21:29

1 变量管理

TF提供了通过变量名称来创建和获取一个变量的机制,不需要将变量的参数到处传递。
主要通过tf.get_variabletf.variable_scope实现。
tf.Variable和tf.get_variable等价使用样例:

weight = tf.get_variable(name='weights', shape=[5, 5, 3, 1], initializer=tf.truncated_normal_initializer(stddev=0.1))weight = tf.Variable(tf.truncated_normal(shape=[5, 5, 3, 1], stddev=0.1),name='weights')

TF中的initializer函数和之前的常量生成函数大部分一一对应。如下:

表 TF中的变量初始化函数

初始化函数名称 将变量初始化为 主要参数 tf.random_nomal_initializer 正态分布 均值、标准差 tf.truncated_normal_initializer 正态分布,但如果随机出来的值偏离平均值超过2个标准差,那么这个数将会被重新随机 均值、标准差 tf.random_uniform_initializer 平均分布 最小、最大取值 tf.constant_initializer 给定常量 常数取值 tf.uniform_unit_scaling_initializer 平均分布但不影响输出数量级 factor(产生随机值时乘以的系数) tf.zeros_initializer 全0 变量维度 tf.ones_initializer 全1 变量维度

对于tf.get_variable,name必填而tf.variable_scope选填。避免变量复用造成的错误。
如果需要通过tf.get_variable获取一个已经创建的变量,需要通过tf.variable_scope生成一个上下文管理器,若reuse参数为True,则此管理器中的所有tf.get_variable将直接获取已经生成的变量,若为None或False,则创建新的变量,此时若存在同名变量则报错。

#在命名空间foo内创建变量vwith tf.variable_scope("foo"):    v = tf.get_variable(name="v", shape=[1], initializer=tf.constant_initializer(1.0))#获取已经声明的变量with tf.variable_scope("foo", reuse=True):    v1=tf.get_variable(name="v",shape=[1])    print(v==v1)
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办 我又打孩子了怎么办 打排卵针不排卵怎么办 总是控制不住打骂孩子怎么办 叛逆期的孩子打骂妈妈怎么办 孩子屁股打青了怎么办 父亲把孩子屁股打流血怎么办 孩子屁股长了湿疹怎么办 宝宝发脾气摔东西躺地上怎么办 生气拿棍子打了孩子怎么办 小宝宝被蚊虫咬了怎么办 小宝宝被蚊子咬了怎么办 衣架打小孩淤青怎么办 1岁宝宝有痰咳嗽怎么办 1岁宝宝咳嗽有痰怎么办 孩子爱动手打家长怎么办 不小心有了孩子该怎么办 2岁多宝宝干咳怎么办 2岁宝宝咳嗽无痰怎么办 打了孩子后悔了怎么办 12小孩脾气很犟怎么办 被学生气着了怎么办 1岁宝宝轻微咳嗽怎么办 4岁宝宝突然呕吐怎么办 4岁儿童突然呕吐怎么办 四岁儿童90身高怎么办 24个月宝宝缺钙怎么办