如何使tensorflow操作不可培训

如何使tensorflow操作不可培训,tensorflow,Tensorflow,我正在用Tensorflow核心构建一个堆叠卷积自动编码器(没有API纯Tensorflow)。我想在编码器和解码器之间添加不可训练的层。有人知道如何在tensorflow图中添加不可训练的层吗。随附张力板图图片,蓝色标记框中出现的ops是我想使其不可训练的ops,或者可以说我不想对其进行梯度计算。 TF版本:1.15 我已经尝试了tf.stop_gradient()方法,但是这个方法阻止了之前所有输入的贡献 您有两个选择: 使用或定义权重变量时,传递trainable=False。这将阻止变

我正在用Tensorflow核心构建一个堆叠卷积自动编码器(没有API纯Tensorflow)。我想在编码器和解码器之间添加不可训练的层。有人知道如何在tensorflow图中添加不可训练的层吗。随附张力板图图片,蓝色标记框中出现的ops是我想使其不可训练的ops,或者可以说我不想对其进行梯度计算。 TF版本:1.15 我已经尝试了tf.stop_gradient()方法,但是这个方法阻止了之前所有输入的贡献

您有两个选择:

  • 使用或定义权重变量时,传递
    trainable=False
    。这将阻止变量添加到可训练变量集合(可通过
    tf.get_集合(tf.GraphKeys.trainable_variables)
    访问),默认情况下,该集合用作优化器训练的变量列表
  • 当您使用或定义优化步骤时,传递一个带有要训练的变量列表的
    var\u list
    参数。然后优化器将忽略可训练变量集合,只影响列出的变量

谢谢你的回复,但问题是我不是在创建变量,我只是在张量上执行一些操作,张量是最后一个卷积层的输出。我在自定义层中添加的操作是可训练的,正如您从。我想让这些ops不可训练,它们用红色标记,并与adam优化器连接,我想让它们与adam断开连接。这是该层的代码。再次感谢你的帮助!