在训练期间改变模型[tensorflow]

Changing model during training[tensorflow]

我正在 tensorflow 中创建一个模型,所有层都将 relu 作为激活层。但是,当批量大小增加到 500 时,我想更改模型,使输出层的倒数第二层具有 sigmoid 激活层。

我比较疑惑的是,中间替换了优化器,需要重新初始化所有的变量吗?还是保留旧变量?

这是一个很有趣的问题。我认为这取决于您的数据集和模型。

是的:也许,您可以像深度信念网络(使用 RBM)那样使用预训练的权重(在批量大小 500 之前)。

否:也许,这些预训练的权重会损害您的模型,并且可能并不比其他好的初始化器(例如 xavier 初始化器)更好 https://www.tensorflow.org/versions/r0.8/api_docs/python/contrib.layers.html#xavier_initializer

我认为两种选择都值得尝试。