0

0

HTML机器学习怎么做?TensorFlow.js的3种入门示例

月夜之吻

月夜之吻

发布时间:2025-07-19 20:18:02

|

719人浏览过

|

来源于php中文网

原创

在html中实现机器学习主要通过tensorflow.js库实现,具有即时性、隐私保护、减轻服务器负担和离线可用等优势。1. 引入tensorflow.js和相关模型库,通过

HTML机器学习怎么做?TensorFlow.js的3种入门示例

HTML里做机器学习,主要是通过TensorFlow.js这个库来实现的。它让JavaScript代码可以直接在浏览器端运行机器学习模型,无论是预训练好的模型,还是自己从头训练一个简单的模型,都能搞定。这就像是把过去服务器端才能做的一些复杂计算,直接搬到了用户设备上,感觉挺神奇的。

HTML机器学习怎么做?TensorFlow.js的3种入门示例

在HTML里搞机器学习,核心就是引入TensorFlow.js库,然后用JavaScript去操作它。具体来说,你需要先在HTML文件里通过标签引入TensorFlow.js的CDN链接。接着,在你的JavaScript代码里,就可以使用tf这个全局对象了。你可以用它来加载一个已经训练好的模型,比如一个图像识别模型,然后把用户上传的图片数据喂给它,立刻就能得到识别结果。或者,你也可以定义一个简单的神经网络结构,准备一些数据,然后在浏览器里直接调用model.fit()方法来训练这个模型。整个过程,数据都不需要离开用户的浏览器,对于隐私敏感的应用场景来说,这一点特别重要。

为什么要在HTML里做机器学习?它有什么优势?

我个人觉得,在浏览器里跑机器学习模型,最大的魅力在于它的即时性和隐私保护。想象一下,用户上传一张照片,或者通过摄像头捕捉画面,图像识别的结果几乎是瞬间就能出来,这体验感是服务器端处理很难比拟的。因为数据不用上传到云端,省去了网络传输的时间,响应速度自然快。而且,数据始终留在用户本地,对于一些涉及个人隐私的应用,比如面部识别、手势控制或者一些医疗辅助工具,这种本地化处理方式能大大增强用户的信任感。

立即学习前端免费学习笔记(深入)”;

HTML机器学习怎么做?TensorFlow.js的3种入门示例

另外,它还能显著减轻服务器的负担。如果你的应用有大量的用户同时进行ML推理,把计算任务分摊到每个用户的浏览器上,服务器就不需要承担那么大的计算压力了。这对于降低运营成本,提高服务的可伸缩性,都挺有帮助的。有时候,甚至在没有网络连接的情况下,一些预加载的模型也能继续工作,这对于离线应用场景来说,是个不小的优势。当然,浏览器端的计算能力毕竟有限,对于超大型模型或者需要大量数据训练的场景,可能还是服务器更合适,但这并不妨碍它在很多轻量级应用中大放异彩。

第一个示例:即插即用的图像识别

我们来玩一个最常见的,也是最能直观感受到机器学习威力的例子:图像识别。这里我们用一个预训练好的模型,MobileNet。它已经在大量图片上训练过了,能够识别出上千种不同的物体。

HTML机器学习怎么做?TensorFlow.js的3种入门示例

首先,在HTML里你需要一个HTML机器学习怎么做?TensorFlow.js的3种入门示例标签来显示图片,以及一个来让用户选择图片,或者一个标签来连接摄像头。




    图像识别示例
    
    


    
    @@##@@
    

这段代码的核心逻辑是:当页面加载时,异步加载MobileNet模型。用户选择图片后,FileReader会把图片转换成Data URL显示在HTML机器学习怎么做?TensorFlow.js的3种入门示例标签里。一旦图片加载到HTML机器学习怎么做?TensorFlow.js的3种入门示例标签中,我们就可以用model.classify(previewImage)来对这张图片进行识别。mobilenet.classify函数会自动处理图片的预处理(比如缩放、归一化),然后返回一个包含分类结果和置信度的数组。你会发现,整个过程相当流畅,几乎没有延迟。

慧中标AI标书
慧中标AI标书

慧中标AI标书是一款AI智能辅助写标书工具。

下载

第二个示例:浏览器里训练一个简单模型

光用预训练模型还不够过瘾,我们试试在浏览器里自己训练一个最简单的模型:线性回归。这就像是给定一些点的坐标,让模型学会预测下一个点的Y值。




    简单线性回归训练
    


    

训练状态: 准备中...

损失值: N/A

在这个例子里,我们手动定义了一组简单的输入xs和对应的输出ys,它们之间存在一个简单的线性关系(y = 2x + 1)。然后,我们创建了一个只有一个dense层的顺序模型,这层只有一个单元,正好可以用来学习线性关系。接着,我们用model.compile配置了优化器(SGD,随机梯度下降)和损失函数(均方误差),这些都是机器学习训练的基础。最后,model.fit函数启动了训练过程。在训练过程中,onEpochEnd回调函数会更新页面的损失值,让你能实时看到模型学习得怎么样。训练结束后,我们用一个新值(x=5)来测试模型,看看它预测的y值是否接近11。这种实时反馈的训练过程,在浏览器里看真的很有趣。

第三个示例:处理文本的魔法——文本嵌入

除了图像和数值数据,TensorFlow.js在处理文本方面也相当强大。这里我们介绍一个概念:文本嵌入(Text Embedding)。简单来说,就是把文字转换成一系列数字(向量),这些数字能够捕捉到文字的语义信息。意思相近的词或句子,它们的向量在多维空间中会比较接近。这对于理解文本内容,做文本相似度分析,甚至情感分析都非常有用。我们使用@tensorflow-models/universal-sentence-encoder这个预训练模型。




    文本嵌入与相似度
    
    


    

相似度: N/A

这个例子展示了如何利用预训练的Universal Sentence Encoder模型来计算两段文本的语义相似度。我们首先加载了@tensorflow-models/universal-sentence-encoder模型。当用户点击按钮时,我们获取两个文本框的内容,然后调用useModel.embed([sentence1, sentence2])来获取它们的嵌入向量。这些向量是高维的数字数组,代表了句子的语义。最后,我们通过计算这两个向量的余弦相似度来衡量它们在语义上的接近程度。余弦相似度的值通常在-1到1之间,越接近1表示越相似。你会发现,即使句子结构不同,只要表达的意思相近,相似度也会很高。这在做智能客服、内容推荐或者抄袭检测时,都有很强的应用潜力。

总的来说,TensorFlow.js打开了一扇门,让前端开发者也能直接在浏览器里玩转机器学习。它降低了门槛,也拓宽了机器学习的应用场景,挺有意思的。

HTML机器学习怎么做?TensorFlow.js的3种入门示例

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

374

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

754

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

478

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1031

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

658

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

553

2023.09.20

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何进行WebSocket调试
如何进行WebSocket调试

共1课时 | 0.1万人学习

TypeScript全面解读课程
TypeScript全面解读课程

共26课时 | 5万人学习

前端工程化(ES6模块化和webpack打包)
前端工程化(ES6模块化和webpack打包)

共24课时 | 5.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号