使用 TensorFlow.js 将机器学习引入您的 Web 应用程序

news2024/10/7 11:08:01

如何使用 TensorFlow.js 在您的 Web 应用程序中实施机器学习

原文作者: Abhay Singh Rathore

机器学习 (ML) 不再是一个崇高、遥不可及的概念。借助 TensorFlow.js 等库,开发人员现在可以将 ML 整合到他们的 Web 应用程序中。例如,您可以创建一个系统,根据用户的浏览量和搜索量推荐社交媒体广告。

这篇文章是您使用 TensorFlow.js 实现 ML 的指南。我们将讨论 TensorFlow.js 是什么、如何使用它,以及如何在您的 Web 应用程序中实现一个简单的推荐系统。

TensorFlow.js 简介

TensorFlow.js 是谷歌开发的一个 JavaScript 库,用于在浏览器和 Node.js 上训练和部署 ML 模型。它允许您在 JavaScript 中开发 ML 模型,并直接在浏览器或 Node.js 中使用 ML。

借助 TensorFlow.js,您可以从头开始创建新的 ML 模型,也可以使用预先训练的模型。它的灵活性和可访问性使其成为开发人员的热门选择。

设置 TensorFlow.js

要开始在您的 Web 应用程序中使用 TensorFlow.js,您需要将以下脚本标记添加到您的 HTML 文件中:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.10.0/dist/tf.min.js"></script>

构建推荐系统

现在,让我们构建一个简单的推荐系统,根据用户行为推荐社交媒体广告。

第 1 步:定义数据

首先,我们需要训练数据。对于这个例子,让我们考虑一个简化的场景,我们只查看用户过去的广告点击和这些广告的类别。

我们的输入数据(特征)将是用户过去点击过的广告类别。我们的输出数据(标签)将是用户接下来点击的广告类别。

在现实世界中,您可能会从各种来源获得更多数据,例如用户人口统计、浏览历史等。

第 2 步:预处理您的数据

在我们将数据提供给模型之前,我们需要对其进行预处理。TensorFlow.js 为此提供了实用程序。在我们的例子中,我们会将我们的分类数据编码为我们的模型可以理解的数字数据。

第 3 步:定义和训练模型

接下来,我们将定义我们的模型。我们将使用顺序模型,它是一堆层,其中每一层都有一个输入张量和一个输出张量。

const model = tf.sequential();

model.add(tf.layers.dense({units: 10, inputShape: [numOfCategories]}));
model.add(tf.layers.dense({units: numOfCategories, activation: 'softmax'}));

model.compile({optimizer: 'sgd', loss: 'categoricalCrossentropy', metrics: ['accuracy']});

在这里,我们有两层。第一个是我们的隐藏层,第二个是我们的输出层。“softmax”激活函数确保我们的输出是广告类别的概率分布。

接下来,我们使用预处理的数据训练我们的模型。

await model.fit(trainFeaturesTensor, trainLabelsTensor, {epochs: 100});

第 4 步:做出预测

一旦我们的模型被训练好,我们就可以用它来进行预测。以下是我们为用户预测下一个广告类别的方式:

const prediction = model.predict(userFeaturesTensor);

这将为我们提供广告类别的概率分布。然后我们可以推荐概率最高的广告。

实际应用:社交媒体广告推荐

让我们将其与我们的社交媒体广告推荐场景联系起来。

比如说,用户经常查看和点击与技术和小工具相关的广告。随着时间的推移,我们的模型将学习这种模式。当。。。的时候

用户登录时,我们的模型会以更高的概率推荐来自这些类别的广告。

使用 TensorFlow.js,所有这一切都发生在用户的浏览器中,这使得它更快、更高效。

总之,TensorFlow.js 提供了一种可访问且功能强大的方法来将机器学习整合到您的 Web 应用程序中。正如我们所见,即使使用几行 JavaScript,我们也可以开始进行个性化的广告推荐。编码愉快!

- END -

关于奇舞团

奇舞团是 360 集团最大的大前端团队,代表集团参与 W3C 和 ECMA 会员(TC39)工作。奇舞团非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

ee175ee4284698afe426792c07c328f9.png

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

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

相关文章

革新智造业丨云和恩墨数据智能产品 zAIoT 将工控设备KPI分析性能提升百倍

点击关注 随着智能制造业的迅猛发展&#xff0c;工控设备在生产过程中起到至关重要的作用。为了确保生产效率和产品质量的提高&#xff0c;企业需要对工控设备进行全面的分析和评估。 工控设备KPI是指在生产线/车间设备的运行和维护过程中&#xff0c;需要监控的关键指标参数&a…

Vue----Vue的模板语法

【原文链接】Vue----Vue的模板语法 Vue 模板语法的描述 Vue使用一种基于HTML的模板语法&#xff0c;使我们能够声明式地将其组件实例的数据绑定到呈现的DOM上&#xff0c;所有的Vue模板都是语法层面合法的HTML&#xff0c;可以被符合规范的浏览器和HTML解析器解析 文本插值 …

Java性能权威指南-总结16

Java性能权威指南-总结16 线程与同步的性能线程池与ThreadPoolExecutor设置最大线程数设置最小线程数 线程与同步的性能 能够轻松编写多线程程序也是Java的一个标志性特征。Java性能方面的吸引力显而易见&#xff1a;如果有两个CPU可用&#xff0c;那么一个应用能够完成的工作…

计算机网络笔记(更新中)

