首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当微信小程序遇上TensorFlow - tensorflow.js篇

在写下上一篇推送后,我简单尝试过在微信小程序中使用tensorflow.js,发现直接使用还是存在一点问题,所以本次的目标是走通简单的流程:加载预训练模型mobilenet,可以用来识别图片所属分类。...下面就简要描述一下我所遇到的坑及解决之道: loadLayersModel无法加载模型 使用tfjs定义模型,训练模型并进行预测都没问题,但是使用 loadLayersModel 加载预训练模型...,却出现如下错误: Uncaught (in promise) Error: Unable to find the fetch() method....为什么会出现这个问题呢,原来tfjs-core为了可移植性,平台相关的操作,由各平台自行实现。网络上获取数据就是这样的平台相关操作,浏览器、Node各有自己的实现方法。...避免每次网络加载

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

TensorFlow小程序探索实践

,分别对应train_cnn.py、train_mobilenet.py文件 以训练mobilenet模型为例 图片 执行python train_mobilnet.py 图片 注意:...1、报错input empty是因为图像中有加载错误的,即size为0,此命令find ..../split_data/train/ -size 0找出来是否有错误的图片 图片 在对应文件夹全部删掉此文件,也可自己去data文件中对应数据源找出错误图片(size为0)删掉 2、报错图片类型无效的..."@tensorflow/tfjs-layers": "^1.2.2", "fetch-wechat": "^0.0.3" } 之后执行npm i --legacy-peer-deps 因为版本依赖错误...: webgl 后端 tfjs-backend-cpu: cpu 后端 tfjs-data:数据流 对于小程序而言,由于有2M的app大小限制,不建议直接使用联合包,而是按照需求加载分包。

1.8K80

当微信小程序遇上TensorFlow - 官方文档

循着这份文档,我还找到了tensorflow项目组的tfjs微信小程序示例: https://github.com/tensorflow/tfjs-wechat/tree/master/demo/mobilenet...直接导入github.com/tensorflow/tfjs-wechat/tree/master/demo/mobilenet中的代码,到了 点击微信开发工具中的‘构建npm’菜单 这一步,总是提示:...: LayersModel 创建,导入和执行包 tfjs-data:数据流工具包 对于小程序而言,由于有2M的app大小限制,不建议直接使用联合包,而是按照需求加载分包。...tfc from '@tensorflow/tfjs-core'; 小结 使用tensorflow的官方方法,可以跟上tfjs的最新进展,可以在第一间上使用最新特性,推荐使用这种方法。...但我之前的尝试也不是毫无价值,tfjs官方没有增加对模型本地缓存的支持,每次都需要从网络加载模型,当然不排除以后tfjs官方也会添加这样的特性。

4.3K30

浏览器中的机器学习:使用预训练模型

比如访问 https://github.com/tensorflow/tfjs-models/tree/master/mobilenet ,我们可以看到该mobilenet对象提供两个主要的API:...: 0.25 | .50 | .75 | 1.0 ) 参数: 版本:MobileNet版本号。1表示MobileNet V1,2表示使用MobileNet V2。默认值为1。...在浏览器中使用MobileNets就相当简单了: <script src="https://cdn.jsdelivr.net/npm/@tensorflow/<em>tfjs</em>...这个示例写的比较简单,<em>从</em>浏览器控制台输出log,显示结果,在chrome浏览器中可以打开开发者工具查看: <em>加载</em>json格式的MobileNets模型 使用封装好的JS对象确实方便,但使用自己训练的模型<em>时</em>...在下一篇文章中我将说明如何<em>从</em>现有的TensorFlow模型转换为TensorFlow.js模型,并<em>加载</em>之,敬请关注! 以上示例有完整的代码,点击阅读原文,跳转到我在github上建的示例代码。

1.1K20

浏览器中的姿态检测:PoseNet 模型(附代码)

为追踪问题,我们使用 tensorflow/tfjs Github repo。...加载预先训练的 PoseNet 模型 在姿势检测的第一步,将一幅图像输入预先训练过的模型。PoseNet 有一些不同版本的模型,每一个版本都对应一个拥有特定乘数的 MobileNet v1 架构。...默认情况下, PoseNet 加载模型使用乘数 1.01 。拥有超强 GPU 的计算机建议采用该值。如果计算机拥有中等或低端 GPU,建议乘数采用0.75。移动设备建议使用0.5。...比单个姿势检测算法复杂得多,并且运行速度稍慢,但却在图像中有多人的情况下很有优势,检测到的关键点不太可能与错误的姿势相关联。即使用于检测单个人的姿势, 这种算法也可能更可取。...因为当多个人出现在图像中,两个姿势被连接在一起的意外就不会发生。

2.8K41

独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)

