如何在keras中创建具有多个网络的层次结构?

时间:2017-08-21 15:16:46

标签: python neural-network keras

我想对不同的图片进行分类,例如猫和狗。为此,我想培养一个通用网络" A"只对输入是猫还是狗进行分类。之后,每个普通班级的专门子网应该预测狗或猫的种族。

我知道keras的功能api以及我如何将输出传递到另一个层或网络但我的问题是我如何将输出仅传递给一个专用网络,以便在我预测通用类之后唯一的网络将使用的是相应的特殊网络。

所以我想在keras中构建类似的东西:

x = Input(shape(100,))
network_a_out = NetworkA(100)(x)
if(network_a_out == classCat)
    out = NetworkCat(100)(x) # predict special race of cat
else:
    out = NetworkDog(100)(x) # predict special race of dog

有没有更好的方法在keras中解决这个问题而不使用多个if / else语句?

1 个答案:

答案 0 :(得分:0)

您可以尝试删除最后一层(预测狗/猫),并添加一个新图层来预测狗/猫的种族。这意味着,使用第一个NN作为预训练网络来预测动物种族。 你应该为狗和其他猫训练预训练网络。