我有一个已经训练了一段时间的标准神经网络,但是直到完美为止。培训课程结束后,我将网络保存在磁盘上。

一段时间后,我想从它离开的地方继续训练网络。问题是,似乎每次我开始一个新的培训课程时,权重和偏见似乎都已完全重置,这意味着我正在从头开始重新训练网络:

上届会议:

c++ - ANN培训进度会使用FANN重置每个新的培训类(class)-LMLPHP

新会议:

c++ - ANN培训进度会使用FANN重置每个新的培训类(class)-LMLPHP

这是我训练功能的摘录:

void trainNet(fann *net) {
    const unsigned int
        max_epochs = 1000,
        epochs_between_reports = 10;
    const float desired_error = 0.01f;
    net -> learning_momentum = 0.1f;
    fann_train_on_file(net, "sessions.data", max_epochs, epochs_between_reports, desired_error);
    fann_save(net, "network.net");
    fann_destroy(net);
}


我想念什么?对我来说似乎很直观,您可以跨多个会话训练网络。我错了吗?它是图书馆的限制吗?

两次会议之间的培训数据保持不变。这也不限于这个特定的网络-任何格式的网络似乎都会引发相同的问题。

最佳答案

我想念什么?


根据Documentation - FANN Training > Training Data Manipulation > fann_set_training_algorithm


  设置training algorithm


范例:

fann_set_training_algorithm(net, FANN_TRAIN_INCREMENTAL)

关于c++ - ANN培训进度会使用FANN重置每个新的培训类(class),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53447054/

10-10 13:41