大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app (4)

实际输出值和预期输出值之间存在着“误差”,这种“误差”在AI术语里被称作loss(损失)。而模型训练师们,也是把loss当做训练的把手。(loss值越小,说明模型训练的越成功嘛)

大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app



所以我们在使用模型的时候,未必能得出正确的答案。因为模型得出的结果会存在loss。

比如说,前阵子公司里app组的大佬们写了一个 程序员鉴定 app。入参 人物图像, 得出图像中人物为程序员的概率。

经过大家的鉴定,有些结果与现实存在一定误差。

什么是Tensorflow.js?

TensorFlow.js是一个开源的基于硬件加速的JavaScript库,用于训练和部署机器学习模型。谷歌推出的第一个基于TensorFlow的前端深度学习框架TensorFlow.js 是一个开源的用于开发机器学习项目的 WebGL-accelerated JavaScript 库。TensorFlow.js 可以为你提供高性能的、易于使用的机器学习构建模块,允许你在浏览器上训练模型,或以推断模式运行预训练的模型。TensorFlow.js 不仅可以提供低级的机器学习构建模块,还可以提供高级的类似 Keras 的 API 来构建神经网络。

Tensorflow.js的优点:

不用安装驱动器和软件,通过链接即可分享程序

网页应用交互性更强

有访问GPS,Camera,Microphone,Accelerator,Gyroscope等传感器的标准api(主要是指手机端)

安全性,因为数据都是保存在客户端的

TensorFlow.js的应用方式:

在浏览器中开发ML

使用简单直观的API从头构建模型,然后使用低级别的JavaScript线性代数库或高层API进行训练。

运行现有模型 ~~~我们不生产模型,我们只是模型的搬运工

使用TensorFlow.js模型转换器在浏览器中运行预训练好的TensorFlow模型。

重新训练现有模型

使用连接到浏览器的传感器数据或其他客户端数据重新训练ML模型。

tfjs 训练模型

// to https://github.com/melodyWxy/twa-tf.js/blob/master/tfjs_0.html

存储

// to https://github.com/melodyWxy/twa-tf.js/blob/master/tfjs_1.html

// model.save(); // 本地存储(浏览器) localstorage:// await model.save('localstorage://my-model-1'); // IndexedDB(浏览器) indexeddb:// await model.save('indexeddb://my-model-1'); //IndexedDB 是大多数主流Web浏览器支持的另一个客户端数据存储。与本地存储不同,它更好地支持存储大型二进制数据(BLOB)和更大的配额。因此,tf.Model与本地存储相比,保存到IndexedDB通常可以提供更好的存储效率和更大的大小限制。 // 触发文件下载到客户端本地保存(浏览器) downloads:// await model.save('downloads://my-model-1'); //json + 一个二进制文件 // HTTP请求(浏览器) 要么 https:// POST请求的主体具有一个名为的格式 multipart/form-data。它是用于将文件上载到服务器的标准MIME格式。正文由两个文件组成,文件名model.json和文件名 model.weights.bin。 await model.save('http://model-server.domain/upload'); //简单的写法 await model.save(tf.io.browserHTTPRequest( //更详细的写法,便于控制post需求 'http://model-server.domain/upload', {method: 'PUT', headers: {'header_key_1': 'header_value_1'}})); // 文件系统(Node.js) file:// node-tf.js node端本地生成文件储存 await model.save('file:///tmp/my-model-1'); js导入模型

// to https://github.com/melodyWxy/twa-tf.js/blob/master/tfjs_2.html

// tf.loadModel const model = await tf.loadModel('https://foo.bar/tfjs_artifacts/model.json'); // tf.loadLayersModel 导入Layers模型 const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json'); tfjs导入模型的方式

// to https://github.com/melodyWxy/twa-tf.js/blob/master/tfjs_2.html


大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app



layers 转 Keras

转keras是为了让python用 在python环境下 下载tensorflowjs这个转换器,即可将js-layers格式的模型转为python-keras模型
方案:

使用该file://方案将模型直接写入Node.js中的本机文件系统 。使用tensorflowjs转换器,您可以将这些文件转换为HDF5格式,然后可以将其加载到Python中的Keras中。例如:

pip install tensorflowjs tensorflowjs_converter \ --input_format tensorflowjs --output_format keras \ ./my-model-1.json /tmp/my-model-1.h5

通过文件从Web浏览器下载,使用该downloads://方案

tfjs官方模型社区资源

https://github.com/tensorflow/models/tree/master/research/slim

最后,如果你觉得这篇文章对你的知识广度和技术栈有所拓展,也许可以请笔者喝一杯咖啡?

大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyygyd.html