tensorflow中tf.keras.models.Sequential()用法

tensorflow中tf.keras.models.Sequential()用法

Sequential()方法是一个容器,描述了神经网络的网络结构,在Sequential()的输入参数中描述从输入层到输出层的网络结构

model = tf.keras.models.Sequential([网络结构])  #描述各层网络

网络结构举例:

拉直层:tf.keras.layers.Flatten() #拉直层可以变换张量的尺寸,把输入特征拉直为一维数组,是不含计算参数的层

全连接层:tf.keras.layers.Dense(神经元个数,

                                                      activation = "激活函数“,

                                                      kernel_regularizer = "正则化方式)

其中:activation可选 relu 、softmax、 sigmoid、 tanh等

           kernel_regularizer可选 tf.keras.regularizers.l1() 、tf.keras.regularizers.l2()

卷积层:tf.keras.layers.Conv2D(filter = 卷积核个数,

                                                   kernel_size = 卷积核尺寸,

                                                   strides = 卷积步长,

                                                   padding = ”valid“ or "same")

LSTM层:tf.keras.layers.LSTM()

                                                                                   

 

实例代码:

#第一步,import
import tensorflow as tf #导入模块
from sklearn import datasets #从sklearn中导入数据集
import numpy as np #导入科学计算模块
import keras

#第二步,train, test
x_train = datasets.load_iris().data #导入iris数据集的输入

y_train = datasets.load_iris().target #导入iris数据集的标签

np.random.seed(120) #设置随机种子,让每次结果都一样,方便对照

np.random.shuffle(x_train) #使用shuffle()方法,让输入x_train乱序

np.random.seed(120) #设置随机种子,让每次结果都一样,方便对照

np.random.shuffle(y_train) #使用shuffle()方法,让输入y_train乱序

tf.random.set_seed(120) #让tensorflow中的种子数设置为120

#第三步,models.Sequential()
model = tf.keras.models.Sequential([ #使用models.Sequential()来搭建神经网络
    tf.keras.layers.Dense(3, activation = "softmax", kernel_regularizer = tf.keras.regularizers.l2()) #全连接层,三个神经元,激活函数为softmax,使用l2正则化
])

#第四步,model.compile()
model.compile(  #使用model.compile()方法来配置训练方法
    optimizer = tf.keras.optimizers.SGD(lr = 0.1), #使用SGD优化器,学习率为0.1
    loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits = False), #配置损失函数
    metrics = ['sparse_categorical_accuracy'] #标注网络评价指标
)

#第五步,model.fit()
model.fit(  #使用model.fit()方法来执行训练过程,
    x_train, y_train, #告知训练集的输入以及标签,
    batch_size = 32, #每一批batch的大小为32,
    epochs = 500, #迭代次数epochs为500
    validation_split = 0.2, #从测试集中划分80%给训练集
    validation_freq = 20 #测试的间隔次数为20
)

#第六步,model.summary()
model.summary() #打印神经网络结构,统计参数数目

 

  • 77
    点赞
  • 354
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: from keras import models是导入Keras的模型模块。Keras是一个高级神经网络API,它可以在TensorFlow、Theano和CNTK等低级库之上运行。使用Keras可以更容易地构建和训练深度学习模型。models模块包含了一些常用的模型,如Sequential、Model等。通过导入models模块,可以方便地使用这些模型来构建自己的深度学习模型。 ### 回答2: Keras是一个Python深度学习库,可帮助用户创建、训练和部署深度学习模型。在Kerasmodels是其一个重要的模块,它提供了创建和操作模型的工具。 首先,从Keras导入models模块,可以使用models.Sequential()函数创建一个顺序模型,该模型是一系列层按顺序堆叠起来的线性堆积,其每一层都有一个输入张量和一个输出张量。在层之间定义输入张量和输出张量的方式是由用户定义的。 在models模块,还可以使用models.Model()函数创建一个通用的模型,该模型可以将几个输入张量映射到几个输出张量,输出可以是单个的张量或一个列表。同样,模型的每一层都有一个输入张量和一个输出张量。 为了编译模型,可以使用compile()函数,该函数定义了模型的优化器,损失函数和评估度量方式。使用fit()函数对训练集进行拟合,评估模型性能。使用predict()函数对新的数据样本进行预测。 在创建模型之前,还需要使用下面的函数来定义网络层: 1. Dense层:全连接层,包含输入层、隐藏层和输出层。 2. Convolutional层:用于处理图像数据的卷积层。 3. Pooling层:在图像处理主要用于减少数据量。 4. LSTM层:专门用于处理序列数据。 5. Dropout层:防止模型过拟合。 在使用models模块时,需要注意一些参数,例如: 1. units: 表示该层的输出维度。 2. input_shape: 表示该层输入张量的形状。 3. activation: 激活函数,如 relu、sigmoid、tanh 等。 总之,Kerasmodels模块提供了创建、训练和部署深度学习模型的一系列工具,可以使用各种网络层和参数来定义模型。通过与其他Keras模块的配合使用,可以方便地进行模型测试、调整和预测。 ### 回答3: 从Keras导入`models`模块,是用于构建深度学习模型的关键模块之一。Keras是一个高级的深度学习框架,它提供了许多深度学习模块以及进行模型构建所需要的基础工具。 `models`模块是基于Keras这个深度学习框架的构建模拟器,它可以用来创建一个抽象的神经网络结构。在一个神经网络结构,包含了一系列的层,对于每一个层都有它独特的计算方式。 使用`models`模块,我们可以很方便地创建、编译和训练神经网络模型。这个模块提供了许多预定义好的网络架构,比如全连接层网络卷积神经网络、循环神经网络等。我们也可以通过这个模块自定义神经网络模型,来满足特定领域或者任务的需求。 通过`models`模块创建的神经网络模型,可以将一些层堆叠在一起,形成一个相互连接的网络。其第一层(输入层)会接受原始数据,比如图像或文本等。间的层将进行特征提取和计算,最后的层将产生输出数据,比如对于某个任务的预测结果。 除了上述基本功能之外,`models`模块还包括许多其他特性,包括:处理丢失值的方法、网络的正则化方法、一系列的激活函数、网络权值初始化、自定义优化器等。 综上所述,`models`模块是Keras深度学习框架非常重要的一部分,它可以帮助我们轻松创建、编译和训练各种类型的深度学习模型,使得深度学习应用变得更加容易和高效。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值