我正在尝试微调我tensorflow/slim resnet-v2-50模型中最后几层的数据集。
我正在努力寻找可以训练的图层的名称。在张量流模型中,是否有办法找到可以训练的图层的名称?有没有办法让这些名称成为有序的方式,以便我可以选择一些最后的图层培养?有没有办法从tensorboard获取这些信息?
答案 0 :(得分:0)
输入
print(tf.trainable_variables())
这将打印所有可训练的变量。
当您只想训练或优化预训练网络的某些层时,您需要了解这一点。
TensorFlow的minimize
方法采用可选参数var_list
,这是一个通过反向传播调整的变量列表。
如果您未指定var_list
,则优化程序可以调整图表中的任何TF变量。当您在var_list
中指定一些变量时,TF会保持所有其他变量不变。
以下是jonbruner及其合作者使用的脚本示例。
tvars = tf.trainable_variables()
g_vars = [var for var in tvars if 'g_' in var.name]
g_trainer = tf.train.AdamOptimizer(0.0001).minimize(g_loss, var_list=g_vars)
这会找到之前定义的所有变量,它们具有" g _"在变量名中,将它们放入列表中,并在它们上运行ADAM优化器。
您可以在Quora
上找到相关答案