tensorflow学习笔记keras(5)------北京大学 曹健

tf.keras搭建网络八股

1. import

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

2. train,test

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

3. tf.keras.models.Sequential(逐层描述网络结构,走一边前向传播)

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

如:

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

全连接层tf.keras.layers.Dense( 神经元个数,
activation=”激活函数”,
kernel_regularizer=”正则化方式”)

其中:
activation(字符串给出)可选
relu、softmax、sigmoid、tanh 等

kernel_regularizer 可选
tf.keras.regularizers.l1() L1正则化、
tf.keras.regularizers.l2() L2正则化

卷积层tf.keras.layers.Conv2D( filter = 卷积核个数,kernel_size = 卷积核尺寸,strides = 卷积步长,padding = “valid” or “same”)

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

举例:

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

采用全连接层,3表示输入神经元个数,激活函数用relu,第三个参数用l2正则化。(易错点,选择激活函数可以用字符串或tf.nn.relu; 还有l2正则化后记得加括号,否则报错)

4. compile(训练方法的配置,优化器、损失函数、评测指标)

Model.compile( optimizer = 优化器, loss = 损失函数, metrics = [“准确率”])

  1. 优化器:

sgd’or tf.optimizers.SGD( lr=学习率,decay=学习率衰减率,
momentum=动量参数)
adagrad’or tf.keras.optimizers.Adagrad(lr=学习率,
decay=学习率衰减率)
adadelta’or tf.keras.optimizers.Adadelta(lr=学习率,
decay=学习率衰减率)
adam’or tf.keras.optimizers.Adam (lr=学习率,
decay=学习率衰减率)

  1. 损失函数:

mse’or tf.keras.losses.MeanSquaredError()
sparse_categorical_crossentropy
or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)

  1. metrics:
    accuracy’:y_和 y 都是数值,如 y_=[1] y=[1]。
    categorical_accuracy’:y_和 y 都是以独热码和概率分布表示。
    如 y_=[0, 1, 0], y=[0.256, 0.695, 0.048]。
    ‘sparse_ categorical_accuracy’:y_是以数值形式给出,y 是以独热码形式
    给出。 如 y_=[1],y=[0.256, 0.695, 0.048]。

通常用第三种。

model.compile(optimizer=tf.keras.optimizers.Adam(),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['sparse_categorical_accuracy'])

(优化器加括号,否则报错,此外括号内可设置学习率等参数,)

5. fit(输入特征和标签,batch,迭代次数)

model.fit(训练集的输入特征, 训练集的标签, batch_size, epochs,
validation_data = (测试集的输入特征,测试集的标签),
validataion_split = 从测试集划分多少比例给训练集,
validation_freq = 测试的 epoch 间隔次数)

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

6. summary(打印)

在这里插入图片描述

7. 总得

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=tf.nn.relu,
                           kernel_regularizer=tf.keras.regularizers.l2())])

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.1),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['sparse_categorical_accuracy'])

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

model.summary()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值