2017-03-07 6 views
0

私はInceptionモデルのコードを読んでいますが、私は変数の共有について混乱しています。開始モデルの変数を区別する方法は?

line 116

とライン117:これら二つの層のための

 # mixed: 35 x 35 x 256. 
    with tf.variable_scope('mixed_35x35x256a'): 
     with tf.variable_scope('branch1x1'): 
     branch1x1 = ops.conv2d(net, 64, [1, 1]) 
     with tf.variable_scope('branch5x5'): 
     branch5x5 = ops.conv2d(net, 48, [1, 1])  //line 116 
     branch5x5 = ops.conv2d(branch5x5, 64, [5, 5]) //line 117 

重量変数は同じvariable_scope同じ名前weightsがありますか?唯一可能なケースは、変数が共有されていることですが、明らかに、これらの2つの変数は異なる形状(1x1対5x5)を持ち、共有できませんか?それについて誰でも説明してください。

おかげで、

答えて

0

ops.conv2d()重みとバイアス変数を含む、2-D畳み込み層を作成するためTensorFlowスリム便利な機能です。 変数共有をサポートしていますが、デフォルトでは共有なし(各コールで新しい変数スコープが作成されます)と明示的に共有できるようにoptional scope and reuse argumentsを渡す必要があります。したがって、ops.conv2d()を呼び出すと、別々の重みとバイアス変数が作成されます。

関連する問題