Tensorflow2.0入门教程4:顺序式模型和函数式模型搭建神经网络

更新时间:2023-06-23 22:03:10 阅读: 评论:0

Tensorflow2.0⼊门教程4:顺序式模型和函数式模型搭建神经⽹络
tf.kears
Keras 是⼀个⼴为流⾏的⾼级神经⽹络 API,简单、快速⽽不失灵活性,现已得到 TensorFlow 的官⽅内置和全⾯⽀持。
两个重要概念:模型(Model)和层(Layer)
层将各种计算流程和变量进⾏了封装(例如基本的全连接层,CNN 的卷积层、池化层等),⽽模型则将各种层进⾏组织和连接,并封装成⼀个整体,描述了如何将输⼊数据通过各种层以及运算⽽得到输出。
import tensorflow as tf
⼀、神经⽹络层(Layer)API: tf.keras.layers
层将各种计算流程和变量进⾏了封装,包含了神经⽹络层全连接层,CNN的卷积层、池化层等。
1.Den
全连接层
Arguments:
units: Positive integer, dimensionality of the output space.
activation: Activation function to u. If you don’t specify anything, no activation is applied (ie. “linear” activation: a(x) = x).
u_bias: Boolean, whether the layer us a bias vector.
何凯文六级作文预测kernel_initializer: Initializer for the kernel weights matrix.
bias_initializer: Initializer for the bias vector.
混蛋的英文kernel_regularizer: Regularizer function applied to the kernel weights matrix.
bias_regularizer: Regularizer function applied to the bias vector.
activity_regularizer: Regularizer function applied to the output of the layer (its “activation”)…
kernel_constraint: Constraint function applied to the kernel weights matrix.
bias_constraint: Constraint function applied to the bias vector.
Input shape:
N-D tensor with shape: (batch_size, …, input_dim). The most common situation would be a 2D input with shape
(batch_size, input_dim).艾玛是什么意思
Output shape:
N-D tensor with shape: (batch_size, …, units). For instance, for a 2D input with shape (batch_size, input_dim), the output would have shape (batch_size, units).
activation激活函数
sigmoid
softmax
relu
tf.keras.activations.sigmoid(x)
tf.keras.activations.softmax(x)
tf.lu(x)
tf.keras.layers.Den(units=100,input_shape(2,), lu)
tf.keras.layers.Den(units=100, lu)
tf.keras.layers.Den(units=100, activation="sigmoid")
2.Conv1D、Conv2D
卷积层
tf.keras.layers.Conv2D()
tf.keras.layers.Conv1D()
3.RNN、LSTM、GRU
循环神经⽹络层
tf.keras.layers.SimpleRNN()
tf.keras.layers.LSTM()
tf.keras.layers.GRU()野孩子插曲
⼆、搭建模型(Model)⽅法
顺序式模型:通过Sequential类API;
函数式模型:通过Model类API;
⼀般步骤:
1.构建Sequential类Model对象
2.堆叠神经⽹络层(Layer)
3.Model类compile⽅法定义训练参数(优化⽅法、损失函数、评估⽅法)
4.Model类fit⽅法训练模型
5.Model类evaluate评估模型
6.Model类predict模型预测
1 顺序式模型:通过Sequential类建⽴模型广外自考
顺序式模型的编程特点:
Layer提供input与output属性;
Sequential类通过Layer的input与output属性来维护层之间的关系,构建⽹络模型;
第⼀个Layer必须是InputLayer或者Input函数构建的张量;
将神经⽹络层按按特定顺序叠加起来
add⽅法构建模型
提供⼀个层列表构建模型
model = tf.keras.Sequential()
1.1 add⽅法构建模型
model.add(tf.keras.layers.Den(100,input_shape=(2,),activation="relu"))外语培训学校
model.add(tf.keras.layers.Den(10,activation="softmax"))
查看模型结构
model.summary()
Model: "quential_2"
_________________________________________________________________
邦乔维Layer (type)                Output Shape              Param #
=================================================================
den_2 (Den)              (None, 100)              300
_________________________________________________________________
den_3 (Den)              (None, 10)                1010爱你单词
=================================================================
Total params: 1,310
Trainable params: 1,310
Non-trainable params: 0
_________________________________________________________________
1.2 通过向 tf.keras.Sequential() 提供⼀个层的列表,Keras将它们⾃动⾸尾相连,就能快速地建⽴⼀个 tf.keras.Model 模型并返回,形成模型呢。
model = tf.keras.Sequential([
tf.keras.layers.Den(100,input_shape=(2,),activation="relu"),
tf.keras.layers.Den(10,activation="softmax")
])
model.summary()
Model: "quential_3"
_________________________________________________________________
Layer (type)                Output Shape              Param #
=================================================================
den_4 (Den)              (None, 100)              300
_________________________________________________________________
den_5 (Den)              (None, 10)                1010
=================================================================
Total params: 1,310
Trainable params: 1,310
Non-trainable params: 0
_________________________________________________________________
2 函数式模型:通过Model类API
顺序式模型这种层叠结构并不能表⽰任意的神经⽹络结构。为此,Keras 提供了 Functional API,帮助我们建⽴更为复杂的模型,例如多输⼊ / 输出或存在参数共享的模型。其使⽤⽅法是将层作为可调⽤的对象并返回张量,并将输⼊向量和输出向量提供给 tf.keras.Model 的inputs 和 outputs 参数,⽰例如下:
inputs = tf.keras.Input(shape=(2,))
x = tf.keras.layers.Den(units=100, lu)(inputs)
x = tf.keras.layers.Den(units=10)(x)
outputs = tf.keras.layers.Softmax()(x)
model = tf.keras.Model(inputs=inputs, outputs=x)
model.summary()
extraModel: "model"
_________________________________________________________________
Layer (type)                Output Shape              Param #
=================================================================
input_1 (InputLayer)        [(None, 2)]              0
_________________________________________________________________
den_6 (Den)              (None, 100)              300
_________________________________________________________________
den_7 (Den)              (None, 10)                1010
=================================================================
Total params: 1,310
Trainable params: 1,310
Non-trainable params: 0
_________________________________________________________________
三、使⽤ Keras Model 的 compile、fit 、evaluate、predict ⽅法训练、评估模型、模型预测
3.1 当模型建⽴完成后,通过tf.keras.Model的compile⽅法配置训练过程:
tf.pile 接受 3 个重要的参数:
oplimizer :优化器,可从 tf.keras.optimizers 中选择;
loss :损失函数,可从 tf.keras.loss 中选择;
metrics :评估指标,可从 ics 中选择。
categorical_crosntropy和spar_categorical_crosntropy的区别:
categorical_crosntropy : one-hot编码:[0, 0, 1], [1, 0, 0], [0, 1, 0]
spar_categorical_crosntropy:数字编码:2, 0, 1
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
loss=tf.keras.loss.spar_categorical_crosntropy,
#          loss = tf.keras.loss.SparCategoricalCrosntropy(),
metrics=[ics.spar_categorical_accuracy]
)
或者
loss ="spar_categorical_crosntropy",
metrics=["spar_categorical_accuracy"])
3.2 接下来,可以使⽤ tf.keras.Model 的 fit ⽅法训练模型:
tf.keras.Model.fit 接受 6 个重要的参数:
x :训练数据;
y :⽬标数据(数据标签);
epochs :将训练数据迭代多少遍;中国春节 bbc
batch_size :批次的⼤⼩;
validation_data :验证数据,可⽤于在训练过程中监控模型的性能。
verbo:⽇志显⽰,0为不在标准输出流输出⽇志信息,1为输出进度条记录,2为每个epoch输出⼀⾏记录model.fit(x=train_data,y=train_label, epochs=num_epochs, batch_size=batch_size)
3.3 使⽤ tf.keras.Model.evaluate 评估训练效果,提供测试数据及标签即可:
model.evaluate(x=test_data, y=test_label,epochs=num_epochs)
3.4 使⽤ tf.keras.Model.predict 评估训练效果,提供预测数据即可:
model.predict(x=pred_data)
⽰例:TensorFlow 下的线性回归
x = tf.constant([1.0,2.0,3.0,4.0,5.0,6.0])
y = tf.constant([5.0,6.0,7.0,8.0,9.0,10.0])
model = tf.keras.Sequential()
model.add(tf.keras.layers.Den(1,input_shape=(1,)))
model.summary()
Model: "quential_1"
_________________________________________________________________
Layer (type)                Output Shape              Param #
=================================================================
den_1 (Den)              (None, 1)                2
=================================================================
Total params: 2
Trainable params: 2
Non-trainable params: 0
_________________________________________________________________
# 定义训练参数
optimizer=tf.keras.optimizers.SGD(learning_rate=0.05),# 指定优化器
#    loss=tf.keras.loss.MSE,  # 指定损失函数
loss ='m'
)

本文发布于:2023-06-23 22:03:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1024159.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   训练   输出   提供   神经   评估   顺序   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图