在 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(...)
在 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(...)
只需查看代码:https ://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/layers.py#L1976 。您需要一个具有以下签名的本地函数:
outputs = layer(outputs, *layer_args, **kwargs)
根据@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)