本文结构:
TensorFlow.js 是一个开源库,不仅可以在浏览器中运行机器学习模型,还可以训练模型。
具有 GPU 加速功能,并自动支持 WebGL
可以导入已经训练好的模型,也可以在浏览器中重新训练现有的所有机器学习模型
运行 Tensorflow.js 只需要你的浏览器,而且在本地开发的代码与发送给用户的代码是相同的。
TensorFlow.js 对未来 web 开发有着重要的影响,JS 开发者可以更容易地实现机器学习,工程师和数据科学家们可以有一种新的方法来训练算法,例如官网上 Emoji Scavenger Hunt 这样的游戏界面,让用户一边玩游戏一边将模型训练地更好。
用 Tensorflow.js 可以做很多事情,
例如 object detection in images, speech recognition, music composition,
而且 不需要安装任何库,也不用一次又一次地编译这些代码。
TensorFlow.js 可以为用户解锁巨大价值:
为了很快地看看效果,有下面三种方式:
那么先来看一下下面这段代码,可以在 codepen 中运行:
https://codepen.io/pen?&editors=1011
这段代码的目的是做个回归预测,
数据集为:
构造符合 Y=2X-1 的几个点,
那么当 X 取 [-1, 0, 1, 2, 3, 4] 时,
y 为 [-3, -1, 1, 3, 5, 7],
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]">
script>
head>
<body>
<div id="output_field">div>
body>
<script>
async function learnLinear(){
const model = tf.sequential();
model.add(tf.layers.dense({
units: 1,
inputShape: [1]
}));
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
await model.fit(xs, ys, {epochs: 500});
document.getElementById('output_field').innerText =
model.predict( tf.tensor2d([10], [1, 1]) );
}
learnLinear();
script>
<html>
<html>
<head>head>
<body>body>
html>
在 head 中,从 CDN 引用 TensorFlow.js,这样就可以使用 API 了:
https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]
然后建立模型,因为 input ,output 都只有一个,所以就建立一个 single node,即:
const model = tf.sequential();
model.add(tf.layers.dense({
units: 1,
inputShape: [1]
}));
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
await model.fit(xs, ys, {epochs: 500});
document.getElementById('output_field').innerText =
model.predict( tf.tensor2d([10], [1, 1]) );
Tensor
[[18.9862976],]
再来通过一个简单的例子来比较一下 Tensorflow.js 和 tflearn,
可以看出如果熟悉 tflearn 的话,那么 Tensorflow.js 会非常容易上手,
学习资料:
https://medium.com/tensorflow/getting-started-with-tensorflow-js-50f6783489b2
https://thekevinscott.com/reasons-for-machine-learning-in-the-browser/
https://www.analyticsvidhya.com/blog/2018/04/tensorflow-js-build-machine-learning-models-javascript/
https://hackernoon.com/introducing-tensorflow-js-3f31d70f5904
https://thekevinscott.com/tensorflowjs-hello-world/
推荐阅读
历史技术博文链接汇总
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]