如何使tensorflow ops不可训练

时间:2019-11-25 10:52:38

标签: tensorflow

我正在使用Tensorflow Core(无API纯Tensorflow)构建堆叠式卷积自动编码器。我想在编码器和解码器之间添加不可训练的层。是否有人知道如何在张量流图中添加不可训练的层。附有张量图图形图片,出现在蓝色标记框中的操作是我要使其不可训练的操作,或者可以说我不希望对其进行梯度计算。 TF版本:1.15 我已经尝试过tf.stop_gradient()方法,但是该方法阻止了之前所有输入的贡献。 Tensorboard Graph

1 个答案:

答案 0 :(得分:0)

您有两个选择:

  • tf.Variabletf.get_variable定义权重变量时,请传递trainable=False。这将阻止将变量添加到可训练变量集合(可通过tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES)访问)中,该集合默认情况下用作优化程序要训练的变量列表。
  • 当您使用minimizecompute_gradients定义优化步骤时,请传递一个var_list参数以及要训练的变量列表。然后,优化器将忽略可训练变量集合,只会影响列出的变量。