(未经作者同意,请勿转载)
Tensorflow.js的优势
TensorFlow.js是一个开源的基于硬件加速的JavaScript库,用于训练和部署机器学习模型。谷歌推出的第一个基于TensorFlow的前端深度学习框架是deeplearning.js(现已加入Tensorflow.js的豪华午餐内容,即TensorFlow.js Core),基于浏览器和Javascript的Tensorflow.js有以下的优点:
1)不用安装驱动器和软件,通过链接即可分享程序
2)网页应用交互性更强
3)有访问GPS,Camera,Microphone,Accelerator,Gyroscope等传感器的标准api(主要是指手机端)
4)安全性,因为数据都是保存在客户端的
TensorFlow.js的应用方式:
1)在浏览器中开发ML
使用简单直观的API从头构建模型,然后使用低级别的JavaScript线性代数库或高层API进行训练。
2)运行现有模型
使用TensorFlow.js模型转换器在浏览器中运行预训练好的TensorFlow模型。
3)重新训练现有模型
使用连接到浏览器的传感器数据或其他客户端数据重新训练ML模型。
tensorflow.js 的安装和使用
在您的JavaScript项目中有两种主要的方式来获取TensorFlow.js:通过脚本标记(script tags)或从NPM(或者yarn)安装并使用Parcel,WebPack或Rollup等工具构建工程。
1)使用Script Tag
将下面的代码添加到HTML文件中,在浏览器中打开该HTML文件,代码应该运行!
<html>
<head>
<!-- Load TensorFlow.js -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0"> </script>
<!-- Place your code in the script tag below. You can also use an external .js file -->
<script>
// Notice there is no 'import' statement. 'tf' is available on the index-page
// because of the script tag above.
// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
// Open the browser devtools to see the output
model.predict(tf.tensor2d([5], [1, 1])).print();
});
</script>
</head>
<body>
</body>
</html>
通过NPM(或yarn)
使用yarn或npm将TensorFlow.js添加到您的项目中。 注意:因为使用ES2017语法(如import),所以此工作流程假定您使用打包程序/转换程序将代码转换为浏览器可以理解的内容。 在以后的教程中会介绍如何用Parcel构建工程,现在首先安装npm或者yarn。
yarn add @tensorflow/tfjs
npm install @tensorflow/tfjs
在js文件中输入以下代码:
import * as tf from '@tensorflow/tfjs';
// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
model.predict(tf.tensor2d([5], [1, 1])).print();
});
使用yarn/npm生成
1)yarn
cd 工作目录名
yarn
yarn watch
2)npm
cd 工作目录名
npm install
npm run watch
参考: