我有两个CNN模型,这样连接 .
model1(input1,output)model2(model1.output,output2)
我希望每次迭代都单独更新每个模型并分别保存重量,但我不知道如何使用keras模型编译器和拟合生成器来实现这一点 .
我这样编码用于训练操作
model1.compile(optimizer = ...,epochs = 500)model2.compile(optimizer = ...,epochs = 500)
但我不希望model2获得训练操作完成的model1输出 . 我想在每次迭代时获得model1输出 .
model1生成一个图像,model2改进了model1的输出 . 我想用单独的反向训练进行训练,因为每个部分都有不同的角色 .
for each iteration model1(input1,output)update model1(loss(output))
model2(model1.output,output2)更新model2(丢失(output2))
1 回答
构建模型1,编译它,冻结模型1的层,然后用它们构建模型2,然后编译模型2 .
如果您现在训练模型2,则不会更新模型1的权重 .
How you can freeze layers in keras.