2017-05-28 5 views
1

以下のコードは1つまたは2つの層を表しますか?私は混乱している、なぜなら、ニューラルネットの入力層とも考えられないからです。TF-スリム層数

input_layer = slim.fully_connected(input, 6000, activation_fn=tf.nn.relu) 
output = slim.fully_connected(input_layer, num_output) 

隠れたレイヤーを含んでいますか?私はネットを視覚化できるようにしようとしています。前もって感謝します! tensorflow-slimから

答えて

1

enter image description hereの隠された大きさを持つ層

あなたには1つの隠れ層があるニューラルネットワークがあります。あなたのコードでは、inputは上記の画像の 'Input'レイヤーに対応しています。 input_layerは、画像が「非表示」と呼ぶものです。 outputはイメージが「出力」と呼ぶものです。

ニューラルネットワークの「入力レイヤー」は、アクティブ化されていない生データのみであるため、従来の完全接続レイヤーではありません。それはちょっとした誤解です。入力層の上の写真のニューロンは、隠れ層または出力層のニューロンと同じではありません。

+0

ありがとう!それは今意味がある!だから、私が持っているコードは、あなたが正しく提示した3層ニューラルネットワークを表すでしょうか? – dooder

+0

正しい。入力サイズはコード内の 'input'のサイズです。隠れ層のサイズは6000です。出力層のサイズは 'num_output'です。 –

0

さらに、TF-スリムのslim.stack演算子は繰り返し層のスタックやタワーを作成するために、異なる引数で同じ操作を適用する発信者を可能にします。また、slim.stackは作成された操作ごとに新しいtf.variable_scopeを作成します。例えば、多層パーセプトロン(MLP)を作成するための簡単な方法:

# Verbose way: 
x = slim.fully_connected(x, 32, scope='fc/fc_1') 
x = slim.fully_connected(x, 64, scope='fc/fc_2') 
x = slim.fully_connected(x, 128, scope='fc/fc_3') 

# Equivalent, TF-Slim way using slim.stack: 
slim.stack(x, slim.fully_connected, [32, 64, 128], scope='fc') 

は、だからここに述べたネットワークは[32, 64,128]ネットワークである - 64

+0

コメントありがとうございました!だから、32ニューロンは入力層を表しますか? 1000個の機能を持つ入力があるとします。それは、入力層が入力層のために1000個のフィーチャを32個のニューロンに凝縮しなければならないということではありませんか?その後、入力レイヤーから最初の隠れレイヤーまでの32x64ウェイト接続がありますか?申し訳ありませんが、私はちょうどこれを理解しようとしています! – dooder

+0

@dooderの質問は常に良いです!しかし、私はTensorflowで働かないので、この質問に答えることはできません。だから私は値が凝縮する方法を知らない。しかし、32ニューロンの層と64ニューロンの層がある場合、接続の量は実際には32 * 64になります。 –

関連する問題