我在使用TensorFlow实现的许多可用神经网络代码中发现,正则化术语通常通过手动向损失值添加附加项来实现.
我的问题是:
有没有比手动更优雅或推荐的正规化方法?
我也发现get_variable有一个论点regularizer.该如何使用?根据我的观察,如果我们将正则化器传递给它(例如tf.contrib.layers.l2_regularizer,表示正则化术语的张量将被计算并添加到名为的图形集合中tf.GraphKeys.REGULARIZATOIN_LOSSES.TensorFlow是否会自动使用该集合(例如,在训练时由优化器使用)?或者是否应该自己使用该系列?
在Tensorflow中(从v1.2.1开始),似乎有(至少)两个并行API来构建计算图.tf.nn中有函数,如conv2d,avg_pool,relu,dropout,然后在tf.layers,tf.losses和其他地方有类似的函数,如tf.layers.conv2d,tf.layers.dense,tf.layers.退出.
从表面上看,似乎这种情况只会引起混淆:例如,tf.nn.dropout使用"保持率",而tf.layers.dropout使用"丢弃率"作为参数.
这种区别对最终用户/开发人员有什么实际意义吗?如果没有,是否有任何清理API的计划?