Dal*_*eme 6 python neural-network keras
我正在使用带有张量流的Kears,我有一个3输出的模型,其中我只想训练2.
model = Model(input=input, output=[out1,out2,out3])
model.compile(loss=[loss1, loss2, loss3], optimizer=my_optimizer)
loss1(y_true, y_pred):
return calculate_loss1(y_true, y_pred)
loss2(y_true, y_pred):
return calculate_loss2(y_true, y_pred)
loss3(y_true, y_pred):
return 0.0*K.mean(y_pred)
Run Code Online (Sandbox Code Playgroud)
我尝试用上面的代码来做,但我不确定它做了我想做的事情.因此,我认为它会增加损失,并且会根据损失对每个输出进行训练,同时我根本不想进行训练out3.(我需要out3因为它用于测试).谁能告诉我如何实现这一目标或让我放心,代码实际上是我想要的?
Nas*_*Ben 14
你必须创建2个不同的模型
model1 = Model(input=input, output=[out1,out2])
model2 = Model(input=input, output=[out1,out2,out3])
Run Code Online (Sandbox Code Playgroud)
你编译两个但只适合第一个.他们将共享图层,因此即使没有经过训练,模型2也会从模型1中获取权重.但是如果out3中有一层可以训练但不在图形的输入和out1和out2之间的流动,那么该层将不会被训练,因此将保持其初始值.
这有帮助吗?:-)
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |