人工智能应用工程师技能提升系列2、——TensorFlow2——keras高级API训练神经网络模型

2023-11-23 10:32:01 浏览数 (2)


TensorFlow 2中的Keras概述

TensorFlow 2中的Keras是一个高级深度学习API,它是TensorFlow的一个核心组件。Keras被设计为用户友好、模块化和可扩展的,允许快速构建和训练深度学习模型。

在TensorFlow 2中,Keras被集成作为TensorFlow的一个子模块,这意味着它可以直接利用TensorFlow的强大功能和优化。与独立的Keras库相比,TensorFlow 2中的Keras具有更紧密的集成和更多的功能。

使用TensorFlow 2中的Keras,您可以轻松地定义和训练各种深度学习模型,包括卷积神经网络(CNN)、循环神经网络(RNN)和全连接网络。它提供了许多预定义的层、损失函数和优化器,您可以轻松地将它们组合起来构建自定义模型。

此外,TensorFlow 2中的Keras还支持分布式训练,允许您利用多个GPU或TPU来加速模型训练。它还提供了对TensorBoard的可视化支持,使您能够轻松地监视和调试模型的训练过程。

总之,TensorFlow 2中的Keras是一个强大而易于使用的高级深度学习API,它允许您快速构建、训练和调试深度学习模型,并充分利用TensorFlow的功能和优化。

使用keras高级API训练神经网络模型

代码承接:人工智能应用工程师技能提升系列1、——TensorFlow2-CSDN博客

代码语言:javascript复制
import tensorflow as tf
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
# 直接获取二维数组·方便索引缩着切分
data = pd.read_csv("tensorflow_test_info.csv").values
# 样本特征·第一列的值
x = data[:, 0]
# 目标值·第二列的值
y = data[:, 1]

# 构造线性模型y=wx b
# 我们计算分析的是浮点数,所以加上.0
w = tf.Variable(-10.0)
b = tf.Variable(7.0)


def model(x, w, b):
    """模型函数"""
    return w * x   b


# 视图呈现
plt.figure(figsize=(10, 5))
plt.axis([0.1, 0.55, 1, 7])
plt.scatter(x, y)


def loss(predicted_y, target_y):
    """损失函数"""
    return tf.reduce_mean(tf.square(predicted_y - target_y))


learning_rate = 0.2  # 初始学习速率时0.2

 正文

这里导包的时候需要注意,使用的是2.1.5版本,不能使用tf.keras来进行操作,需要单独的使用keras来操作。

代码语言:javascript复制
import tensorflow as tf
import pandas as pd
import matplotlib.pyplot as plt
import keras
from keras.models import Sequential
from keras.layers import Dense, Activation

# 读取数据
# 直接获取二维数组·方便索引缩着切分
data = pd.read_csv("tensorflow_test_info.csv").values
# 样本特征·第一列的值
x = data[:, 0]
# 目标值·第二列的值
y = data[:, 1]

# 构造线性模型y=wx b
# 我们计算分析的是浮点数,所以加上.0
w = tf.Variable(-10.0)
b = tf.Variable(7.0)


def model(x, w, b):
    """模型函数"""
    return w * x   b


# 视图呈现
plt.figure(figsize=(10, 5))
plt.axis([0.1, 0.55, 1, 7])
plt.scatter(x, y)


def loss(predicted_y, target_y):
    """损失函数"""
    return tf.reduce_mean(tf.square(predicted_y - target_y))


# learning_rate = 0.2  # 初始学习速率时0.2

model_net = Sequential()
model_net.add(Dense(1, input_shape=(1,)))
# 模型编译
model_net.compile(loss='mse', optimizer=keras.optimizers.SGD(learning_rate=0.5))
# 训练500轮
model_net.fit(x, y, verbose=1, epochs=500, validation_split=0.2)

训练轮数500,可以看到对应的损失值。

使用Keras高级API训练神经网络模型的优势包括:

用户友好性:Keras具有非常简洁和直观的API,使得用户能够轻松上手并快速构建和训练神经网络模型。 模块化和可扩展性:Keras的模型是由独立的、完全可配置的模块构成的,这些模块包括神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法等。这种模块化设计使得Keras具有很好的扩展性,用户可以轻松自定义模块来构建更复杂的模型。 支持多种神经网络结构:Keras支持卷积神经网络、循环神经网络以及两者的组合,使得用户能够轻松应对各种深度学习任务。 在CPU和GPU上无缝运行:Keras模型可以在CPU和GPU上无缝运行,这使得用户能够充分利用硬件资源,提高模型训练速度。 调试和扩展方便:Keras模型定义在Python代码中,这些代码紧凑、易于调试,并且易于扩展。用户可以轻松修改代码来调整模型结构,进行模型调试和扩展。 高度优化的性能:Keras内部采用了高度优化的C/C 代码,使得它能够轻松处理大规模数据集,提高模型训练效率。 社区支持和文档完善:Keras是一个开源项目,拥有庞大的用户社区和完善的文档。这意味着用户可以轻松找到各种教程、示例和解决方案,加快学习速度和提高工作效率。 综上所述,使用Keras高级API训练神经网络模型具有很多优势,包括用户友好性、模块化和可扩展性、支持多种神经网络结构、无缝运行于CPU和GPU、方便调试和扩展、高度优化的性能以及完善的社区支持和文档等。

0 人点赞