Advertisement

AI Mass人工智能大模型即服务时代:AI Mass平台的关键构成

阅读量:

作者:禅与计算机程序设计艺术

1.背景介绍

近年来,在人工智能技术迅速发展的同时伴随着应用爆炸式的增长,在这一背景下

AI Mass平台的核心组件主要包括三个部分:

该平台的数据集市模块支持企业获取丰富多样的公开可用数据集,并对这些数据进行预处理和整理。此外该模块能够完成清洗和标注任务 并对分类任务进行相关支持 以便于集成到多种AI模型训练与应用过程中

该平台提供丰富多样的人工智能模型供企业选择与使用,并根据自身业务特点快速搭建属于自己的AI模型。平台不仅具备强大的训练功能与优化方法,在线部署也为企业提供了便捷的解决方案。强大的训练框架支持从数据准备到模型调优的全流程管理,并通过集成开发环境实现了对各种算法的支持与扩展。

⑶ 开发者中心:该模块旨在为AI开发者提供全面的AI开发所需工具集合。具体包括数据集成器、训练引擎以及评估反馈系统等多种功能组件。通过简单的配置参数设置即可实现AI模型的构建与部署。

除了以上三个核心组件外,AI Mass平台还具备一些独有的特性,如:

AI Mass平台提供了一个网页式的功能性开发平台,在界面设计上着重考虑了用户体验,并通过多样化的人机交互界面实现了数据信息的多维度呈现。该平台具备多样化的图形化组件和可视化展示功能,并且能够清晰地展示AI模型结构及其运行流程。

⑵ 大数据计算集群:经由AI Mass团队搭建的大数计算集群具备超强计算实力,并能够实现极高的运算效率。

⑶ API服务:该平台支持RESTful API接口实现功能调用。为第三方系统提供了功能调用的支持。业务部门可利用该平台获取预测数据和训练成果。

2.核心概念与联系

(一)数据集市

AI Mass平台的数据集市模块支持企业完成以下核心操作:数据采集、清洗与预处理、标注与标注管理以及分类与分析,并遵循标准化接口进行交互。其中的数据源分为两大类:

  1. 企业内部现存的非结构化信息。
    如文档文本、图像文件、视频文件等。
  2. 公司外部存有的结构化资料。
    如电子商务网站上的订单记录,
    如社交媒体平台上的用户评价,
    如公司运营过程中的交易流水记录。

数据集市的功能如下:

  1. 数据集成:从内部和外部数据源中集成数据,并对其进行规范化处理。
  2. 数据预处理:依据既定规则或算法对原始数据进行初步清理,并剔除异常值和缺失值。
  3. 数据标注:通过人工或自动化手段给定数据库字段附加分类标签,并用于支持后续模型训练与验证过程。
  4. 数据分类过程设计目标是为了将分散在不同存储实体中的信息按照其固有特征归类整理在一起以便于后续的建模分析工作。
  5. 数据分析功能使组织能够基于关键字快速定位所需特定类型的数据集合。
  6. 权限管理模块允许组织管理员根据角色需求设定不同级别的访问权限并对各类型数据库设置相应的生命周期管理方案以及明确的数据使用范围。
  7. API服务系统提供统一的数据接口使得第三方开发人员能够便捷地调用该平台积累起来的大数据分析资源。

(二)模型库

该平台的AI模型库模块汇集了种类多样、规模各异的人工智能模型供企业选用。现时,该平台支持各类别及不同尺寸的模型:

图像识别模型:一种主要应用于图像识别、检测与分析的计算机系统或平台,在获取图像数据后能够精准地提取关键数据特征,并为企业提供高效的解决方案。该系统不仅能够实现精准的分类、目标定位以及内容解析功能,还能帮助企业在复杂场景中快速提升效率和准确性。

  1. 文本分析系统:旨在处理海量文本数据,并实现对大量文档的分类与聚类功能的同时还能够提供问答支持并提取关键信息进而能够实现情感识别的任务

