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

tensorflow中keras.models()的使用总结

作者头像
用户1483438
发布2022-01-02 12:34:50
6.3K0
发布2022-01-02 12:34:50
举报
文章被收录于专栏:大数据共享

初学者在调用keras时,不需要纠结于选择tf.keras还是直接import keras,现如今两者没有区别。从具体实现上来讲,Keras是TensorFlow的一个依赖(dependency)。但,从设计上希望用户只透过TensorFlow来使用,即tf.keras。

所以在此主要记录一下tf.keras.models的使用。

函数型模型

即利用函数API,从inputs开始,然后指定前向过程,根据输入和输出建立模型。

由于Layer提供了集中函数式的调用方式,通过这种调用构建层与层之间的网络模型。

所以其编程特点:

1. 我们构建层,通过layer对象的可调用特性,或者使用apply与call实现链式函数调用。

2. Model只需通过inputs和outputs。

示例1:

1. 导入

import tensorflow as tf import tensorflow.keras as keras import tensorflow.keras.layers as layers import sklearn.datasets as datasets


2. 定义layer层

input_layer = keras.Input(shape=(4,)) # 隐藏层:8-4 hide1_layer = layers.Dense(units=8, activation='relu') hide2_layer = layers.Dense(units=4, activation='relu') # 输出层:1 output_layer = layers.Dense(units=1, activation='sigmoid')

3. 构建layer之间的函数链式关系

hide1_layer_tensor = hide1_layer(input_layer) hide2_layer_tensor = hide2_layer(hide1_layer_tensor) output_layer_tensor = output_layer(hide2_layer_tensor)

这里同样可以使用layer的apply函数,相当于`self.__call__`的别名,将输入(参数)应用在layer上。

hide1_layer_tensor = hide1_layer(input_layer) hide2_layer_tensor = hide2_layer(hide1_layer_tensor) output_layer_tensor = output_layer(hide2_layer_tensor)

4. 使用inputs与outputs建立函数链式模型

model = keras.Model(inputs=input_layer, outputs=output_layer_tensor)

5. 训练

# .1 训练参数 model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['mse']) # .2 训练 data, target = datasets.load_iris(return_X_y=True) data = data[:100, :] target = target[:100] model.fit(x=data, y=target, batch_size=10, epochs=100, verbose=0)

6. 预测

# .3 预测评估 pre_result = model.predict(data) category = [0 if item<=0.5 else 1 for item in pre_result] accuracy = (target == category).mean() print(F'分类准确度:{accuracy*100.0:5.2f}%', )


输出结果:分类准确度:99.00%


顺序式模型

顺序式模型的编程特点:

1. Layer提供input与output属性;

2. Sequential类通过Layer的input与output属性来维护层之间的关系,构建网络模型;

其中第一层必须是InputLayer或者Input函数构建的张量;

实例

导入和定义layer就不再赘述,仅在步骤3、4的有所改变,可直接使用Sequential构建顺序模型,即使用add方法直接添加layer。

seq_model = keras.Sequential() seq_model.add(input_layer) seq_model.add(hide1_layer) seq_model.add(hide2_layer) seq_model.add(output_layer)

使用layer参数构建模型

seq_model = keras.Sequential(layers=[input_layer, hide1_layer, hide2_layer, output_layer])

之后的训练中不要忘记改变model变量。

本文系转载,前往查看

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

本文系转载前往查看

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数型模型
    • 示例1:
    • 顺序式模型
      • 实例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档