tensorflow 变量
标签(空格分隔): TF variable
tf.Variable()
创建变量,指定初始化tensor,tensor得有明确的shape,可以不用指定name。
tf.get_variable()
-
该方法通常用来创建或者获取变量
-
当用于创建变量时与tf.Variable()基本一样
-
变量名必须指定
-
不同的是本方法通常会与tf.variable_scope()方法连用
tf.variable_scope()
- tf.variable_scope()生一个上下文管理器,同时会生成一个命名空间,名字通过参数指定
- 该函数有参数reuse
-
当reuse为True时,tf.get_variable()将只能通过获取变量,不可以生成新的变量,若该命名空间内没有指定名称的变量则会报错
-
当reuse为False时,tf.get_variable()将只会创建指定名称的变量,若变量已存在则会报错
-
神经网络中有许多参数,通常会分层进行参数的定义,如 W 1 , W 2 , W 3 W1,W2,W3 W1,W2,W3分别代表不同层的参数,在每一次前向传播的过程中我们都需要使用这些参数进行运算,假设前项传播过程为函数: f o r w a r d ( i n p u t ) forward(input) forward(input),那么在每次前传的过程只要指定命名空间,接着在使用tf.get_variable()获取已创建的参数,就可以省去传参的过程。(避免出现$$forward(input,W1,W2,W3…Wn))。同时这样的使用可以在不同的函数中使用。
-
命名空间的可以嵌套使用…类比