语音识别模型:旨在对对话和命令音频进行识别、翻译与合成的计算机模型,在准确识别用户的意图及相关信息的基础上,从而帮助企业实现对话理解、人工转写以及语音回复等功能

智能问答系统是一种能够通过分析常见问题解答(FAQ)以及知识库中的信息查询等方式来提供准确且及时的回答,并有效解决用户日常生活中遇到的各种疑问、困惑以及具体需求

推荐系统模型:该系统能够基于用户的使用记录和兴趣爱好进行商品和服务信息类别的产品与服务以及资讯内容等方面的推荐

平台支持以下类型的模型:

通常指代普通机器学习模型。这些模型不具有显著的性能优势,并常见于不同种类的数据进行分类任务中涉及的各种类型数据分析问题。

深度学习模型:基于深度神经网络等技术,在海量数据的支持下,增强其学习能力和性能。

强化学习模型基于机器学习与强化学习等领域的研究成果被构建出来,并用于优化人类的决策行为与内在动机

平台的模型库模块包含有多个管理功能:包括模型搜索功能、智能筛选功能以及详细的模型信息展示;此外还具备完整的评分系统、一键购买选项以及灵活的共享权限设置等

(三)开发者中心

AI Mass平台的开发者中心模块旨在为AI开发人员提供一套完整的AI开发工具链,并包含数据集成工具、模型训练工具、模型发布工具、模型评估工具以及API服务工具等具体内容。通过简单的配置设置即可实现AI模型的开发与部署过程。

开发者中心的功能如下:

工作空间:为AI模型提供了包括训练、调试与部署在内的完整工作环境。
数据集成工具:实现了多源数据导入与处理功能,并支持基于数据集构建完整的训练数据集。
模型训练工具:支持多种不同的AI框架来进行深度学习任务,并具备参数优化与运行跟踪等功能。
模型发布工具:提供了版本管理与发布下线的核心功能。
模型评估工具:包含准确率、召回率及F1分数等多种评估指标。
API服务工具:通过RESTful API接口实现了对预测结果或训练结果的服务调用。

3.核心算法原理和具体操作步骤以及数学模型公式详细讲解

(一)图像识别模型

(1)模型简介

该模型旨在通过提取特征、分类等步骤将数据转换为可利用的信息。

常见的图像识别模型主要包括深度学习型和传统型两种类型。其主要特点在于通过卷积神经网络(CNN)进行特征提取,并展现出良好的性能,在多个领域均有较为广泛的运用。相比之下,在特征提取方面主要依赖于一些统计方法的传统型则表现出一定的局限性,在分类效果上往往略逊于基于深度学习的传统型。

本文采用了基于卷积神经网络(CNN)的深度学习模型来处理图像数据。该模型的基本架构包含三个主要组件:卷积层、池化层以及全连接层。其中,卷积层用于提取图像中的特征信息;池化层通过降维和下采样的方式进一步优化特征表示;而全连接层则用于图像分类任务的具体实现。经过前向传播过程后,在卷积与池化操作的基础上生成了特征图矩阵,并在此基础上完成了图像分类任务。

(2)模型结构

(1)卷积层

在卷积层中,默认设置下使用的单位是单个矩阵K。该矩阵的大小与输入图像保持一致,在计算过程中(即对每个像素点),将该矩阵与对应的区域进行乘法运算后再累加,并在此基础上加上一个偏置值b(即b \in \mathbb{R}),从而得到最终输出值f(x)。通过遍历所有像素点(即整个输入图像中的每一个位置),能够得到对应的特征图f_1(x), f_2(x),...,f_C(x)(其中共有C个不同的通道)。当使用多组不同参数配置的滤波器时(即有多个这样的矩阵),就能捕获更加丰富的图像特征信息。

通常情况下,在神经网络架构中

(2)池化层

该层通过下采样技术对输入特征进行处理。通常位于卷积层之后执行操作。其基本处理单元为池化窗口,并通过滑动窗口的方式覆盖多个像素。并基于其中的像素值进行计算,在输出时取用最大值或平均值作为结果。

