TensorFlow之分类模型-3

news2024/10/7 4:32:56

1 基本概念

2 文本分类与情感分析

3 TF模型仓库的使用

本章节主要使用TensorFlow模型仓库与keras技术框架联合开发对IMDB数据集的机器学习,TensorFlow模型仓库提供模型直接下载使用,链接地址如下所示:

 https://hub.tensorflow.google.cn/

在TF的模型仓库中,包括不同类型用于机器学习的模型,其中包括图像分类模型、文本嵌入层模型、音频模型、视频行为识别模型,这些使用不同的开发语言实现,用户可以根据实际的需求搜素以及下载模型,这些模型可以开箱即用。

准备数据

如上所示,使用pip工具安装TensorFlow的模型仓库的支持工具集、在开发环境中导入开发库。

如上所示,加载IMDB数据集,其中15k数据量用于训练数据集、10k数据量用于验证数据集、25k数据量用于测试数据集。

探索数据

从IMDB数据集中取部分数据样本检查对照原文与标签分类是否正确。

如上所示,共从训练数据中提取10个数据样本,输出其对应的标签分类(情感分类),0表示对电影的负面评价,1表示对电影的正面评价。

构建模型

神经网络包括多个堆栈式的层,因此,构造一个神经网络需要考虑以下三个问题:

  • 如何表示原文

  • 模型需要多少层

  • 每层需要多少单元

IMDB数据样本的输入是语句,对语句的预测是0或者1。因此,最高效的表示原文的方式是使用嵌入式向量集,也就是,在神经网络的第一层中使用已经预训练的文本嵌入向量集,其优点如下所示:

  • 不用开发额外的功能处理文本向量化

  • 嵌入向量层提供机器学习的文本转换能力

  • 嵌入向量层的向量集的长度是固定的,有利于简化文本的处理

TensorFlow的模型仓库提供很多已经预训练的嵌入向量层模型,部分模型如下所示:

  • google/nnlm-en-dim128/2(维度等于128),该模型是NNLM(神经网络语言模型)架构,该架构使用的数据集与google/nnlm-en-dim50/2(维度等于50)使用的数据集相同,但是向量集的维度(嵌入向量集的长度)不同,该模型使用大维度,大维度可以改善神经网络的学习任务,但是,维度越大,则消耗的时间越大

  • google/nnlm-en-dim128-with-normalization/2,该模型类似于google/nnlm-en-dim128/2模型,但是增加文本规范化的处理(删除文本的中的一些特殊字符)

  • google/universal-sentence-encoder/4,该模型使用更大维度(嵌入向量集的长度是512),该模型使用DAN(深度平均网络)对序列向量集编码

如上所示,embedding是嵌入向量层对应的模型在TensorFlow模型仓库中的下载地址,hub_layer是使用模型仓库提供的工具集引用该嵌入向量层模型用于后续的训练,下载的模型中包括已经预训练的向量集,嵌入向量集的维度等于50,展示了train_examples_batch中的三个序列向量元素,每个元素对应一个嵌入向量集。

如上所示,使用模型仓库下载的嵌入向量层作为第一个隐藏层构建一个神经网络模型,该模型的描述如下所示:

1 第一层使用模型仓库下载的已经预训练的嵌入向量模型

2 全连接的稠密层使用16个神经元

3 最后一层全连接收敛到一个单元作为输出

损失函数与优化器

如上所示,使用adam作为优化器,使用binary_crossentropy作为损失函数,对模型编译。

训练模型

如上所示,对10000个数据样本以每批次512进行10次迭代的训练,输出损失值以及准确度。

评估模型

如上所示,使用测试数据集对模型进行评估, 输出accuracy准确度等于0.852,输出loss损失值等于0.360,评估完成可以部署模型与应用模型。

