• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Keras从零学习-函数式模型-0x4

Keras admin 4个月前 (08-11) 361次浏览 0个评论 扫描二维码

序列模型的好处就是简单易理解,上一篇文章介绍了序列模型的简单使用模型定义序列模型

但是函数式模型定义会让你定义模型更加灵活。为什么称之为函数式,是因为你发现你在定义网路的时候就是在写各种函数的调用,所以看起来就是不断调用的函数来操作神经网络。

先看一个简单的例子(来源 keras 官网)

from keras.layers import Input, Dense
from keras.models import Model

# 这部分返回一个张量
inputs = Input(shape=(784,))

# 层的实例是可调用的,它以张量为参数,并且返回一个张量
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)

# 这部分创建了一个包含输入层和三个全连接层的模型
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(data, labels)  # 开始训练

与序列模型不一样的是:

  1. 序列在第一层网络中定义输入的大小,现在是直接给出 Input 层的输入。
  2. 序列模型每一层之间不需要指定输入,都是自动推导的,现在函数式定义需要指定

还有一点使用函数式的 API 就是你要获取任意中间层的数据会变得相对简单一点,不然你使用的序列模型是要去 get 指定网络层的 input 和 output,在函数式里面,直接获取对应的层的输出变量即可。

 

所以函数式模型定义的主要流程:

  1. 指定 Input
  2. 定义中间网络层处理
  3. 得到 Output
  4. compile 和 fit 数据

下一节继续讲解函数式灵活的一些实际应用。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Keras 从零学习-函数式模型-0x4
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!