池化层不仅降低了模型的复杂度,并且能够有效地抑制过拟合现象。

(3)全连接层

全连接层作为一种线性变换机制,在图像识别任务中扮演关键角色。它通过将池化操作后的图像特征转化为一维向量序列,并结合权重参数完成数据处理过程,在这一系列运算结束后最终实现分类目标。

(4)损失函数

该深度学习模型的主要目标是使预测结果的概率分布与真实标签的概率分布之间达到最大限度地接近的状态。其中最常见的损失函数类型是交叉熵损失函数。这种交叉熵损失函数被广泛应用于评估模型预测结果的质量,并促使模型输出的概率分布与实际标签之间保持高度一致性。

(3)模型训练

(1)训练数据准备

对于图像识别模型的构建与优化而言

(2)超参数调整

超参数是模型在训练过程中不可直接配置的参数,在实际应用中通常需要依靠经验和实验调优的方式来确定。超参数集合主要包括学习率、权重衰减因子、激活函数类型以及卷积核大小和池化窗口大小等选择项。这些超参数的选择将直接影响到模型性能的提升具有关键作用。

(3)训练过程

在图像识别模型的训练过程中,通常遵循以下四个关键环节:建立前馈神经网络架构、设定初始参数值、引入正则化技术以防止过拟合、通过反向传播算法优化模型权重。

  1. 前馈网络搭建:按照深度学习模型的基本结构,搭建深度学习的前馈网络。

  2. 参数初始化:随机初始化模型参数,防止模型陷入局部最优解。

  3. 正则化:通过增加模型的复杂度,防止模型过拟合。

反向传播:利用梯度下降法更新模型参数以实现训练集上的误差最小化。

(4)模型发布

当模型完成训练后,建议使用评估工具对模型进行全面评估。为了判断是否符合发布标准,请参考相关技术文档中的评估指标。如果通过了审核,则建议将该模型保存为预训练版本或完整训练后的版本,并将其上传至AI Mass平台的官方存储区域。

(二)文本分析模型

(1)模型简介

文本分析模型是一种被广泛应用于海量文本数据处理与分析的机器学习技术核心组成部分,在自然语言处理领域具有重要应用价值。该技术体系主要包含数据分类任务、数据聚类任务、信息检索与问答服务以及特征提取与信息挖掘等多个关键功能模块。

(2)模型结构

(1)特征提取层

特征提取层的作用在于将文本数据转化为向量形式,并对文本内容进行语义分析与实体识别等相关操作。就目前而言,大多数用于文本分析的模型都是基于词袋模型来实现特征提取功能的。具体而言,在这种方法中,我们将输入的文本内容经过分词处理后生成一组独立于上下文位置的文字元素集合,并不考虑词语之间的顺序及其语法关系等因素的影响;随后通过构建一个与词汇表大小相当的一维空间来表示每个词语的存在状态

(2)分类器层

该层级的作用是将文本转化为向量进行识别;通常采用多标签分类技术以实现对不同类别数据的区分。具体而言,在二元问题如垃圾邮件识别中;而多元则用于情感分析等复杂场景。

(3)模型训练

(1)训练数据准备

在进行文本分析模型的训练时,收集和准备充足的质量训练数据至关重要。首先需要对大量高质量的原始文本进行采集。接着会对获取到的所有原始文本进行预处理工作:去噪、标准化以及词汇分割与编码处理。最后,在完成了预处理后会按照统一的比例划分出训练集与验证集,并利用这两部分数据分别对模型进行训练与验证。通过使用验证集可以有效监测模型的学习状态并防止发生过拟合现象。

(2)超参数调整

无法直接指定的是模型在训练过程中所涉及的参数。基于经验和试错的方法进行调整。包括学习率以及相关的调节因子如正则化系数和激活函数等;此外还有分类器层数和特征提取层宽度等因素。具体选择哪一种超参数及其取值范围会影响模型在训练和预测阶段的表现结果。

(3)训练过程

