这篇教程Keras函数式(Functional)模型写得很实用,希望能帮到您。
函数式(Functional)模型
- 只要模型不是一条路走到底的模型,或者模型需要多于一个的输出,那么都应该选择函数式模型.这是最广泛的一类模型.
- 层对象接受张量为参数,返回一个张量.输入和输出都是张量的一个框架就是一个模型,可以像Sequential一样被训练.
- 使用Model来初始化一个函数式模型,它需要一个或多个Input层作为输入,一个或多个层作为输出.常用的Model属性有layers,inputs,outpus.
- 所有的模型都是可调用的,就像层一样用一个张量来调用它.当调用一个模型时,它的结构和权重同时被重用了.
- 函数式模型的典型场景是多输入,多输出的模型:
- 根据层之间的关系建立不同的层
- 用layers.concatenate将不同层串联起来
- 用Model()中的inputs和outpus参数确定模型的输入与输出,这两个参数都是layer的list
- 用compile()编译模型
- 用fit()进行训练,x和y是对应输入和输出大小的数据的list
- 如果输入和输出是用name参数命名过的话,可以用名字与参数对应的字典来进行编译和训练.
- 函数式模型还可以用在使用共享层.当我们处理具有对称性的问题时需要对不同输入重复使用某一个模型,就可以让它们共享同一层.此时这个层拥有多个计算节点,所以需要使用layer.get_output_at(node_index)来得到对应节点的输出.
- Functional Model API
keras序贯(Sequential)模型 keras常用层Core |