tensorflow 2.1 六步法搭建Keras神经网络模型

一、六步法搭建Keras神经网络模型
·第一步:导入库函数
·第二步:划分数据集
·第三步:搭建神经网络模型的tf.keras.models.Sequential,模型搭建
·第四步:compile选择损失函数,优化器,准确率表达形式......
·第五步:fit选择输入特征,标签,迭代次数,batch大小,数据集划分比例、每多少epoch验证一次数据集
·第六步:打印出模型summery并且验证模型


二、神经网络层

sequential是神经网络层的容器:
Flatten层不包含计算,只是将数据拉直为一维数组
Dense全连接层包含计算,可以设定神经元个数、激活函数、正则化方法(l1,l2)等
Conv2卷积层有卷积核个数、卷积核尺寸、卷积核步长、以及padding填充
LSTM层等


三、网络层创建函数介绍

       1.sequential函数介绍

其中正则化对应L1,和L2正则化方法

         2.compile函数

tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)的from_logits参数是在询问输出是否是原始输出或者概率分布输出,若是经过了softmax的概率分布输出,那么该参数设置为False

         3.fit函数

扫描二维码关注公众号,回复: 14824556 查看本文章

四、实例讲解

import tensorflow as tf
from sklearn import datasets
import numpy as np

x_train = datasets.load_iris().data
y_train = datasets.load_iris().target

np.random.seed(116)
np.random.shuffle(x_train)
np.random.seed(116)
np.random.shuffle(y_train)
tf.random.set_seed(116)

model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
])

model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])

model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)

model.summary()

首先获取鸢尾花分类的数据集并且打乱 ,创建神经网络层容器并添加了全连接层,同时设置正则化和激活函数,compile设置了学习率0.1的SGD优化器和损失函数(经过了softmax的概率分布输出,那么该参数设置为False),fit喂入数据集和标签并设置batch和epoch,切分数据集0.8:0.2,并且是20次epoch会验证一次准确率,最后打印神经网络模型如下:

结果: 

以上是简单的六步法tf.keras创建神经网络模型

参考链接:

https://www.icourse163.org/learn/PKU-1002536002?tid=1452937471#/learn/content?type=detail&id=1231348069&cid=1249387128

猜你喜欢

转载自blog.csdn.net/qq_46006468/article/details/119607501