可視畳み込み中間層TensorFlow

可視TensorFlow中間層画像畳み込み方法

主な機能

tf.summary.image(name, tensor, max_outputs=3, collections=None, family=None)

参数解析
名:生成されたノードの名前を入力します。またTensorBoardでシリーズ名として機能します。

テンソル: A 4-D uint8又はfloat32 Tensor形状の1、3、または4です。[batch_size, height, width, channels]channels

  • 1:テンソルはグレースケールとして解釈されます。
  • 3:テンソルは、RGBとして解釈されます。
  • 4:テンソルはRGBAとして解釈される。
    画像は、同じ入力チャネル数テンソルを有します。浮動小数点入力値に対して不変UINT8、[0、255]に正規化された時間です。二つの異なる標準化されたアルゴリズムを使用してOP:

入力値が正である場合には、それら、255の最大値を再調整します。

任意の入力値が負であれば、移動量、127の入力値次いで0.0、最小値は0、または255の最大値であるように、それらを再調整します。

max_outputs:用の画像を生成するためのバッチ要素の最大数。

核となるアイデア
図の特徴は、(チャネル)は、複数の画像を検討しました。まず、チャネル数を分割し、次にによって特徴マップの視覚化の後に分割特徴マップの現在の大きさに応じ。

サンプルコード

    with tf.variable_scope('layer1-conv1'):
        conv1_weights=tf.get_variable('weights',[5,5,1,6],initializer=tf.truncated_normal_initializer(stddev=0.1))
        conv1_biases=tf.get_variable('biases',[6],initializer=tf.constant_initializer(0.1))
        conv1=tf.nn.conv2d(input_tensor,conv1_weights,strides=[1,1,1,1],padding='VALID')
        bias1=tf.nn.bias_add(conv1,conv1_biases)
        relu1=tf.nn.relu(bias1)

        split = tf.split(relu1, relu1.shape[-1], axis=3) 
        for i in range(relu1.shape[-1]):
            tf.summary.image("layer1-conv1-channel_"+str(i),split[i],1)

練習

可視化は、最後inst_depth層(バッチ、高さ、幅、(K + 1))TensorBoard
中間層の可視化

追加:Ubuntuはwin10の下で解決共有ファイルへのローカル・エリア・ネットワークにアクセスすることはできません

理由:win10デフォルトsamba1.0開いていない共有ファイル・サービス
プログラム:
「コントロールパネル」に移動しますが、「プログラムと機能」にアクセスしてください

「Windowsの機能の有効化または無効化」を選択2.

3.確認してください機能一覧は、「SMB1.0 / CIFSファイル共有のサポート」を選択し、インストールを決定することを、有効にするには、コンピュータを再起動します。

おすすめ

転載: www.cnblogs.com/Caiyi-Xu/p/12513217.html