在进行文本分析模型的训练过程中,通常涉及四个主要步骤:首先构建前馈神经网络结构;其次设置初始参数值;接着引入正则化技术;最后通过反向传播算法优化模型。

  1. 前馈网络搭建:按照文本分析模型的基本结构,搭建深度学习的前馈网络。

  2. 参数初始化:随机初始化模型参数,防止模型陷入局部最优解。

  3. 正则化:通过增加模型的复杂度,防止模型过拟合。

反向传播算法:利用梯度下降法来调整模型参数,以使模型在训练集中的误差达到最低。

(4)模型发布

在完成模型训练后, 可以借助专门的评估工具来对整个系统进行测试. 如果测试结果达到预期目标, 则需要将当前系统的参数文件保存下来, 以便后续使用. 之后, 可以将该系统集成到现有的应用中.

4.具体代码实例和详细解释说明

(一)图像识别模型

(1)代码示例

复制代码
    import tensorflow as tf
    
    class MyModel(tf.keras.models.Model):
    def __init__(self):
        super(MyModel, self).__init__()
    
        # define layers here
    
    def call(self, inputs):
        x = self.conv_layers(inputs)
        x = self.pooling_layer(x)
        x = self.flatten_layer(x)
        outputs = self.dense_layers(x)
        return outputs
    
    model = MyModel()
    
    loss_object = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
    optimizer = tf.keras.optimizers.Adam()
    
    train_loss = tf.keras.metrics.Mean(name='train_loss')
    train_accuracy = tf.keras.metrics.CategoricalAccuracy(name='train_accuracy')
    
    test_loss = tf.keras.metrics.Mean(name='test_loss')
    test_accuracy = tf.keras.metrics.CategoricalAccuracy(name='test_accuracy')
    
    @tf.function
    def train_step(images, labels):
    with tf.GradientTape() as tape:
        predictions = model(images, training=True)
        loss = loss_object(labels, predictions)
    
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
    
    train_loss(loss)
    train_accuracy(labels, predictions)
    
    @tf.function
    def test_step(images, labels):
    predictions = model(images, training=False)
    t_loss = loss_object(labels, predictions)
    
    test_loss(t_loss)
    test_accuracy(labels, predictions)
    
    for epoch in range(EPOCHS):
    for images, labels in train_ds:
        train_step(images, labels)
    
    for test_images, test_labels in test_ds:
        test_step(test_images, test_labels)
    
    template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
    print(template.format(epoch+1,
                          train_loss.result(),
                          train_accuracy.result()*100,
                          test_loss.result(),
                          test_accuracy.result()*100))
    
    train_loss.reset_states()
    train_accuracy.reset_states()
    test_loss.reset_states()
    test_accuracy.reset_states()
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

(2)代码解读

(1)导入依赖包
复制代码
    import tensorflow as tf
    
    
    代码解读
(2)定义模型类
复制代码
    class MyModel(tf.keras.models.Model):
    def __init__(self):
        super(MyModel, self).__init__()
    
        # define layers here
    
      
      
      
      
    
    代码解读

创建一个基于tf.keras.models.Model的技术实现方案中的子类MyModel。该模型架构包含一系列互相关联且依次执行的操作层。通过这种方式可以构建出灵活且可扩展的深度学习模型架构。

(3)定义模型层
复制代码
    # define layers here
    self.conv_layers = tf.keras.Sequential([
    tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(IMG_SIZE, IMG_SIZE, NUM_CHANNEL)),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
    tf.keras.layers.Conv2D(filters=64, kernel_size=(3, 3), activation='relu'),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(units=128, activation='relu'),
    tf.keras.layers.Dropout(rate=0.5)])
    
    self.pooling_layer = tf.keras.layers.GlobalAveragePooling2D()
    self.flatten_layer = tf.keras.layers.Flatten()
    self.dense_layers = tf.keras.Sequential([
    tf.keras.layers.Dense(units=NUM_CLASS, activation='softmax')])
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

构建模型架构时

构建模型架构时

构建模型架构时

