2

在 tf.slim 中,我想创建一个带有 dropout 的全连接层堆栈。

对于文档中的示例: slim.stack(x, slim.fully_connected, [32, 64, 128], scope='fc'),我想添加辍学。

是否可以使用 slim.stack 或者我必须回到详细的方法?

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

2 回答 2

2

只需查看代码:https ://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/layers.py#L1976 。您需要一个具有以下签名的本地函数:

outputs = layer(outputs, *layer_args, **kwargs)
于 2017-01-26T09:36:24.250 回答
1

根据@guinny 的评论,我可以创建一个本地函数:

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)
于 2017-01-26T23:10:10.103 回答