TensorFlow 2.0学习之路:用Keras构建简单网络



一、简介

Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。


1. 导入tf.keras

import tensorflow as tffrom tensorflow.keras import layersprint(tf.__version__)print(tf.keras.__version__)1.2
.3.4.


二、构建简单模型


1. 按顺序堆叠模型

序列模型各层之间是依次顺序的线性关系,模型结构通过一个列表来制定

model = tf.keras.Sequential()model.add(layers.Dense(32, activation='relu'))model.add(layers.Dense(32, 
activation='relu'))model.add(layers.Dense(10, activation='softmax'))1.2.3.4.


2. 网络配置

tf.keras.layers中网络配置

  • activation:设置层的激活函数。
  • kernel_initializer 和 bias_initializer:创建层权重(核和偏差)的初始化方案。此参数是一个名称或可调用对象,默认为 “Glorot uniform” 初始化器。
  • kernel_regularizer 和 bias_regularizer:应用层权重(核和偏差)的正则化方案,例如 L1 或 L2 正则化。默认情况下,系统不会应用正则化函数。
    示例:


layers.Dense(32, activation='sigmoid')layers.Dense(32, activation=tf.sigmoid)layers.Dense(32, 
kernel_initializer='orthogonal')layers.Dense(32, kernel_initializer=tf.keras.initializers
.glorot_normal)layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.01))layers
.Dense(32, kernel_regularizer=tf.keras.regularizers.l1(0.01))1.2.3.4.5.6.


三、训练和评估


1. compile用来配置模型的学习过程

model.compile(optimizer=tf.keras.optimizers.Adam(0.001),             
loss=tf.keras.losses.categorical_crossentropy,             
metrics=[tf.keras.metrics.categorical_accuracy])
# Configure a model for mean-squared error regression.model
.compile(optimizer=tf.train.AdamOptimizer(0.01),              loss='mse',       
# mean squared error              metrics=['mae'])  
# mean absolute error# Configure a model for categorical classification.model
.compile(optimizer=tf.train.RMSPropOptimizer(0.01),              
loss=keras.losses.categorical_crossentropy,              
metrics=[keras.metrics.categorical_accuracy])1.2.3.4.5.6.7.8.9.10.11.12.13.

参数说明:

  • optimizer:训练过程的优化方法。此参数通过 tf.train 模块的优化方法的实例来指定,比如:AdamOptimizer, RMSPropOptimizer,
    GradientDescentOptimizer。
  • loss:训练过程中使用的损失函数(通过最小化损失函数来训练模型)。 常见的选择包括:均方误差(mse),categorical_crossentropy和binary_crossentropy。 损失函数由名称或通过从tf.keras.losses模块传递可调用对象来指定。
  • metrics:训练过程中,监测的指标(Used to monitor training)。
    指定方法:名称 或 可调用对象 from the tf.keras.metrics 模块。


2. 数据小的时候输入Numpy数据,模型使用fit训练数据:

import numpy as nptrain_x = np.random.random((1000, 72))train_y = np.random
.random((1000, 10))val_x = np.random.random((200, 72))val_y = np
.random.random((200, 10))model.fit(train_x, train_y, epochs=10, 
batch_size=100,          validation_data=(val_x, val_y))1.2.3.4.5.6.7.8.9.10.

fit参数说明:

  • epochs:训练多少轮。(小批量)
  • batch_size:当传递NumPy数据时,模型将数据分成较小的批次,并在训练期间迭代这些批次。 此整数指定每个批次的大小。 请注意,如果样本总数不能被批量大小整除,则最后一批可能会更小。
  • validation_data:在对模型进行原型设计时,您希望轻松监控其在某些验证数据上的性能。 传递这个参数 - 输入和标签的元组 - 允许模型在每个epoch的末尾以传递数据的推理模式显示损失和度量。
    这里根据需要也可以不加验证 validation_data。


3. 数据集api tf.data输入数据

dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))dataset = dataset
.batch(32)dataset = dataset.repeat()val_dataset = tf.data.Dataset
.from_tensor_slices((val_x, val_y))val_dataset = val_dataset
.batch(32)val_dataset = val_dataset.repeat()model.fit(dataset, 
epochs=10, steps_per_epoch=30,          validation_data=val_dataset, validation_steps=3)1.2.3.4.5.6.7.8.9.

这里,fit方法使用steps_per_epoch参数,这是模型在移动到下一个epoch之前运行的训练步数。
由于数据集生成批量数据,因此此代码段不需要batch_size。
这里的validation_data也按实际需要赋值,可以不加。


4. 评估evaluate 与 预测predict

test_x = np.random.random((1000, 72))test_y = np.random
.random((1000, 10))model.evaluate(test_x, test_y, batch_size=32)test_data = tf
.data.Dataset.from_tensor_slices((test_x, test_y))test_data = test_data.batch(32)
.repeat()model.evaluate(test_data, steps=30)# predictresult = model.predict(test_x, 
batch_size=32)print(result)1.2.3.4.5.6.7.8.9.


四、创建一个最简单的模型并训练、预测

import tensorflow as tfimport numpy as npfrom tensorflow import kerasmodel = tf.keras
.Sequential(            [keras.layers.Dense(units=1, input_shape=[1])]            )model
.compile(optimizer='sgd', loss='mean_squared_error')xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], 
dtype=float)ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)model.fit(xs, ys, 
epochs=500)print(model.predict([10.0]))1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空