本文是个人笔记&#xff0c;都是概念&#xff0c;没基础不建议看。 绪论 计算机网络的定义 最简单的定义&#xff1a;计算机网络是一些互相连接的、自治的计算机的集合因特网&#xff08;Internet&#xff09;是“网络的网络” 计算机网络的组成&#xff08;物理组成&#x…

STM32单片机(七)ADC模拟数字转换器----第一节:ADC模数转换器

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

autoDL上A100运行wiki出错:NVIDIA A100-PCIE-40GB(最后安装好torch+dgl了);学校服务器加2.X版本pytorch

1、A100运行wiki出错&#xff1a;NVIDIA A100-PCIE-40GB with CUDA capability sm_80 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70. If you want to use the NVIDIA A100-PCIE…

CTFshow-pwn入门-pwn26-pwn28

什么是ASLR 大多数的攻击都基于这样一个前提&#xff0c;即攻击者知道程序的内存布局&#xff0c;需要提前知道shellcode或者其他一些数据的位置。因此&#xff0c;引入内存布局的随机化能够有效增加漏洞利用的难度&#xff0c;其中一种技术就是ASLR&#xff08;Address Space…

Qt颜色、文件、字体对话框

项目目录 界面 一、颜色对话框 QColor color QColorDialog::getColor(QColor(255,0,0));qDebug()<<"r"<<color.red()<<" g "<<color.green()<<" b "<<color.blue(); 二、文件对话框 //文件对话框QString…

《网络安全0-100》-网络攻击方式

网络攻击方式 DoS DDoS攻击 DoS攻击和DDoS攻击都是网络攻击的一种&#xff0c;它们的区别如下&#xff1a; DoS攻击(Denial of Service&#xff0c;拒绝服务攻击)&#xff1a;指攻击者通过向目标计算机或网络发送大量的合法请求&#xff0c;占用其网络资源和带宽&#xff0c;…

Java API

目录 1.JSON 2.多线程 3.网络编程 1.JSON &#xff08;1&#xff09;定义&#xff1a; 1.轻量级的文本数据交换格式 2.具有自我描述性【看到某个JSON数据就能知道它的特点】 3.比XML传输速度快【跨平台】 (2)语法规则&#xff1a; 1.语法&#xff1a; 2.构成要素&#xff…

Cortext-M3系列:M3内核概述(1)

引言&#xff1a; 本系列博客记录的是博主以前学习单片机时期的一些关于MCU内核方面的知识点和笔记&#xff0c;分享给一起学习的小伙伴&#xff0c;也作为复习用处。文中出现的Cortex-M3、CM3、M3均指的是ARM公司的产品Cortex-M3&#xff0c;后面不再赘述。本系列的博客仅仅只…

基于Java共享客栈管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

Go语言包设计指南

1. Go包的认知 1.1 Go包是基本功能单元 我们知道Go包是Go编程语言中的一个重要概念&#xff0c;它是一组相关的Go源代码文件。并且&#xff0c;在Go中&#xff0c;每个Go源文件都必须属于一个包。 Go包是一个逻辑上独立的单元&#xff0c;是Go的基本功能单元&#xff0c;用来做…

Redis安装说明(heima)

Redis安装说明&#xff08;heima&#xff09; 笔者的redis(Linux版)的下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87926624 笔者的redis图形化桌面客户端&#xff0c;下载链接地址为&#xff1a;https://download.csdn.net/download/weixin…

Python单元测试框架之pytest -- 断言

对于测试来讲&#xff0c;不管是功能测试&#xff0c;自动化测试&#xff0c;还是单元测试。一般都会预设一个正确的预期结果&#xff0c;而在测试执行的过程中会得到一个实际的结果。测试的成功与否就是拿实际的结果与预期的结果进行比较。这个比的过程实际就是断言&#xff0…

PHP实战开发24-一定要知道PHP中反射的强大应用

文章目录 一、前言1.1 关于反射1.2 PHP中的反射 二、反射的应用2.1 自动注入2.2 动态调用方法2.3 注解解析 总结 一、前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP快速入门与实战 1.1 关于反射 反射是一种编程语言的特性&#xff0c;它允许程序在运行时获取和操作对象的…

kotlin从入门到精通之内置类型

基本类型 声明变量 val&#xff08;value的简写&#xff09;用来声明一个不可变的变量&#xff0c;这种变量在初始赋值之后就再也不能重新赋值&#xff0c;对应Java中的final变量。 var&#xff08;variable的简写&#xff09;用来声明一个可变的变量&#xff0c;这种变量在初始…

CUDA线程的线程层次结构,以及单个线程threadIdx如何使用stride来进行跳步操作,同时对多个数据进行计算

线程层次的概念&#xff1a; 简单说&#xff0c;就是一个grid有多个block,一个block有多个thread. grid有多大&#xff0c;用gridDim表示它有多少个block&#xff0c;具体分为gridDim.x, gridDim.y&#xff0c;gridDim.z。 block有多大&#xff0c;用blockDim表示它有多少个t…

SpringBoot项目结合@Slf4j将日志记录到磁盘和数据库

文章目录 1、背景介绍2、存本地2.1、配置文件2.2、使用 3、存数据库3.1、配置文件改造3.2、过滤器编写3.3、表准备3.4、添加依赖3.5、测试 4、优化4.1、日志定期删除4.2、分库处理4.3、环境 5、总结 1、背景介绍 现在我一个SpringBoot项目想记录日志&#xff0c;大概可以分为下…

深度学习助力版面分析技术,图像“还原”有方

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…