2017-05-09 184 views
0

我想将一个固定权重矩阵传递给张量流中的二维卷积运算。我试着把trainable=False如下,但TF似乎忽略了这个选项。Tensorflow'trainable = False'被忽略

w = tf.Variable(w, trainable=False, dtype=tf.float32, name='upscaleW') 
data = tf.nn.conv2d_transpose(data, w, outshapeF, strides, padding="SAME", data_format=data_format, name='UpsamplingDeconv2D') 

它在训练过程中不断失去精度。 1变成0.98然后0.96等,0变成0.012等。

如果我做tf.trainable_variables()upscaleW不存在。我只能在tf.global_variables()中找到它们,所以它们甚至不在可训练变量列表中。我无法弄清楚如何冻结重量。

可能这条线有问题吗? https://github.com/tensorflow/tensorflow/blob/r1.1/tensorflow/python/ops/nn_ops.py#L1075

回答

1

没关系。我的错。在我的代码中,我传递给minimize(var_list=tf.contrib.framework.get_variables())而不是get_trainable_variables,这显然覆盖了trainable=False的论点。