第1个回答 2022-11-16
tf.Variable() :一般变量用这种方式定义。 * 可以选择 trainable 类型 *
tf.get_variable() :一般都是和 tf.variable_scope() 配合使用,从而实现变量共享的功能。 * 可以选择 trainable 类型 *
【注意:】tf.get_variable()和tf.Variable()不是一回事!!两个的区别有好几处:
①比如,tf.Variable()在定义的时候必须初始化,而tf.get_variable()定义的时候可以先不进行初始化操作。
②想要进行变量共享,必须使用tf.get_variable()实现,搭配命名空间,以及reuse关键字的使用,就可以实现变量的共享;而tf.Variable()每次都会生成一个新的变量。
占位符[tf.placeholder()]并不是变量,待输入训练常量。** trainable==False **
变量的初始化操作的几种方式:
1.在定义的时候直接初始化,比如
b = tf.get_variable("b", b.shape, trainable=False, initializer=tf.constant_initializer(b))
2.在会话中使用sess.run()进行初始化,比如
sess.run(tf.global_variables_initializer()) # 初始化全局变量
sess.run(tf.local_variables_initializer()) # 初始化本地变量
3.如果只想要初始化一部分指定变量,使用:
sess.run(tf.variables_initializer(var_list))
其中,var_list是需要初始化的变量列表。
变量在使用前一定要进行初始化,且变量的初始化必须在模型的其它操作运行之前完成。
第2个回答 2022-11-15
变量的初始化就是在定义变量的时候,直接对变量进行赋值操作。
初始化的方式一般有如下两种:
1、直接对变量进行赋予常量数值进行初始化;
2、通过同类型变量进行初始化。
举例说明如下:
// 以下属于第1种初始化方式
int a1=5; // 整型变量的初始化
int b1[]={1,2,3,4}; // 整型数组的初始化
char str1[]="abcd"; // 字符数组的初始化
// 以下属于第2种初始化方式
int a2 = a1; // 整型变量的初始化
int b2[4] = b1; // 整型数组的初始化
char str2[4] = str1;// 字符数组的初始化
char *p = str1; // 字符指针的初始化
第3个回答 2022-11-15
1.
在定义的时候直接初始化,比如 b = tf.get_variable("b", b.shape, trainable=False, initializer=tf.constant_initializer(b))
2.
在会话中使用sess.run()进行初始化,比如 sess.run(tf.global_variables_initializer()) #初始化全局变量 sess.run(tf.local_variables_initializer()) #初始化本地变量
3.
如果只想要初始化一部分指定变量,使用: sess.run(tf.variables_initializer(var_list))
第4个回答 2022-11-14
1.
在定义的时候直接初始化,比如 b = tf.get_variable("b", b.shape, trainable=False, initializer=tf.constant_initializer(b))
2.
在会话中使用sess.run()进行初始化,比如 sess.run(tf.global_variables_initializer()) #初始化全局变量 sess.run(tf.local_variables_initializer()) #初始化本地变量
3.
如果只想要初始化一部分指定变量,使用: sess.run(tf.variables_initializer(var_list))