tensorflow.js基本使用 截断模型、引入外部模型(七)
图标识别
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基本使用 截断模型、引入外部模型(七)相关推荐
- php计算时间差js,JavaScript如何计算时间差(引入外部字体文件)?
本章给大家带来用JavaScript如何计算时间差(引入外部字体文件)?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JavaScript Date() 对象: new Date() ...
- tensorflow.js在nodejs训练猫狗分类模型在浏览器上使用
目录 本人系统环境 注意事项 前言 数据集准备 处理数据集 数据集初步处理 将每一张图片数据转换成张量数据(tensor) 将图片转换成张量数组的代码和运行效果 将图片的标注转换成张量数据(tenso ...
- Three.js入门学习笔记07:外部模型导入-C4D转成json文件供网页使用-fbx导入
上一篇用的obj导入,转成json发现有些材质加载不进去,不知是什么原因. 比如blender导入obj模型的时候,只要obj和mtl材质文件在同一个文件夹内,正常情况,导入obj的同时就能直接导入同 ...
- Three.js入门学习笔记05:外部模型导入-C4D转成json文件供网页使用
参考学习: https://www.jianshu.com/p/906072e60197 https://blog.csdn.net/qq_30100043/article/details/79606 ...
- three.js 模型详解和外部模型详解
three.js场景渲染模型,基于项目来说大多数模型都是建模师提供的,three.js建模api有限,无法制作出过于精美和写实的模型,而且代码量过大效率低. 1.three.js建立模型 内置ipa包 ...
- python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
大数据文摘授权转载自数据派THU 作者:MOHD SANAD ZAKI RIZVI 本文主要介绍了: TensorFlow.js (deeplearn.js)使我们能够在浏览器中构建机器学习和深度学习 ...
- 独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- linux tensorflow demo_独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- vue实例中调用外部js_vue中引入外部js方法实例
我们在做vue项目时,经常会需要引入js,常用的有以下几种.本文主要和大家分享vue中引入外部js方法实例,希望能帮助到大家. 第一种import XX from "路径" Vue ...
最新文章
- Android----PopupWindow
- linux删除非空目录
- matlab画微分方程的矢量场图_MATLAB偏微分方程
- java8压缩,如何使用Java 8压缩多个列表?
- 0428专题:行内元素与块状元素
- ArcGIS删除地图投影坐标,只保留地理坐标
- 如何评价MSRA视觉组最新提出的Deformable ConvNets V2?
- 基于顺序存储结构的图书信息表的最贵图书的查找(C++)
- 【英语学习】【Level 07】U08 Old Stories L1 The old times
- 【Python笔记】网络爬虫——介绍
- 九、Promises
- 高中计算机网络培训心得体会,高中老师信息技术培训心得体会
- 通过UltraISO,写入ISO镜像,制作U盘启动盘
- 《疯狂的站长》站长必读书籍
- 数据原理——1、ChIP-seq
- 金角大王 python_【51CTO学院三周年】 老男孩python全栈心路
- 直播带货软件开发,android的仿制直播点赞功能特效
- 安卓手机做服务器(django),完成废物利用
- KafKa 开启 SASL 验证
- 网段、子网号、网络地址、网络号辨析