(未完待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于远程debug的一些事

首先,远程debug需要项目的启动,我这边采用的是docker构建镜像的方式,也可以使用传统jar包命令的方式;然后需要明确一个东西,就是远程debug暴露的端口不是项目端口,而是jvm端口。 这边给出我构建镜像使用的d…

Neodynamic JSPrintManager for Blazor

Neodynamic JSPrintManager for Blazor NeodynamicJSprintManager for Blazor是一个客户端打印和扫描方案,设计用于任何Blazor服务器和WebAssembly项目。通过编写纯.NET C#代码,JSPrintManager for Blazor允许您轻松地将原始数据、文本和本机命令以及已知…

一个简单的HTML网页——传统节日春节网页(HTML+CSS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

JUC并发编程02——AQS源码剖析

1.AQS介绍 相信每个Java Coder 都使用过或者至少听说过AQS, 它是抽象队列同步器AbstractQueuedSynchronizer 的简称,在juc包下。它提供了一套可用于实现锁同步机制的标准框架,其维护了一个volatile修饰的共享变量state和 一个FIFO(先进先出)线程等待队列…

SpringBoot实战:整合Swagger3实现在线Api文档

Swagger-UI 是 HTML、Javascript、CSS 的一个集合,可以动态地根据注解生成在线 Api 文档;swagger-bootstrap-UI 则可以美化 swagger-ui,页面更清爽!本篇就是实现 SpringBoot 整合 Swagger3 实现在线 Api 文档。 项目源码实现前分支…

物联网开发笔记(58)- 使用Micropython开发ESP32开发板之控制2.90寸电子墨水屏模块黑白套件

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制2.90寸电子墨水屏模块(黑白套件)。 二、环境 ESP32 2.90寸 电子墨水屏模块 Thonny IDE 几根杜邦线 接线方法: 三、墨水屏驱动 此处注意注意:不同的型号、不同厂家的墨…

web前端期末大作业 基于HTML+CSS+JavaScript绿色的在线教育平台网站响应式企业网站模板

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

C++学习笔记(十七)——list的模拟实现

需要实现的三个类及其成员函数接口总览 结点类的模拟实现 构造函数 迭代器类的模拟实现 迭代器类存在的意义 迭代器类的模板的参数说明 构造函数 运算符的重载 --运算符的重载 运算符的重载 !运算符的重载 *运算符的重载 ->运算符的重载 list的模拟实现 默认成…

Pr:导出设置之元数据

元数据 METADATA模块可设置有关媒体文件的一组说明性信息。元数据可以包含创建日期、文件格式和时间轴标记等信息。 导出选项Export Options决定如何将 XMP 元数据与导出文件一起保存。说明:XMP eXtensible Metadata Platform,扩展元数据平台&#xff0c…

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

介绍 最近我们被客户要求撰写关于向量自回归的研究报告,包括一些图形和统计输出。向量自回归(VAR)模型的一般缺点是,估计系数的数量与滞后的数量成比例地增加。因此,随着滞后次数的增加,每个参数可用的信息…

软件架构设计 :VO,BO,PO,DO,DTO的理解

文章目录前言一、小总结一下二、详细理解1、Persistant Object(持久对象)个人理解2、 Business Object(业务对象)个人理解3.DTO(Data Transfer Object)数据传输对象个人理解5、VO(Value Object)值对象个人理解VO和DTO的…

web前端期末大作业 html+css+javascript化妆品网页设计实例 企业网站制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

c++ - 第16节 - map和set

1.关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联…

【Linux】进程控制(详细解析)

文章目录一.进程创建初识fork函数fork函数返回值写时拷贝fork常规用法fork调用失败的原因二.进程终止进程退出场景进程退出码进程常见退出方法1.return2.exit3._exit三.进程等待进程等待的必要性获取子进程状态status进程等待的方法wait方法waitpid方法基于非阻塞接口的轮询检测…

python操作redis

目录 python操作redis 安装redis模块 基本链接 连接池连接 redis字符串操作 redis hash操作 redis 列表操作 redis 其它操作 redis管道 django中集成redis python操作redis 安装redis模块 pip install redis基本链接 # 第一步:导入Redis类 from redis …

Linux网络原理及编程(7)——第十七节 网络层

目录 IP报头 网段划分 私有IP地址和公网IP地址 补充一下路由器 的有关知识: 路由 各位好,博主新建了个公众号《自学编程村》,拉到底部即可看到,有情趣可以关注看看哈哈,关注后还可以加博主wx呦~~~(公众…

【玩转c++】c++ 中 STL 简介

本期主题:介绍cSTL(标准模板库)博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐身为程序员 ,不会有人没有女朋友吧。 🍁1.什么是STL&…

[趣味][人工智能生成文字]chatGPT使用教程

ChatGPT 首先点击sign up注册,注册需要非中国手机号获取验证码,这里感谢一下alice的支援,没有好朋友的各位看到这里可以先去逛逛淘宝 注册后点击log in登录 然后直接输入想要生成的内容,点击右侧的小箭头 注意:根据Op…

cef浏览器加载过程实测ILoadHandler和IRequestHandler

针对方法GetResourceRequestHandler获取资源请求过程中,会多次发生请求,不知道何时加载完的问题,IRequestHandler没有了OnResourceLoadComplete和OnBeforeResourceLoad方法,如何判断是否加载完。使用browser.isLoading并不能真正的判断。所以想到了 OnFrameLoadEnd OnFram…

【STM32】详解独立看门狗的本质和使用步骤代码

一、看门狗 1、介绍 作为一个检测装置,发生意外情况能够报告并处理突发意外——复位。 复位中断属于不可屏蔽中断,属于优先级最高的中断 2、作用 两个看门狗(独立看门狗和窗口看门狗)均可用于检测并解决由软件错误导致的故障&…