(4)定义损失函数、优化器、指标
复制代码
    loss_object = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
    optimizer = tf.keras.optimizers.Adam()
    
    train_loss = tf.keras.metrics.Mean(name='train_loss')
    train_accuracy = tf.keras.metrics.CategoricalAccuracy(name='train_accuracy')
    
    test_loss = tf.keras.metrics.Mean(name='test_loss')
    test_accuracy = tf.keras.metrics.CategoricalAccuracy(name='test_accuracy')
    
      
      
      
      
      
      
      
    
    代码解读

设定损失函数为交叉熵损失函数,并采用Adam优化算法来训练模型

(5)定义训练步骤
复制代码
    @tf.function
    def train_step(images, labels):
    with tf.GradientTape() as tape:
        predictions = model(images, training=True)
        loss = loss_object(labels, predictions)
    
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
    
    train_loss(loss)
    train_accuracy(labels, predictions)
    
      
      
      
      
      
      
      
      
      
      
    
    代码解读

定义训练步骤,封装为tf.function修饰器,它使用tape自动求导。

(6)定义测试步骤
复制代码
    @tf.function
    def test_step(images, labels):
    predictions = model(images, training=False)
    t_loss = loss_object(labels, predictions)
    
    test_loss(t_loss)
    test_accuracy(labels, predictions)
    
      
      
      
      
      
      
    
    代码解读

定义测试步骤,封装为tf.function修饰器。

(7)执行训练
复制代码
    for epoch in range(EPOCHS):
    for images, labels in train_ds:
        train_step(images, labels)
    
    for test_images, test_labels in test_ds:
        test_step(test_images, test_labels)
    
    template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
    print(template.format(epoch+1,
                          train_loss.result(),
                          train_accuracy.result()*100,
                          test_loss.result(),
                          test_accuracy.result()*100))
    
    train_loss.reset_states()
    train_accuracy.reset_states()
    test_loss.reset_states()
    test_accuracy.reset_states()
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

进行训练,并重复 epochs 次。在每个迭代周期中处理训练数据集合的所有图片及其标签,在每个周期内触发相应的训练操作并分别计算损失值和精确度指标。利用 tf.GradientTape() 对模型进行梯度计算,并基于计算结果更新模型参数。类似地,在验证阶段完成相应的操作:遍历所有来自测试数据集合的图片及其对应的标签,在每个周期内执行验证过程中的相关操作并分别计算损失值和精确度指标。最后记录当前轮次的各项指标结果显示情况。

(8)其他语句
复制代码
    # some other statements like loading data and preprocessing them
    
    
    代码解读

加载数据、预处理等语句,一般情况都很复杂,这里不做过多解读。

(二)文本分析模型

(1)代码示例

复制代码
    import tensorflow as tf
    
    class MyModel(tf.keras.models.Model):
    def __init__(self):
        super(MyModel, self).__init__()
    
        # define layers here
    
    def call(self, inputs):
        x = self.embedding_layer(inputs)
        x = self.lstm_layer(x)
        x = self.dropout_layer(x)
        x = self.dense_layer(x)
        return x
    
    model = MyModel()
    
    loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
    optimizer = tf.keras.optimizers.Adam()
    
    train_loss = tf.keras.metrics.Mean(name='train_loss')
    train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')
    
    test_loss = tf.keras.metrics.Mean(name='test_loss')
    test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')
    
    @tf.function
    def train_step(texts, labels):
    with tf.GradientTape() as tape:
        predictions = model(texts, training=True)
        loss = loss_object(labels, predictions)
    
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
    
    train_loss(loss)
    train_accuracy(labels, predictions)
    
    @tf.function
    def test_step(texts, labels):
    predictions = model(texts, training=False)
    t_loss = loss_object(labels, predictions)
    
    test_loss(t_loss)
    test_accuracy(labels, predictions)
    
    for epoch in range(EPOCHS):
    for texts, labels in train_ds:
        train_step(texts, labels)
    
    for test_texts, test_labels in test_ds:
        test_step(test_texts, test_labels)
    
    template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
    print(template.format(epoch+1,
                          train_loss.result(),
                          train_accuracy.result()*100,
                          test_loss.result(),
                          test_accuracy.result()*100))
    
    train_loss.reset_states()
    train_accuracy.reset_states()
    test_loss.reset_states()
    test_accuracy.reset_states()
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

