tf.Variables 简介:创建,初始化

简介

        定义变量是必要的,因为它们包含参数。没有参数,就不能执行训练、更新、保存、恢复和其他节点。
tensorflow 中定义的变量只是具有特定形状和类型的张量。张量必须初始化值才能有效。

创建 Variables

        创建张量变量,使用tf.Variables() 类。当我们定义一个变量时,我们基本上把一个张量及其值传递给 graph 图。一般地,一个变量张量会转递给 graph 图,通过 tf.assign 初始化设置该变量值。

import tensorflow as tf
from tensorflow.python.framework import ops

# 定义变量
# 1.创建随机正态分布产生2行3列矩阵变量
weight = tf.Variable(tf.random_normal([2, 3], stddev=0.1),name='weight')

# 2.创建全是 0 的数组
bias = tf.Variable(tf.zeros(3), name='bias')
custom = tf.Variable(tf.zeros(3), name='custom')

# 得到所有变量的张量并将它们存储在一个列表中
all_var_list = ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES)

        在上面的代码中,ops.get_collection从已定义的 graph 图中获取所有已定义变量的列表。变量里的 “name”键,为图中的每个变量定义一个特定的名称。

初始化

        变量可以部分初始化,全局地初始化,或者从其他变量初始化

########################## 局部初始化 ##################################
# 可以这样定义:
var_list_custom = [weight, custom]
init_custom_op = tf.variables_initializer(var_list = var_list_custom)


######################### 全局初始化 ###################################
# 自定义全部初始化
# 第一种方式
init_all_op = tf.global_variables_initializer()

# 另一种方式, all_var_list 是在上面的存储列表 ops_get_collection()
init_all_op = tf.variables_initializer(var_list=all_var_list)

######################### 已有变量初始化 ################################
# 创建另一个变量 (weight 第一张图刚创建的变量)值相同的变量
WeightsNew = tf.Variable(weights.initialized_value(), name="WeightsNew")

# 初始化这个变量
init_WeightsNew_op = tf.variables_initializer(var_list=[WeightsNew])

运行会话

目前所做的只是定义初始化器的操作并将它们放到图中。为了真正地初始化变量,必须在会话中运行已定义的初始化器的ops

with tf.Session() as sess:
    # 运行初始化op
    sess.run(init_all_op)
    sess.run(init_custom_op)
    sess.run(init_WeightsNew_op)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值