比 Tesorflow 还强!?

简介: 比 Tesorflow 还强!?

大家好,我是章北海


Python是机器学习和深度学习的首选编程语言,但绝不是唯一。训练机器学习/深度学习模型并部署对外提供服务(尤其是通过浏览器)JavaScript 是一个不错的选择,市面上也出现了很多机器学习库,比较著名的就是谷歌的 TensorFlow.js。我在《用浏览器玩机器学习,赞!》一文中已详细介绍它的用法,感兴趣的同学可以去看看。

今天要向大家介绍一个功能更加强大的机器学习库——ML5.js。它构建在 Tensorflow 之上,可进一步简化直接从 JavaScript访问机器学习模型的过程。


640.gif


ml5.js


ml5.js是一个javascript实现的,能在浏览器里面运行的机器学习框架,它封装了tensorflow.js的API,给开发者提供一个更简单的使用环境,降低了机器学习编码的成本。


ml5js官方提供的机器学习案例类型有图像、声音和文本等类别.


640.png

每个模型都有初始化,参数,属性,方法的详细介绍,以ml5.imageClassifier() 为例,大家去对应目录查看即可:


https://learn.ml5js.org/#/reference/image-classifier


其实大家完全不用担心难以使用,因为ml5.js,太简单了。有多简化?我们看一下核心代码:


// Step 1: 使用MobileNet创建图像分类模型
const classifier = ml5.imageClassifier('MobileNet', onModelReady);
// Step 2: 选择一张图片
const img = document.querySelector("#myImage")
// Step 3: 预测图片分类结果
let prediction = classifier.predict(img, gotResults);
// Step 4: 对结果进行操作
function gotResults(err, results) {
  console.log(results);
}


html中使用ml5.js更简单了,只需一行:


<script src="https://unpkg.com/ml5@0.10.5/dist/ml5.min.js" type="text/javascript"></script>


是不是及其简单?


ml5js 如何入门


学习ml5.js最佳方式是从官方实例入手:examples.ml5js.org


大家可以通过 p5.js web editor查看案例,不但可以实时看到效果,还有具体代码:


p5.js 是一个JavaScript的函数库,是一个对初学者非常友好的编程环境,能够将制作出来的有创意,有趣的东西呈现在任何的浏览器上。

640.gif

https://editor.p5js.org/ml5/sketches/sW0Q5e7CQ


640.gif


https://editor.p5js.org/ml5/sketches/MP9RbWmw4n


不过我更推荐克隆整个项目,然后在本地运行这些案例,步骤如下:


# 1:克隆项目
git clone https://github.com/ml5js/ml5-library.git
cd ml5-library
# 2:安装依赖
npm install
# 3:运行本地服务
npm run develop
# 4:浏览器访问  localhost:8081


ml5js 实例


以图形识别为例,一个项目必须包含一个html页面,代码如下:


<html>
<head>
  <meta charset="UTF-8">
  <title>Image Classification Example</title>
  <script src="https://unpkg.com/ml5@0.10.5/dist/ml5.min.js" type="text/javascript"></script>
</head>
<body>
  <h1>Image classification using MobileNet</h1>
  <p>The MobileNet model labeled this as <span id="result">...</span> with a confidence of <span id="probability">...</span>.</p>
  <img src="images/dog.jpeg" id="image" width="400"                    />
  <script src="sketch.js"></script>
</body>
</html>


模型实现在 sketch.js,代码如下:


const image = document.getElementById('image'); // 需要识别的图片
const result = document.getElementById('result'); // html中的结果标签
const probability = document.getElementById('probability'); // 识别概率标签
// 用MobileNet初始化imageClassifier
ml5.imageClassifier('MobileNet')
  .then(classifier => classifier.classify(image))
  .then(results => {
    result.innerText = results[0].label;
    probability.innerText = results[0].confidence.toFixed(4);
  });


image目录下放我们要识别的图片,本例中就是dog.jpeg


640.png


开发工具建议选VsCode,记得安装 Live Server 插件


640.png


Live Server 打开index.html,浏览器会自动弹出


http://127.0.0.1:5500/learn-ml5js/index.html

640.png

bingo!识别出这是拉布拉多犬


相关文章
|
4月前
|
JavaScript 前端开发 API
vite中如何根据不同环境配置打包规则?一个if语句即可搞定!
【8月更文挑战第1天】vite中如何根据不同环境配置打包规则
391 5
vite中如何根据不同环境配置打包规则?一个if语句即可搞定!
|
6月前
|
数据采集 安全 网络安全
代理IP纯净度如何测试?
代理IP的纯净度关乎网络隐私、稳定性和安全性。纯净IP能保护用户身份,提供稳定连接,降低被识别为恶意访问的风险,并确保数据安全。测试纯净度包括检查IP历史、黑名单状态、SSL支持、匿名度及网络性能。在网络安全至关重要的今天,纯净代理IP是重要保障。
|
运维 Prometheus 监控
龙蜥正式开源 SysOM:百万级实战经验打造!一站式运维管理平台 | 龙蜥技术
SysOM集监控、告警、诊断、修复、安全能力于一体的操作系统运维平台。
龙蜥正式开源 SysOM:百万级实战经验打造!一站式运维管理平台 | 龙蜥技术
|
运维 监控 架构师
金鱼哥RHCA回忆录:CL210介绍
金鱼哥RHCA回忆录:CL210介绍
551 0
金鱼哥RHCA回忆录:CL210介绍
|
传感器 数据采集 IDE
HaaS训练营案例:温湿度上云
“HaaS云端一体物联网开发训练营”的活动受到了广泛开发者的欢迎,原定500人的报名人数,在刚开放报名的前几天就已全部抢完,后来连续增加了4次报名人数,最终所有的报名名额也一抢而空了。报名的开发者中有学生、上班族、物联网爱好者、还有大学教授。
438 15
HaaS训练营案例:温湿度上云
线性规划(1)—练习题解题报告
线性规划(1)—练习题解题报告
163 3
线性规划(1)—练习题解题报告
|
JSON 数据库 数据格式
【TP5】关于双表联查时json的条件没有对应上时不显示数据
【TP5】关于双表联查时json的条件没有对应上时不显示数据
121 0
【TP5】关于双表联查时json的条件没有对应上时不显示数据
|
存储 C++ 容器
C++ 11 的一些新特性
学习 C++ 11 中使用的一些新特性都通通记录下来!😤
155 0