关于tensorflow中tf.keras.models.Sequential()的用法
作者:yunfeather
这篇文章主要介绍了关于tensorflow中tf.keras.models.Sequential()的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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() #打印神经网络结构,统计参数数目
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。