ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ml5.js 快速上手指南:在浏览器端搭建与运行你的第一个机器学习项目

ml5.js 快速上手指南:在浏览器端搭建与运行你的第一个机器学习项目 人工智能机器学习深度学习计算机视觉NLP【免费下载链接】ml5-libraryFriendly machine learning for the web! 项目地址https://gitcode.com/gh_mirrors/ml/ml5-library点击查看免费下载本文是 ml5.jsGitHub 加速计划 / ml / ml5-library官方文档Getting Started入门的完整技术解读。你将了解 ml5.js 是什么、它为什么能跑在浏览器里以及三种最常用的项目启动方式——纯 JavaScript、p5.js 增强版与 CDN 引入并掌握完整的可运行 HTML 样板代码。读完本文你能够独立搭建一个 ml5.js 项目骨架通过浏览器控制台验证库是否加载成功并据此进入图片分类、姿态检测、声音分类等具体功能的实战开发。ml5.js 是什么为 Web 打造的友好机器学习库ml5.js 是面向 Web 的友好机器学习Friendly Machine Learning for the Web库目标是让机器学习的门槛大幅降低让艺术家、创意程序员和学生也能轻松在浏览器里使用机器学习算法与模型。它与 p5.js 一脉相承设计上同样强调友好、易用、可上手。它的底层依赖是 TensorFlow.jsTensorFlow.js 团队发现可以借助浏览器内置的**图形处理器GPU**来完成那些用中央处理器CPU计算会非常缓慢的数值运算——浏览器通过 WebGL 着色器shader做大规模并行计算这正是 GPU 加速机器学习推理的关键。ml5.js 在这些新进展之上做了进一步的封装把模型加载、参数配置和推理调用收敛成简洁的 API让开发者无需深入 TensorFlow.js 的底层细节即可使用预训练模型和训练自己的神经网络。从仓库源码可以印证这一架构src/index.js入口文件直接import * as tf from tensorflow/tfjs并把它与tfvis一并挂到 ml5 全局对象上同时将imageClassifier、poseNet、bodyPix、soundClassifier、neuralNetwork、KNNClassifier等二十余个功能模块统一导出。package.json的 dependencies 中也列出了tensorflow-models/mobilenet、tensorflow-models/posenet、tensorflow-models/speech-commands等官方模型包说明 ml5.js 的各类能力本质上是对 TensorFlow.js 生态模型的友好封装。快速开始三种最常用的项目启动方式官方文档给出了三条最快的上手路径按需选择其一即可p5.js 用户直接使用 p5.js ml5.js 的组合样板boilerplate。仓库中对应模板位于 examples/p5js/ml5Boilerplate/ml5Boilerplate_Version包含 index.html 与 sketch.js 两个文件也可以在 p5.js Web Editor 中直接在线打开运行。不使用 p5.js使用纯 JavaScript 样板。对应模板位于 examples/javascript/ml5Boilerplate/ml5Boilerplate_Version其 index.html 中仅引入 ml5 脚本不含任何 p5.js 依赖。最快的单行方案直接把 CDN 链接粘贴到 HTML 中script srchttps://unpkg.com/ml5latest/dist/ml5.min.js/script其中方式 1 与 2 的样板文件都在仓库examples/目录中是一份新建文件 → 复制样板 → 打开浏览器即可运行的最小可执行骨架。Quickstart 一纯 JavaScript 版完整示例如果你希望完全不依赖 p5.js在任意普通 HTML 页面里使用 ml5.js可以参考以下最小页面。在index.html中复制粘贴下面的内容用浏览器直接打开该文件即可!DOCTYPE html html langen head titleGetting Started with ml5.js/title meta nameviewport contentwidthdevice-width, initial-scale1.0 script srchttps://unpkg.com/ml5latest/dist/ml5.min.js/script /head body script // Your code will go here // open up your console - if everything loaded properly you should see the correct version number console.log(ml5 version:, ml5.version); /script /body /html这段代码只有两个关键动作在head中通过script标签引入 ml5.js 的 CDN 产物ml5.min.js加载完成后会在全局暴露ml5对象在页面脚本中读取ml5.version并打印到浏览器控制台。如果控制台正确输出版本号说明库加载成功、环境就绪之后就可以开始调用各种 ml5 功能了。仓库中的纯 JS 样板 examples/javascript/ml5Boilerplate/ml5Boilerplate_Version/index.html 与本示例结构完全一致只是把脚本移到了独立的sketch.js文件中页面骨架可作为你的项目起点。从源码层面看ml5.version并非硬编码而是直接取自仓库package.json中的版本字段src/index.js入口文件通过import { version } from ../package.json导入并在文件末尾随其余 API 一起导出src/index.js。这意味着 CDN 上ml5latest的版本号与仓库当前发布的 npm 版本始终保持一致你可以通过ml5.version在任何时刻校验实际加载到的库版本。Quickstart 二p5.js 增强版完整示例ml5.js 与 p5.js 是天生一对的组合p5 负责画布、交互与绘制ml5 负责机器学习。以下样板同时引入 p5.js 与 ml5.js并附带一个最小画布循环。同样在index.html中复制粘贴并用浏览器打开!DOCTYPE html html langen head titleGetting Started with ml5.js/title meta nameviewport contentwidthdevice-width, initial-scale1.0 !-- p5 -- script srchttps://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/p5.min.js/script script srchttps://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/addons/p5.sound.min.js/script !-- ml5 -- script srchttps://unpkg.com/ml5latest/dist/ml5.min.js/script /head body script // Your code will go here // open up your console - if everything loaded properly you should see the latest ml5 version console.log(ml5 version:, ml5.version); function setup() { createCanvas(400, 400); } function draw() { background(200); } /script /body /html与纯 JS 版本相比这里多引入了两个 p5.js 资源资源作用p5.min.jsp5.js 核心库提供createCanvas、draw、loadImage等绘制与交互 APIp5.sound.min.jsp5.js 声音扩展供后续声音分类、音高检测PitchDetection等功能使用页面加载后setup()中创建一个 400×400 的画布draw()循环中以灰色background(200)刷新画面与此同时ml5.version会在控制台打印出来。仓库内的 p5 样板 examples/p5js/ml5Boilerplate/ml5Boilerplate_Version/sketch.js 更进一步——它把版本号直接绘制到画布中央text(ml5.version, width/2, height/2)让你在页面上即可直观确认库已就绪这也是验证环境的最实用小技巧。从源码看 p5 集成preload 机制如何生效ml5.js 与 p5.js 的深度协作不止于画布。p5 提供preload()生命周期用于在页面绘制前加载模型等异步资源而 ml5.js 通过src/utils/p5PreloadHelper.jsp5PreloadHelper.js中的registerPreload()机制把所有支持预加载的模块自动注册为 p5 的 preload 方法。从源码可以看到src/index.js入口文件维护了一个withPreload白名单涵盖imageClassifier、poseNet、charRNN、styleTransfer、pix2pix、word2vec等模块随后通过preloadRegister(withPreload)统一接入 p5当检测到window.p5存在且其原型支持registerPreloadMethod时每个模块方法会被包装为执行真正的加载逻辑 调用 p5 内部的_decrementPreload计数的 preload 版本因此只要你在页面中同时引入了 p5.js 与 ml5.js就可以在preload()里像下面这样阻塞式地加载模型而无需手动管理异步完成时机function preload() { classifier ml5.imageClassifier(MobileNet); img loadImage(images/bird.png); }也就是说ml5 的preload 友好不是巧合而是源码层面显式注册的结果。这也解释了为什么官方教程见 docs/tutorials/hello-ml5.md推荐用 p5.js 的preload()加载模型——大模型加载耗时较长preload 保证模型与图片就绪后才进入setup()执行分类。版本管理锁定、切换与升级ml5.js 通过 npm 发布CDN 地址https://unpkg.com/ml5version/dist/ml5.min.js中的version决定加载的版本。当前仓库package.jsonpackage.json中的版本为0.12.2与仓库根 README.md 中标注的latest version (0.12.2)一致。使用上有三种策略固定版本推荐显式写出版本号例如https://unpkg.com/ml50.12.2/dist/ml5.min.js可保证代码行为可复现指定历史版本将version替换为任意历史版本号如0.6.1即可回退便于兼容旧代码latest标签https://unpkg.com/ml5latest/dist/ml5.min.js会始终跟随最新发布。官方文档明确提醒不建议长期依赖latest因为 ml5 仍在持续迭代新版本可能引入破坏性变更导致你的既有代码报错。在开发阶段如果你更希望本地构建最新源码仓库package.json提供了完整的开发脚本npm run build通过 webpack 产出dist/ml5.min.jsnpm run develop可同时启动开发服务器与示例文件监听npm run examples:serve则用 live-server 在 8081 端口提供examples/目录的本地访问。下一步官方文档导航与示例生态快速开始只是第一步。ml5.js 的功能生态非常丰富官方文档的结构可以从 docs/_sidebar.md 一览全貌Tutorials教程包括 hello-ml5.md用 MobileNet 做图片分类的经典入门、local-web-server.md本地 Web 服务器配置与 promises-and-callbacks.mdml5 的异步风格ReferenceAPI 参考按输入输出类型分为四类详见 docs/reference/index.mdHelpersneuralNetwork、featureExtractor迁移学习、KNNClassifier、kmeans等与数据、训练相关的能力ImageimageClassifier、poseNet、bodyPix、UNET、styleTransfer、pix2pix、objectDetector等图像/视频能力SoundsoundClassifier、pitchDetection等音频能力TextcharRNN、sentiment、word2vec等文本能力另有Utils工具函数与FAQdocs/faq.mdContributing贡献含贡献者说明与维护笔记docs/styleguide/contributor-notes.md。每个功能在仓库 examples/ 目录下都有配套的独立示例同时提供 p5.js 与纯 JavaScript 两种版本分别位于examples/p5js/与examples/javascript/。例如图片分类示例 examples/p5js/ImageClassification/ImageClassification 展示了preload 加载模型 → setup 中分类 → 回调中读取 label 与 confidence的完整模式与本文的快速入门一脉相承可以作为你进入具体功能实战的最佳跳板。社区、贡献与支持ml5.js 是一个重视各类贡献的开源项目社区的参与形式多种多样组织工作坊、设计贡献、在 GitHub 上帮助解答问题、报告 bug、修复 bug、添加新功能等。你可以通过仓库的 CONTRIBUTING.md 了解参与流程也可以浏览或新建 GitHub issues 来反馈问题。项目团队通过 Discord、Twitterml5js以及邮箱 helloml5js.org 保持联络如果你来自教育机构、基金会或有资助意愿也欢迎通过上述渠道与 ml5 团队接洽。项目的持续发展离不开开源开发者的时间与投入其资金与支持由纽约大学 ITP/IMA 项目获得的 Google 教育资助提供同时 BrowserStack 为项目提供了跨浏览器测试支持。作为学习者你的每一次使用、反馈与代码贡献都在共同推动友好机器学习这一愿景。结语从本文你可以看到ml5.js 的入门路径被刻意设计得极其平坦一条 CDN 链接、一个 HTML 文件、几行脚本就能完成浏览器端机器学习环境的搭建。接下来建议你按 hello-ml5.md 的引导跑通第一个 MobileNet 图片分类程序再顺着 docs/reference/index.md 的分类逐项探索你感兴趣的领域——姿态识别、语音指令、文本生成或风格迁移全部都能在你熟悉的浏览器中完成。赞分享人工智能机器学习深度学习计算机视觉NLP【免费下载链接】ml5-libraryFriendly machine learning for the web! 项目地址https://gitcode.com/gh_mirrors/ml/ml5-library点击查看免费下载相关推荐mac-precision-touchpad 完整指南让苹果触控板在 Windows 上找回 macOS 手感mac precision touchpad 完整指南让苹果触控板在 Windows 上找回 macOS 手感 把 Windows 装进 MacBook或是驱动开发系统底层硬件开发ml5.js 参考指南五大功能分类与浏览器端机器学习 API 总览ml5.js 参考指南五大功能分类与浏览器端机器学习 API 总览 ml5.js 是一套面向 Web 的友好机器学习库其参考文档Reference按照你人工智能机器学习深度学习计算机视觉NLP还在全网找下载方法这款免费开源的跨平台资源下载工具一次搞定还在全网找下载方法这款免费开源的跨平台资源下载工具一次搞定 你有没有过这样的经历刷到一条精彩的视频号内容想存到本地却发现平台根本没有下载入口想保存抖音视桌面应用网络音视频上一篇Moonshine Micro 特征生成模块解析面向 MCU 的无堆 log-mel 前端批量 流式下一篇如何快速上手vlife零代码平台5分钟完成你的第一个企业级应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表