(2)代码解读

(1)导入依赖包
复制代码
    import tensorflow as tf
    
    
    代码解读
(2)定义模型类
复制代码
    class MyModel(tf.keras.models.Model):
    def __init__(self):
        super(MyModel, self).__init__()
    
        # define layers here
    
      
      
      
      
    
    代码解读

实现一个基于tf.keras.models.Model的自定义模型类MyModel,并在其构造函数中(即初始化方法)配置所有构成其架构的层。

(3)定义模型层
复制代码
    # define layers here
    self.embedding_layer = tf.keras.layers.Embedding(input_dim=VOCAB_SIZE, output_dim=EMBEDDING_DIM, mask_zero=True)
    self.lstm_layer = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(units=HIDDEN_UNITS, dropout=0.2, recurrent_dropout=0.2))
    self.dropout_layer = tf.keras.layers.Dropout(rate=0.5)
    self.dense_layer = tf.keras.layers.Dense(units=NUM_CLASS, activation='softmax')
    
      
      
      
      
    
    代码解读

在模型构建阶段定义各组件时

(4)定义损失函数、优化器、指标
复制代码
    loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
    optimizer = tf.keras.optimizers.Adam()
    
    train_loss = tf.keras.metrics.Mean(name='train_loss')
    train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')
    
    test_loss = tf.keras.metrics.Mean(name='test_loss')
    test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')
    
      
      
      
      
      
      
      
    
    代码解读

设定损失函数采用稀疏分类交叉熵损失函数,并选择Adam优化器作为优化工具;同时明确训练目标和评估标准。

(5)定义训练步骤
复制代码
    @tf.function
    def train_step(texts, labels):
    with tf.GradientTape() as tape:
        predictions = model(texts, training=True)
        loss = loss_object(labels, predictions)
    
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
    
    train_loss(loss)
    train_accuracy(labels, predictions)
    
      
      
      
      
      
      
      
      
      
      
    
    代码解读

定义训练步骤,封装为tf.function修饰器,它使用tape自动求导。

(6)定义测试步骤
复制代码
    @tf.function
    def test_step(texts, labels):
    predictions = model(texts, training=False)
    t_loss = loss_object(labels, predictions)
    
    test_loss(t_loss)
    test_accuracy(labels, predictions)
    
      
      
      
      
      
      
    
    代码解读

定义测试步骤,封装为tf.function修饰器。

(7)执行训练
复制代码
    for epoch in range(EPOCHS):
    for texts, labels in train_ds:
        train_step(texts, labels)
    
    for test_texts, test_labels in test_ds:
        test_step(test_texts, test_labels)
    
    template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
    print(template.format(epoch+1,
                          train_loss.result(),
                          train_accuracy.result()*100,
                          test_loss.result(),
                          test_accuracy.result()*100))
    
    train_loss.reset_states()
    train_accuracy.reset_states()
    test_loss.reset_states()
    test_accuracy.reset_states()
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

对模型进行一次完整的训练过程:遍历 epochs 个周期,在每个周期内:每个批次处理训练集中的文本与标签数据,并调用相应的步骤来完成模型更新的过程;具体而言:在这一阶段中会利用梯度tape机制来求导并更新参数;随后切换至验证阶段:同样地,在每个周期内:对每个批次在验证集中抽取的数据样本进行处理;完成所有样本后会记录下当前迭代周期的各项指标数值:包括平均总损失值(total loss)、平均分类精度(accuracy);以及验证阶段的平均总损失值(total validation loss)与分类精度。

(8)其他语句
复制代码
    # some other statements like loading data and preprocessing them
    
    
    代码解读

加载数据、预处理等语句,一般情况都很复杂,这里不做过多解读。

全部评论 (0)

还没有任何评论哟~