2016-12-24 8 views
2

を再形成、それはこのようなものがあります:入力次元tensorflowウェブサイトでの専門家のmnistチュートリアルTensorflow conolutionalネットワークで

x_image = tf.reshape(x, [-1,28,28,1]) 

を私はリシェイプが

tf.reshape(input,[batch_size,width,height,channel]) 

などのQ1であることを知っている:なぜですbatch_sizeは-1に等しいか? -1とはどういう意味ですか?

そして、私は1つのより多くの事がありますコードを下に行くとき、私は

W_fc1 = weight_variable([7 * 7 * 64, 1024]) 

Q2を理解することはできません。image_sizeでは* 64件の手段は何?

答えて

1

Q1は:BATCH_SIZEが-1に等しくされる理由は? -1とはどういう意味ですか?

-1は「この部分を私のために見つけ出す」ことを意味します。私が実行している場合たとえば、:

reshape([1, 2, 3, 4, 5, 6, 7, 8], [-1, 2]) 

それは2つの列を作成し、それが収まるようにすべてを取得する必要があるものは何でも行数:

array([[1, 2], 
     [3, 4], 
     [5, 6], 
     [7, 8]]) 

Q2:image_sizeでは、64件の手段*何をします?

これは、特定のフィルタのアクティブ化におけるフィルタの数です。コンバージョンレンズのフィルタの形状は、[height, width, # of input channels (number of filters in the previous layer), # of filters]の形式に従います。

0

tf.reshapeに次元として-1を渡すと、既存の次元が保持されます。ドキュメントから:形状の1つの成分が特別な値-1の場合、合計サイズは一定のままとなるよう

、その 寸法の大きさが計算されます。 では、[ - 1]の形状が1-Dになる。最大でも1つのコンポーネント の形状は-1にすることができます。

この例に先立って適用された畳み込みレイヤーは画像を[7,7,64]の形状に縮小し、次の完全に接続されたレイヤーへの入力単一次元である必要があるので、例の次の行では、テンソルは[7,7,64]から[7 * 7 * 64]に再形成され、FCレイヤーに接続できます。

例えば:畳み込みとmaxプーリング作品は、the wikipedia pageはいくつかの有用なグラフィックスを持っている方法についての詳細情報については

ネットワークアーキテクチャ:

cnn architecture

とプーリング:

cnn pooling

+0

その64は何ですか?それはフィルタまたは畳み込みの数ですか? – MonSh1rE

+0

ネットワーク内のポイントでのフィーチャマップの深さです。例えば入力画像はおそらく3の深さ(例えば、R、G及びBのカラーチャンネル)を有する。各層の畳み込みは画素空間を縮小するが、画像の深度を増加させる。 –

関連する問題