tf.layers.conv2d
を使用する場合、イニシャライザの設定は簡単ですが、パラメータを使用して行うことができます。しかし、tf.nn.conv2d
を使用すればどうなりますか?私はこのコードを使用します。これはkernel_initializer
パラメータをtf.layers.conv2d
に設定するのと同じですか?プログラムはエラーなく実行されますが、期待どおりに動作するかどうかを確認する方法はわかりません。tf.nn.conv2dでウェイト初期化子を使用
with tf.name_scope('conv1_2') as scope:
kernel = tf.get_variable(initializer=tf.contrib.layers.xavier_initializer(),
shape=[3, 3, 32, 32], name='weights')
conv = tf.nn.conv2d(conv1_1, kernel, [1, 1, 1, 1], padding='SAME')
biases = tf.Variable(tf.constant(0.0, shape=[32], dtype=tf.float32),
trainable=True, name='biases')
out = tf.nn.bias_add(conv, biases)
self.conv1_2 = tf.nn.relu(out, name=scope)
self.parameters += [kernel, biases]