Getting Started with TensorFlow.js
使用TensorFlow.js,您不仅可以在浏览器中运行深度学习模型进行推理,你还能够训练它们。在这个简单的样例中,将展示一个相当于“Hello World”的示例。
1、引入TensorFlow.js
使用CDN上的文件,你就可以使用TensorFlow APIs。
<html>
<head>
<!-- Load TensorFlow.js -->
<!-- Get latest version at https://github.com/tensorflow/tfjs -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.2"> </script>
这里使用的版本是 0.11.2,你可以去github上找最新的。
2、创建一个简单的神经网络
由于这只有一个输入值和输出值,因此它可以是单个节点。在JavaScript中,我们可以创建一个tf.sequential,并向其添加layers。
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
我们还需要指定损失函数和优化器:
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
为了训练模型,我们需要数据集来训练模型。构造几个符合Y=2X-1的点,那么当X取[-1, 0, 1, 2, 3],Y取[-3, -1, 1, 3, 5]
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
调用fit函数进行训练,传入X和Y并指定训练轮数。请注意,只是异步的,在进入下一步之前必须等待返回值,所以这些代码都要写在一个async函数中。
await model.fit(xs, ys, {epochs: 500});
最后传入一个值进行预测。
完整的代码如下:
<html> <head>
<!-- Load TensorFlow.js -->
<!-- Get latest version at https://github.com/tensorflow/tfjs -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.2">
</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: 100}); document.getElementById('output_field').innerText =
model.predict( tf.tensor2d([10], [1, 1]) );
} learnLinear();
</script> <html>
参考链接:
1. https://medium.com/tensorflow/getting-started-with-tensorflow-js-50f6783489b2
2.https://blog.csdn.net/aliceyangxi1987/article/details/80743590
Getting Started with TensorFlow.js的更多相关文章
- TensorFlow.js入门(一)一维向量的学习
TensorFlow的介绍 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着 ...
- 转《在浏览器中使用tensorflow.js进行人脸识别的JavaScript API》
作者 | Vincent Mühle 编译 | 姗姗 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升.在 ...
- TensorFlow.js之根据数据拟合曲线
这篇文章中,我们将使用TensorFlow.js来根据数据拟合曲线.即使用多项式产生数据然后再改变其中某些数据(点),然后我们会训练模型来找到用于产生这些数据的多项式的系数.简单的说,就是给一些在二维 ...
- TensorFlow.js之安装与核心概念
TensorFlow.js是通过WebGL加速.基于浏览器的机器学习js框架.通过tensorflow.js,我们可以在浏览器中开发机器学习.运行现有的模型或者重新训练现有的模型. 一.安装 ...
- 大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app
大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app ( 本文内容为melodyWxy原作,git地址:https://github.com/melodyWx ...
- TensorFlow.js入门:一维向量的学习
转载自:https://blog.csdn.net/weixin_34061042/article/details/89700664 一维向量及其运算 tensor 是 TensorFlow.js 的 ...
- [ML] Tensorflow.js + Image segmentPerson
<!DOCTYPE html> <html> <head> <title>Parcel Sandbox</title> <meta c ...
- 【一统江湖的大前端(9)】TensorFlow.js 开箱即用的深度学习工具
示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 目录 一. 上手TensorFlow.js 二. ...
- 在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN
Generative Adversarial Network 是深度学习中非常有趣的一种方法.GAN最早源自Ian Goodfellow的这篇论文.LeCun对GAN给出了极高的评价: “There ...
随机推荐
- Physically Based Shader Development for Unity 2017 Develop Custom Lighting Systems (Claudia Doppioslash 著)
http://www.doppioslash.com/ https://github.com/Apress/physically-based-shader-dev-for-unity-2017 Par ...
- 逐行剖析Vue源码(一)——写在最前面
1. 前言 博主作为一名前端开发,日常开发的技术栈是Vue,并且用Vue开发也有一年多了,对其用法也较为熟练了,但是对各种用法和各种api使用都是只知其然而不知其所以然,因此,有时候在排查bug的时候 ...
- ubuntu16.04 下anaconda3安装教程
贴一个成功的连接: https://blog.csdn.net/u012243626/article/details/82469174
- python 自定义Iterator对象
from collections.abc import Iterator class Company(object): def __init__(self, employee_list): self. ...
- HTTP Error 502.5 - ANCM Out-Of-Process Asp.Net Core发布到IIS失败
问题概述 asp.net core网站发布到windows server 2012r2 IIS后,出现这个报错.dotnet xx.dll命令网站能够正常运行.说明不是程序问题. 经过一番折腾终于部署 ...
- SAP PI接口(RFC类型)在函数字段修改或增加后,出现字段映射错误问题
在解决标题所言问题之前,我们先回头看看RFC和sproxy这两种接口的优缺点. 关于PI接口的实现,目前我了解到的各大国企项目像中海油.中石化.国网等,普遍实现方式是RFC和代理类sproxy这两种. ...
- SVN每日定时备份脚本
SVN每日定时备份脚本: @ECHO off REM SVN安装目录 SET SVN_HOME="D:\Program Files\VisualSVNServer" REM 版本库 ...
- 350道面试题分享,拿下京东offer工资double
350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...
- csp 201809-1卖菜
问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商 ...
- 云顶之弈换中立python脚本
import pynput keyboard = pynput.keyboard.Controller() mouse = pynput.mouse.Controller() def on_relea ...