如果我用10个神经元的输出层训练模型10次,与用100个神经元的输出层训练一次相比,隐藏层的权重是否会有不同

由于我的内存不足以一次性从头开始训练包含2000个类别的模型,因此我想知道是否可以使用200个神经元的输出层,先用这200个类别训练模型并保存权重,然后加载这些权重,再用另外200个不同的类别继续训练,直到用完所有2000个类别为止。

请注意,这个数据集是用来预训练模型的,以便之后用另一个更小的数据集重新训练模型。因此,我的目标是用这个大型数据集预训练模型,然后更换输出层,并用一个更小的数据集重新训练模型的最后几层。

这种训练方式能否在隐藏层上获得与一次性用2000个类别训练模型相同的权重?


回答:

不会。你的权重会有所不同。这种方法只在训练线性模型时有效,而对神经网络则无效。

我觉得问题出在输出数量从200增加到2000,这导致最终层的内存使用增加了10倍,但这本来就不应该是一个很大的数字。可能是你倒数第二层的隐藏层太大了?即使你前一层也有2000个神经元,这也只会产生一个2000×2000的矩阵,约400万个浮点数,仅占用16兆字节的内存。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注