tf.keras学习总结(一):keras的Sequential模型编写方式

版权声明:本文为博主的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。


tf.keras训练模型例子:实现单变量线性回归

单变量线性回归算法(如,x代表学历,f(x)代表收入):f(x)=ax+b


在这里插入图片描述


该例子选用Sequential序贯模型

  • 序贯模型是函数式模型的简略版,为最简单的线性、从头到尾的结构顺序,不分叉,是多个网络层的线性堆叠。
  • Keras实现了很多层,包括core核心层,Convolution卷积层、Pooling池化层等非常丰富有趣的网络结构。
  • 在 Keras 中,我们可以通过组合层来构建模型,直接堆叠各个层。

个人总结:
整个过程可分为五步:
1、创建Sequential模型
2、添加所需要的神经层
3、使用.compile方法确定模型训练结构
4、使用.fit方法使模型与训练数据“拟合”
5、predict方法进行预测。


首先创建一个模型结构:

    import tensorflow as tf
    model = tf.keras.Sequential()   # 顺序模型,一个输入一个输出

使用.add()函数可以添加层Dense:建立f(x)=ax+b这个模型

	# Dense的第一个参数是输出数据的维度,input_shape是输入数据的维度,在该例子中只需要输入x,所以维度为1,且要用元组的形式表示,需要加个逗号
    model.add(tf.keras.layers.Dense(1, input_shape=(1,)))   # Dense层生成了两个参数,即a和b
    # 可以通过model.summary()来得知模型的形状

我们可以使用很多 tf.keras.layers,详见:https://tensorflow.google.cn/api_docs/python/tf/keras/layers

这些layers有相同的构造函数参数:
在这里插入图片描述


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

    model.compile(optimizer='adam', loss='mse')

tf.keras.Model.compile 采用三个重要参数:

  • optimizer:此对象会指定训练过程。从 tf.train 模块向其传递优化器实例,例如 AdamOptimizerRMSPropOptimizerGradientDescentOptimizer
  • loss:要在优化期间最小化的函数。常见选择包括均方误差 (mse)、categorical_crossentropy 和binary_crossentropy。损失函数由名称或通过tf.keras.losses 模块传递可调用对象来指定。
  • metrics:用于监控训练。它们是 tf.keras.metrics 模块中的字符串名称或可调用对象。

然后使用.fit方法进行测试数据与模型的拟合:

实例:

    import pandas as pd
    
    data = pd.read_csv('./dataset/Income1.csv')  # 读取Income1数据集
    
    x = data.Education   # 变量
    y = data.Income      # 因变量

    
    history = model.fit(x, y, epochs=5000)

在这里插入图片描述

keras.models.Model.fit()函数各个参数的详解:https://tensorflow.google.cn/api_docs/python/tf/keras/models/Model#fit


预测 tf.keras.Model.predict 方法

    model.predict(x)  # x是前面的data.Education
    # or
    model.predict(pd.Series([20]))    # 或者准确指定一个受教育年限
发布了5 篇原创文章 · 获赞 1 · 访问量 477

猜你喜欢

转载自blog.csdn.net/wanjia1124/article/details/100083666