如果我有如下的简单网络:
mod = Sequential()
mod.add(Dense(64, activation='relu', name='input', input_dim=input_size))
mod.add(Dense(64, activation='relu', name='hidden'))
mod.add(Dense(5, activation='softmax', name='output'))
输出5个类别。 如果我按顺序单独训练每个班级,我会重复以下过程:
步骤#1
mod.fit(...) # training file contains data of only class 1
mod.save()
步骤#2
mod.load()
mod.fit(...) # training file contains data of only class 2
mod.save()
我观察到虽然当我尝试使用1级和2级样本进行预测时,权重是从第一次拟合/保存中转移而来的,但它只预测了2级。(看起来忽略了第1类的第一个数据拟合)。 最后,如果我将1级和2级的训练数据加入到单个文件中并训练该文件,那么预测结果是准确的。 这是否意味着对于这样一个简单的网络无法执行所描述的增量训练。如果没有任何关于按照建议进行增量训练的想法?
提前谢谢。
答案 0 :(得分:0)
一个班级的学生因为没有替代学习而无法学习任何东西
所以 列车文件,包括每个类的样本保存
如果您想使用单个班级培训文件重复培训过程
使用其他类数据项添加一些旧数据以平衡类分发
然后加载已保存的网络
使用这个小数据集,应用转移学习(仅学习分类器层)