登录
首页 >  文章 >  前端

HTML做机器学习?TensorFlow.js三种入门示例

时间:2025-08-12 16:19:32 406浏览 收藏

如何在HTML中实现机器学习?本文以TensorFlow.js为核心,通过三个入门示例,深入浅出地展示了在浏览器端进行机器学习的强大能力。TensorFlow.js让JavaScript代码直接在浏览器运行机器学习模型,无论是加载预训练模型,如MobileNet进行图像识别,还是从零开始训练线性回归模型,亦或是利用Universal Sentence Encoder进行文本语义相似度计算,都能轻松实现。在HTML中进行机器学习,不仅能实现即时响应,保护用户隐私,还能有效减轻服务器负担,甚至支持离线使用,为前端开发带来了全新的可能性。本文将带你一步步掌握TensorFlow.js,开启浏览器端机器学习之旅。

在HTML中实现机器学习主要通过TensorFlow.js库实现,具有即时性、隐私保护、减轻服务器负担和离线可用等优势。1. 引入TensorFlow.js和相关模型库,通过 <input type="file" id="imageUpload">

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

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

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




    文本嵌入与相似度
    
    


    <textarea id="text1" rows="4" cols="50">我爱机器学习</textarea>
<textarea id="text2" rows="4" cols="50">我喜欢人工智能</textarea>

相似度: N/A

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

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

今天关于《HTML做机器学习?TensorFlow.js三种入门示例》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>