前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow学习(keras)

tensorflow学习(keras)

原创
作者头像
opprash
修改2019-09-20 18:13:37
5720
修改2019-09-20 18:13:37
举报

keras是什么?

keras是一个可用于快速构建和训练深度学习模型的API。里面的模型的一般的使用流程如下:

  1. 构造数据
  2. 构造标签
  3. 构造输入层
  4. 构造隐藏层
  5. 构造输出层
  6. 实例化模型
  7. 配置模型
  8. 训练模型

简单模型的构建

通常是构建序列模型,也就是一个全连接的多层感知机:

代码如下:其中使用layers.Dense()函数设置每一层的相关配置,具体内容可参考官网

代码语言:javascript
复制
#实例化模型为model=tf.keras.Sequential()
model=tf.keras.Sequential()
#添加第一层,激活函数是relu
model.add(layers.Dense(64,activation='relu'))
#添加第二层,激活函数是relu
model.add(layers.Dense(64,activation='relu'))
#添加第三层,激活函数是softmax

模型的训练和评估

构建好模型后,通过调用 compile 方法配置该模型的学习流程:

  1. optimizer:此对象会指定训练过程。从tr.train模块向其传递优化器实例,例如tf.train.AdamOptimizertf.train.RMSPropOptimizertf.train.GradientDescentOptimizer
  2. loss:要在优化期间最小化的函数。常见选择包括均方误差 (mse)、categorical_crossentropybinary_crossentropy。损失函数由名称或通过从 tf.keras.losses 模块传递可调用对象来指定。
  3. metrics:用于监控训练。它们是 tf.keras.metrics 模块中的字符串名称或可调用对象。
代码语言:javascript
复制
model.compile(optimizer=tf.train.AdagradOptimizer(0.001),loss='categorical_crossentropy',metrics=['accuracy'])

高阶模型的构造

序列模型中,由于序列模型无法表达任意的模型,所以可以构建高阶模型来构建自己想要的模型,以下示例使用函数式 API 构建一个简单的全连接网络,构造构成其实和序列化的过程差不多:

代码语言:javascript
复制
    #构造数据
    data = np.random.random((1000, 32))
    #构造标签
    labels = np.random.random((1000, 10))   
    #构造输入层
    inputs=tf.keras.Input(shape=(32,))
    # 构造第一个隐藏层
    x=layers.Dense(64,activation='relu')(inputs)
    # 构造第二个隐藏层
    x=layers.Dense(64,activation='relu')(x)
    # 构造输出层
    predic=layers.Dense(10,activation='softmax')(x)
    #实例化模型
    model=tf.keras.Model(inputs=inputs,output=predic)
    # 配置模型
    model.compile(optimizer=tf.train.RMSPropOptimizer(0.001),loss='categorical_crossentropy',metrics=['accuracy'])
    # 训练模型
    model.fit(data,labels,batch_size=32,epochs=5)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档