它将MobileNet模型加载到浏览器中,并对视频提要执行推理。 我们还利用P5.js(https://p5js.org/)库来处理视频输入并在视频本身上显示标签。 我不需要在电脑上安装任何东西。...你可以简单地HTML中的URL加载它即可。 如果你想在本地工作怎么办呢?实际上,你可以在Jupyter Notebook中使用TensorFlow.js,就像你在Python或R中通常做的那样。...例如,这可以帮助我们确定某人的肘部在图像中出现的位置。 只是要清楚-姿势估计不是关于识别谁在一个图像中。该算法只是简单地估计关键身体关节的位置。...以下是完成此项工作所需的步骤: 加载PoseNet模型并从网络摄像头捕获视频 检测身体关节的关键点 显示检测到的身体关节 绘制估计的身体骨骼 让我们第一步开始。...PoseNet.on():每当检测到一个新的姿势,就执行这个函数。 modelReady():当PoseNet完成加载,我们调用这个函数来显示模型的状态。

1.6K20

在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)

它将MobileNet模型加载到浏览器中,并对视频提要执行推理。 我们还利用P5.js(https://p5js.org/)库来处理视频输入并在视频本身上显示标签。 我不需要在电脑上安装任何东西。...你可以简单地HTML中的URL加载它即可。 如果你想在本地工作怎么办呢?实际上,你可以在Jupyter Notebook中使用TensorFlow.js,就像你在Python或R中通常做的那样。...例如,这可以帮助我们确定某人的肘部在图像中出现的位置。 只是要清楚-姿势估计不是关于识别谁在一个图像中。该算法只是简单地估计关键身体关节的位置。...以下是完成此项工作所需的步骤: 加载PoseNet模型并从网络摄像头捕获视频 检测身体关节的关键点 显示检测到的身体关节 绘制估计的身体骨骼 让我们第一步开始。...PoseNet.on():每当检测到一个新的姿势,就执行这个函数。 modelReady():当PoseNet完成加载,我们调用这个函数来显示模型的状态。

2.1K00

前端开发行业真的会被AI取代吗?

② 预训练模型加载到前端等待时间较长障碍 在简单的Web应用程序中将几十兆至上百兆预训练模型权重加载到客户端浏览器是非常耗时的。这对于用户是无法接受的。...(3)谷歌MobileNet 一般的tensorflow模型动辄几百兆,在前端怎么跑呢?...没关系,我们有MobileNet啊,MobileNet是针对于移动端模型提出的神经网络架构,能极大地减少模型参数量,同理也能用到浏览器端上。...同时也付出了一些代价,模型44K增加到几百K。...另外,将Tensorflow模型或Keras模型转换为web_model模型之后,会生成很多小的权重文件,在实际应用时,通过懒加载和预加载策略,可以在不影响首屏加载情况下,优化模型加载时间。

1.8K51

【机器学习】Tensorflow.js:在浏览器中使用机器学习实现图像分类

Model 当你使用数据集训练机器学习算法,模型是此训练过程的输出。 它有点像一个将新数据作为输入并产生预测作为输出的函数。 标签和特征 标签和特征与你在训练过程中提供给算法的数据相关。...ie=edge"> Cat detection <script src="https://cdn.jsdelivr.net/npm/@tensorflow/<em>tfjs</em>...我们有一个用于预测的图像元素: 最后,在 script 标签内,我们有 JavaScript 代码,它<em>加载</em>预训练的...<em>MobileNet</em> 模型并对在图像标签中找到的图像进行分类。...需要了解的重要一点是,在浏览器中<em>加载</em>预训练模型可能需要一些时间(有时长达 10 秒),因此你可能需要预<em>加载</em>或调整界面,以免影响用户的体验。

30920

为了防止狗上沙发,写了一个浏览器实时识别目标功能

,实现识别 let dogDetector; async function loadDogDetector() { // 加载预训练的 SSD MobileNet V2 模型 const model.../> Mobile Dog Detector <script src="https://cdn.jsdelivr.net/npm/@tensorflow/<em>tfjs</em>...SSD <em>MobileNet</em> V2 模型 const model = await cocoSsd.load(); dogDetector = model; // 将<em>加载</em>好的模型赋值给...<em>加载</em>物体检测模型: 使用 TensorFlow.js 和预训练的 COCO-SSD <em>MobileNet</em> V2 模型进行对象检测,<em>加载</em>模型后赋值给 dogDetector 变量。...将当前视频帧绘制到 canvas 上,然后<em>从</em> canvas 中提取图像数据传入模型进行预测。在模型返回的预测结果中,如果检测到“dog”,则触发播放音频函数。

6910

TensorFlow.js 微信小程序插件开始支持 WebAssembly

为了应对这一问题, WebAssembly 出现了。...相对于 JS,WebAssembly 有如下优点: 体积小:由于浏览器运行时只加载编译成的字节码,一样的逻辑比用字符串描述的 JS 文件体积要小很多; 加载快:由于文件体积小,再加上无需解释执行,WebAssembly...能更快的加载并实例化,减少运行前的等待时间; 兼容性问题少:WebAssembly 是非常底层的字节码规范,制订好后很少变动,就算以后发生变化,也只需在从高级语言编译成字节码过程中做兼容。...可能出现兼容性问题的地方在于 JS 和 WebAssembly 桥接的 JS 接口。...由于在苹果手机上还未能全面支持 WebAssembly,在加上 WebAssembly 技术出现的比较晚(2015年),需要时间的检验,要在项目中全面采用 WebAssembly 不现实。

3K20
领券