conv1レイヤーの重みの値を取得することを意味します。
あなたは実際にconv2dで重みを定義していないので、それを行う必要があります。
def _conv_layer(self, name, in_channels, filters, kernel, input_tensor, strides, dtype=tf.float32):
with tf.variable_scope(name):
w = tf.get_variable("w", shape=[kernel, kernel, in_channels, filters],
initializer=tf.contrib.layers.xavier_initializer_conv2d(), dtype=dtype)
b = tf.get_variable("b", shape=[filters], initializer=tf.constant_initializer(0.0), dtype=dtype)
c = tf.nn.conv2d(input_tensor, w, strides, padding='SAME', name=name + "c")
a = tf.nn.relu(c + b, name=name + "_a")
print name + "_a", a.get_shape().as_list(), name + "_w", w.get_shape().as_list(), \
"params", np.prod(w.get_shape().as_list()[1:]) + filters
return a, w.get_shape().as_list()
これは私が定義するために使用するものです:私は、私は必要なすべての手順を実行する関数を使用する畳み込み層を作成すると、ここで私は私の畳み込み層のそれぞれを作成するために使用する機能のコピー/ペーストです5つの畳み込みレイヤーの場合、この例はコードからまっすぐですので、最大プールや何もせずにスタックされた5つの畳み込みレイヤー、2と5x5カーネルのストライドに注意してください。
conv1_a, _ = self._conv_layer("conv1", 3, 24, 5, self.imgs4d, [1, 2, 2, 1]) # 24.8 MiB/feature -> 540 x 960
conv2_a, _ = self._conv_layer("conv2", 24, 80, 5, conv1_a, [1, 2, 2, 1]) # 6.2 MiB -> 270 x 480
conv3_a, _ = self._conv_layer("conv3", 80, 256, 5, conv2_a, [1, 2, 2, 1]) # 1.5 MiB -> 135 x 240
conv4_a, _ = self._conv_layer("conv4", 256, 750, 5, conv3_a, [1, 2, 2, 1]) # 0.4 MiB -> 68 x 120
conv5_a, _ = self._conv_layer("conv5", 750, 2048, 5, conv4_a, [1, 2, 2, 1]) # 0.1 MiB -> 34 x 60
畳み込みネットワークを設定する方法についてtensorflowのWebサイトで良いのチュートリアルも用意されています:
https://www.tensorflow.org/tutorials/deep_cnn
あなたの質問に直接答えは、畳み込み層の重みが定義されているということですw
のように、それは私があなたを正しく理解しているかについてあなたが求めているテンソルです。