如果我使用来自tf.layers包的类,tensorflow如何知道哪些变量适合?

时间:2017-11-13 19:06:35

标签: tensorflow

tf.layers包中包含图层定义函数,该函数不包含要训练的显式张量。例如,layers.conv2d没有像nn.conv2d那样的filter张量。

tensorflow如何找到适合的变量?

如果我混合layersnn的操作,我怎样才能以相同的方式提供变量?

假设,我收集变量以进入列表:

    weights = tf.Variable(tf.truncated_normal([kernel_size[0], kernel_size[0], input_depth, filters],
                                              dtype=tf.float32, stddev=self.init_stddev), trainable=True)

    self.var_list.append(weights)

    biases = tf.Variable(tf.truncated_normal([filters], dtype=tf.float32, stddev=self.init_stddev), trainable=True)

    self.var_list.append(biases)

    x = tf.nn.conv2d(x, weights, [1, 1, 1, 1], padding=padding)

    x = tf.nn.bias_add(x, biases)

然后

self.step = opt.minimize(self.cross_entropy, var_list=self.var_list)

1 个答案:

答案 0 :(得分:1)

我对你的问题有点困惑。当然,tf.layers.conv2d具有用于定义张量的参数(第二个):

  

tf.layers.conv2d   conv2d(       输入,       过滤器,       kernel_size,       strides =(1,1),       填充=“有效”,       DATA_FORMAT = 'channels_last',       dilation_rate =(1,1),       活化=无,       use_bias =真,       kernel_initializer =无,       bias_initializer = tf.zeros_initializer(),       kernel_regularizer =无,       bias_regularizer =无,       activity_regularizer =无,       kernel_constraint =无,       bias_constraint =无,       可训练=真,       名称=无,       重用=无   )

此外,在tensorflow文档中,明确提到:

  

tf.nn.conv2d - 在给定4-D输入和滤波器张量的情况下计算2-D卷积。

所以你应该使用tf.layers.conv2d构建网络,使用tf.nn.conv2d进行计算。