图标识别

import $ from 'jquery';
import * as tf from '@tensorflow/tfjs';
import { img2x, file2img } from './utils.js';const MODEL_PATH = 'http://127.0.0.1:8080';
const BRAND_CLASSES = ['android', 'apple', 'windows'];$(async () => {//引入外部模型const mobilenet = await tf.loadLayersModel(MODEL_PATH+'/mobilenet/web_model/model.json');//查看模型所有层mobilenet.summary();//截断模型const layer = mobilenet.getLayer('conv_pw_13_relu');const truncatedMobilenet = tf.model({inputs: mobilenet.inputs,outputs: layer.output});//引入外部模型const model = await tf.loadLayersModel(MODEL_PATH + '/mobilenet/logo-model.json');window.predict = async (file) => {//处理上传的图片格式const img = await file2img(file);document.body.appendChild(img);const pred = tf.tidy(() => {const x = img2x(img);//把数据传入第一个引入的模型,处理完给第二个模型const input = truncatedMobilenet.predict(x);//第二个模型预测return model.predict(input);});const index = pred.argMax(1).dataSync()[0];setTimeout(() => {alert(`预测结果:${BRAND_CLASSES[index]}`);}, 0);};
});

html部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div>图标识别</div><input type="file" onchange="predict(this.files[0])"><button onclick="download()">保存模型</button>
</body>
<script src="./t6.js"></script>
</html>

utils.js

import * as tf from '@tensorflow/tfjs';//转换图片格式tensor↓↓↓↓↓↓↓↓↓↓↓
export function img2x(imgEl) {return tf.tidy(() => {const input = tf.browser.fromPixels(imgEl).toFloat().sub(255 / 2).div(255 / 2).reshape([1, 224, 224, 3]);return input;});
}export function file2img(f) {return new Promise(resolve => {const reader = new FileReader();reader.readAsDataURL(f);reader.onload = (e) => {const img = document.createElement('img');img.src = e.target.result;img.width = 224;img.height = 224;img.onload = () => resolve(img);};});
}
//转换图片格式tensor↑↑↑↑↑↑↑↑↑↑↑

执行结果

tensorflow.js基本使用 截断模型、引入外部模型(七)相关推荐

  1. php计算时间差js,JavaScript如何计算时间差(引入外部字体文件)?

    本章给大家带来用JavaScript如何计算时间差(引入外部字体文件)?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JavaScript Date() 对象: new Date() ...

  2. tensorflow.js在nodejs训练猫狗分类模型在浏览器上使用

    目录 本人系统环境 注意事项 前言 数据集准备 处理数据集 数据集初步处理 将每一张图片数据转换成张量数据(tensor) 将图片转换成张量数组的代码和运行效果 将图片的标注转换成张量数据(tenso ...

  3. Three.js入门学习笔记07:外部模型导入-C4D转成json文件供网页使用-fbx导入

    上一篇用的obj导入,转成json发现有些材质加载不进去,不知是什么原因. 比如blender导入obj模型的时候,只要obj和mtl材质文件在同一个文件夹内,正常情况,导入obj的同时就能直接导入同 ...

  4. Three.js入门学习笔记05:外部模型导入-C4D转成json文件供网页使用

    参考学习: https://www.jianshu.com/p/906072e60197 https://blog.csdn.net/qq_30100043/article/details/79606 ...

  5. three.js 模型详解和外部模型详解

    three.js场景渲染模型,基于项目来说大多数模型都是建模师提供的,three.js建模api有限,无法制作出过于精美和写实的模型,而且代码量过大效率低. 1.three.js建立模型 内置ipa包 ...

  6. python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...

    大数据文摘授权转载自数据派THU 作者:MOHD SANAD ZAKI RIZVI 本文主要介绍了: TensorFlow.js (deeplearn.js)使我们能够在浏览器中构建机器学习和深度学习 ...

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

    作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...

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

    作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...

  9. vue实例中调用外部js_vue中引入外部js方法实例

    我们在做vue项目时,经常会需要引入js,常用的有以下几种.本文主要和大家分享vue中引入外部js方法实例,希望能帮助到大家. 第一种import XX from "路径" Vue ...

最新文章

  1. Android----PopupWindow
  2. linux删除非空目录
  3. matlab画微分方程的矢量场图_MATLAB偏微分方程
  4. java8压缩,如何使用Java 8压缩多个列表?
  5. 0428专题:行内元素与块状元素
  6. ArcGIS删除地图投影坐标,只保留地理坐标
  7. 如何评价MSRA视觉组最新提出的Deformable ConvNets V2?
  8. 基于顺序存储结构的图书信息表的最贵图书的查找(C++)
  9. 【英语学习】【Level 07】U08 Old Stories L1 The old times
  10. 【Python笔记】网络爬虫——介绍
  11. 九、Promises
  12. 高中计算机网络培训心得体会,高中老师信息技术培训心得体会
  13. 通过UltraISO,写入ISO镜像,制作U盘启动盘
  14. 《疯狂的站长》站长必读书籍
  15. 数据原理——1、ChIP-seq
  16. 金角大王 python_【51CTO学院三周年】 老男孩python全栈心路
  17. 直播带货软件开发,android的仿制直播点赞功能特效
  18. 安卓手机做服务器(django),完成废物利用
  19. KafKa 开启 SASL 验证
  20. 网段、子网号、网络地址、网络号辨析

热门文章

  1. 微信禁止打卡,裂变营销时代即将终结?
  2. 《缠中说禅108课》3:你的喜好,你的死亡陷阱
  3. android端口数据包,【图片】android抓包工具fiddler抓包使用方法 跟踪监控android数据包【中国红客联盟吧】_百度贴吧...
  4. xiao jiqiao
  5. 开发一番赏盲盒小程序怎么抽才能一发入魂呢
  6. 【Linux】循序渐进学运维-服务篇-SCP命令
  7. Linux虚拟机磁盘扩容
  8. Elasticsearch Log4j漏洞快速修复步骤
  9. 小白入门------第一篇博客
  10. 十大Android开发趋势| 2020年指南