2017-01-26 4 views
2

tf.slimでは、完全に接続されたレイヤーをドロップアウトで作成したいと考えています。slim.dropoutとslim.fully_connectedをslim.stackにインターリーブしますか?

ドキュメントの例: slim.stack(x, slim.fully_connected, [32, 64, 128], scope='fc')には、ドロップアウトを追加したいと思います。

slim.stackを使用することは可能ですか、冗長なアプローチに戻る必要がありますか?

(pseudo-code) for every layer: 
    slim.dropout(slim.fully_connected(...) 

答えて

1

、私はローカル関数を作成することができます:あなたは、次のシグネチャを持つローカル関数が必要

layer = lambda inputs, layer_args, **kwargs:  
    slim.dropout(slim.fully_connected(inputs, layer_args, **kwargs)) 
with slim.arg_scope([slim.dropout], keep_prob=dropout_keep_prob): 
    layers = slim.stack(inputs, 
         layer, 
         layer_sizes, 
         activation_fn=nonlinearity, 
         scope=scope) 
+0

素晴らしいですね!読みやすくするために、多くの場合、レイヤーを書き出すほうがよいでしょう。あなたが非常に深いネットを持っている場合にのみこれを使用してください。 – guinny

関連する問題