2017-06-24 11 views
1

ウェイトが明示的に定義されていないので、どのようにそれらをサマリー・ライターに渡すことができますか? exempleについてはtf.layersでテンソルボードを使用するにはどうすればいいですか?

conv1 = tf.layers.conv2d(
    tf.reshape(X,[FLAGS.batch,3,160,320]), 
    filters = 16, 
    kernel_size = (8,8), 
    strides=(4, 4), 
    padding='same', 
    kernel_initializer=tf.contrib.layers.xavier_initializer(), 
    bias_initializer=tf.zeros_initializer(), 
    kernel_regularizer=None, 
    name = 'conv1', 
    activation = tf.nn.elu 
    ) 

=>

summarize_tensor(
    ?????? 
) 

ありがとう!

答えて

3

これは、TensorBoardに記録する内容によって異なります。すべての変数をTensorBoardに入れたい場合は、tf.all_variables()またはtf.trainable_variables()を呼び出すと、すべての変数が得られます。 tf.layers.conv2dは単にConv2Dインスタンスを作成し、それを呼び出すメソッドのラッパーにすぎないことに注意してください。

conv1_layer = tf.layers.Conv2D(
    filters = 16, 
    kernel_size = (8,8), 
    strides=(4, 4), 
    padding='same', 
    kernel_initializer=tf.contrib.layers.xavier_initializer(), 
    bias_initializer=tf.zeros_initializer(), 
    kernel_regularizer=None, 
    name = 'conv1', 
    activation = tf.nn.elu 
) 

conv1 = conv1_layer.apply(tf.reshape(X,[FLAGS.batch,3,160,320])) 

次に、conv1_layer.kernelを使用してカーネルウェイトにアクセスすることができます。

+0

Conv2Dのオブジェクトが属性を持っていない ' –

+0

をkernel'カーネル属性があり、もはやありません今は 'weights'ですが、' tf.summary.histogram( "weights"、conv1_layer.weights) 'で十分か分かりません。 – juliohm

1

DaTongの回答が完了している間、それを使用する方法を理解するまでにはしばらく時間がかかりました。別の初心者のための時間を節約するために、あなたはtensorboard要約を全てのトレーニング可能な変数を追加するために、あなたのコードに以下を追加する必要があります。

for var in tf.trainable_variables(): 
    tf.summary.histogram(var.name, var) 
merged_summary = tf.summary.merge_all() 
関連する問題