Tensorflow finetune 初始化问题

问题是这样的,我加载了一个预训练模型后,操作如下:
1.新添加了若干层,并把变量限制在作用域 tf.varable_scope (“finetune_layers”)
2.收集变量作用域 finetune_layers 内的变量,仅更新添加层的权重,冻结前面的层
train_var = tf.get_collection (tf.GraphKeys.TRAINABLE_VARIABLES,scope=“finetune_layers”)
3.定义优化方法,用 var_list 指定需要更新的权重,此时仅更新 train_var 权重
train_step = tf.train.GradientDescentOptimizer (0.1).minimize (loss,var_list=train_var)

那么在 sess 上下文环境中,初始化变量可以使用 tf.global_variables_initializer () 嘛?如果使用 tf.global_variables_initializer () 是不是会将包括冻结层的权重也进行变量初始化?
我尝试过使用 tf.variable_initializer (var_list=train_var),此时会报错,会提示冻结层的变量未初始化


Bingohong, 2018-8-16 16:12:57

freeze graph 之后,是不是就没有 variable 了?


舟 3332 发表于 2018-8-17 23:21:32

对如果转换成 pb 文件,变量就需要转化成常量了。


Bingohong, 2018-8-18 12:53