我正在 tensorflow 中创建一个模型,所有层都将relu作为激活层。但是,当批量大小增加到 500 时,我想更改模型,使输出层的倒数第二层具有sigmoid激活层。
我感到困惑的是,我需要重新初始化所有变量,因为我正在更换中间的优化器?还是我保留旧变量?
我正在 tensorflow 中创建一个模型,所有层都将relu作为激活层。但是,当批量大小增加到 500 时,我想更改模型,使输出层的倒数第二层具有sigmoid激活层。
我感到困惑的是,我需要重新初始化所有变量,因为我正在更换中间的优化器?还是我保留旧变量?
这是一个非常有趣的问题。我认为这取决于您的数据集和模型。
是的:也许,您可以使用预训练的权重(在批量大小 500 之前),就像 Deep Belief Networks(使用 RBM)所做的那样。
否:也许,这些预先训练的权重会损害您的模型,并且可能并不比其他好的初始化器(例如 xavier 初始化器https://www.tensorflow.org/versions/r0.8/api_docs/python/contrib.layers.html# xavier_initializer
我认为这两种选择都值得尝试。