如何在Matlab中增量训练神经网络?

2024-01-06

假设我有很大的训练集,导致 Matlab 在训练时挂起,或者没有足够的内存来容纳训练集。

是否可以将训练集分成几部分并逐部分训练网络?

是否可以一次用一个样本(一个一个)来训练网络?


您可以手动将数据集分成批次并逐一训练它们:

for bn = 1:num_batches
    inputs = <get batch bn inputs>;
    targets = <get batch bn targets>;
    net = train(net, inputs, targets);
end

虽然批量大小应该大于 1,但无论如何这应该减少训练的内存消耗。

的情况下trainlm训练算法,net.efficiency.memoryReduction优化可以提供帮助。 也可以代替默认的trainlm您可以尝试消耗内存较少的算法,例如trainrp。 有关训练算法的详细信息,请检查matlab 文档页面 http://www.mathworks.com/help/nnet/ug/train-the-network.html。 上面我假设您正在使用相应的 matlab 神经网络工具箱。

关于一次训练一个样本,您可以尝试在谷歌上搜索随机梯度下降算法。但是,它看起来并不在工具箱中的默认训练算法集中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Matlab中增量训练神经网络? 的相关文章

随机推荐