机器学习(七)——tf.keras搭建神经网络固定模式

一、总纲(一般按照下面6步搭建)

  • import——导入相关模块

  • train,test——指定训练集与测试集

  • model = tf.keras.models.Sequential——在Sequential搭建神经网络,描述每层网络

  • model.compile——配置训练方法,优化器,损失函数,评测指标

  • model.fit——执行训练过程,告知训练集与测试集,设置batch,迭达多少次数据集

  • model.summary——用summary打印出网络的结构和参数统计

二、六步法详解

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

网络结构举例:

拉直层: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(filters = 卷积核个数, kernel_size = 卷积核尺寸,strides = 卷积步长, padding = "valid" or "same")

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

2、model.compile(optimizer = 优化器, loss = 损失函数, metrics = ["准确率"])

Optimizer可选:(下面的后者可以使用超参数,初学建议直接用前面的)
'sgd' or tf.keras.optimizers.SGD(lr=学习率, momentum=动量参数)
'adagrad' or tf.keras.optimizers.Adagrad(lr=学习率)
'adadelta' or tf.keras.optimizers.Adadelta(lr=学习率, momentum=动量参数)
'adam' or tf.keras.optimizers.Adam(lr=学习率, beta_1=0.9, beta_2=0.99)

loss可选:(均方误差与交叉熵)

'mse' or tf.keras.losses.MeanSquaresError()
'sparse_categorical_crossentropy' or
tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)

Metrics可选:(告知网络评测指标)
'accuracy':y_和y都是数值
'categorical_accuracy':y_和y都是独热码(概率分布)
'sparse_categorical_accuracy':y_是数值,y是独热码(概率分布)

3、model.fit(训练集的输入特征,训练集的标签,

batch_size=,epochs=,

validation_data=(测试集输入特征,测试集的标签),

validation_split=从训练集划分多少比例给测试集,

validation_freq=多少次epoch测试一次)

4、model.summary()打印出网络结构和参数统计

三、案例(鸢尾花分类用六步法实现)

import tensorflow as tf
import tensorflow.python.keras as keras
import numpy as np;
from sklearn import datasets  ##加载训练数据集


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 = keras.models.Sequential([
    keras.layers.Dense(3, activation='softmax', kernel_regularizer=keras.regularizers.l2())
])
###设置学习率与优化器,设置交叉熵loss函数,设置评测标准
model.compile(optimizer='SGD',
              loss=keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])
###设置训练集,batch_size的数值尽量设为2的n次方 validation_split是划分多少作为测试,validation_freq是每20次评测一下
model.fit(x_train, y_train, batch_size=32, epochs=500,validation_split=0.2,validation_freq=20)
model.summary()

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
tf.keras中创建全连接神经网络的步骤如下: 1. 首先,我们需要使用tf.keras.models.Sequential()函数来创建一个Sequential模型,该模型将用于搭建神经网络。 2. 接下来,我们需要使用tf.keras.layers.Flatten()函数将数据拉直为一维数组,并将其作为输入特征输入神经网络。这个函数将把784个像素点的灰度值作为输入特征。 3. 然后,我们可以使用tf.keras.layers.Dense()函数来添加全连接层。这个函数需要指定神经元的个数、激活函数和正则化方法(可选)。 通过以上步骤,我们可以使用tf.keras创建全连接神经网络。请注意,以上步骤只是简要介绍了创建全连接神经网络的一般步骤,具体的网络结构和参数设置可能因任务而异。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [机器学习()——tf.keras搭建神经网络固定模式](https://blog.csdn.net/qq_40739219/article/details/123349100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [使用tf.keras快速搭建神经网络](https://blog.csdn.net/qq_43753724/article/details/124741375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值