0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基本的“Hello World”示例,通过该实例开启我们的全新旅程

Tensorflowers 来源:未知 作者:李倩 2018-07-24 11:30 次阅读

使用 TensorFlow.js,不仅可以在浏览器中运行机器学习模型来执行推理,还可以训练它们。在本教程中,将向您展示一个基本的 “Hello World” 示例,通过该实例开启我们的全新旅程。

让我们从一个最简单的网页开始:

完成后,需要做的第一件事是添加对 TensorFlow.js 的引用,以便我们可以在浏览器环境中使用 TensorFlow API。为方便起见,可以从 CDN 上获取 JS 文件:

在写这篇文章时使用的 TensorFlow.js 版本是 0.11.2。如果想获取最新版本,我们可以从 GitHub 查看。

现在我们已经成功加载了 TensorFlow.js,让我们用它做一些有趣的事情吧!

现在有一条公式为 Y = 2X-1 的直线。并提供你一组点,如(-1,-3),(0,-1),(1,1),(2,3),(3,5)和(4,7)。虽然通过公式我们可以得出给定 X 的 Y 值,我们是否可以通过机械学习模型推导出 Y 值呢?

首先,我们可以创建一个简单的神经网络来进行推理。由于只有 1 个输入值和 1 个输出值,因此它可以是单节点。在 JavaScript 中,我们可以创建一个 tf.sequential,并添加图层定义。代码示例如下:

const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));

为了完成模型定义,我们需要执行编译,并指定损失类型和优化器。我们将选择最基本的损失类型 - meanSquaredError,同时优化器使用标准的

Stochastic Gradient Descent:

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]);

为了训练模型,我们使用 fit 方法。为此,我们传递一组 X 和 Y 值,以及 epochs(循环数据)。请注意,这是异步(async/await)的,因此所有这些代码都需要在异步函数中:

await model.fit(xs, ys, {epochs: 500});

一旦准备就绪,模型就会被训练,我们就可以基于 X 值预测 Y。例如,如果我们想要找出 X = 10的 Y 值并将其写在 Web 页面上的

中,代码如下所示:

document.getElementById('output_field').innerText = model.predict(tf.tensor2d([10], [1, 1]));

请注意,输入是包含值 10 的 1x1 的张量。

结果如下所示:

等等,你可能会问 —— 为什么不是 19?它非常接近,但它不是 19!这是因为该算法从未被赋予公式 —— 它只是根据给出的少量数据进行学习。有了更多的相关数据进行训练,ML 模型就会提供更高的准确性。

为了方便起见,完整代码如下所示:

这就是在浏览器环境中使用 TensorFlow.js 创建一个非常简单的机械学习模型所需要的一切。从这里开始,我们将进入崭新的世界!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4759

    浏览量

    100477
  • 浏览器
    +关注

    关注

    1

    文章

    1011

    浏览量

    35254
  • 机器学习
    +关注

    关注

    66

    文章

    8369

    浏览量

    132365

原文标题:快速入门 TensorFlow.js

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【标准系统编写“Hello World”程序】 (基于RK3568开发板)

    编写“Hello World”程序 下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 前提条件 已参考[创
    的头像 发表于 04-24 17:32 689次阅读
    鸿蒙OpenHarmony【标准系统编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于RK3568开发板)

    微雪Arduino系列教程五:Hello World

    就是大名鼎鼎的Hello world程序,简短的两个单词敲开了C语言的大门,从此我们走进0,1的世界。C语言Hello World
    发表于 04-27 19:51

    Arduino Hello World实验

    `先来练习一个不需要其他辅助元件,只需要一块Arduino 和一根下载线的简单实验,让我们的Arduino 说出“Hello World!”,这是一个让Arduino和PC 机通信的实验,这也是一个
    发表于 08-06 09:06

    如何下载一个简单的Hello World示例

    昨天收到了评估板,我正在尝试下载一个简单的Hello World示例。快速启动说明中说,板将作为一个USB大容量存储设备或闪存驱动器出现,但我没有看到它在Windows磁盘管理,在设
    发表于 05-11 10:08

    在Arduino上创建一个Hello World程序

    我们将以在我们的Arduino上创建一个“Hello World”程序来开始我们的rosserial探索之旅。
    发表于 07-07 11:01

    Android开发之“hello World”的实现

    按照惯例,同时也是为了更好地引导读者进入精彩的Android世界,我们接下来要实现一个简单的“hello World”例子。
    发表于 08-24 11:20 5553次阅读
    Android开发之“<b class='flag-5'>hello</b> <b class='flag-5'>World</b>”的实现

    NB3000_Hello_World

    NB3000 Hello World,好东西,喜欢的朋友可以下载来学习。
    发表于 02-18 16:38 0次下载

    Hello_World.Constraint

    Hello World,好东西,喜欢的朋友可以下载来学习。
    发表于 02-22 15:52 0次下载

    MICROCHIP MINUTES 4 - HELLO WORLD

    欢迎观看MICROCHIP MINUTES之MPLAB® X IDE系列短片。在本视频中,我们将编译HELLO WORLD应用程序。本视频使用PICDEM™ Curiosity开发板及开发板上的PIC16F1619单片机。
    的头像 发表于 06-07 05:46 2866次阅读

    ZYNQ嵌入式系统-Hello World 实验

    Hello World!”是各种编程语言中最简单,同时也是最经典的入门实验。因此,我们将串口打印“Hello World”作为 ZYNQ
    发表于 10-20 17:35 12次下载
    ZYNQ嵌入式系统-<b class='flag-5'>Hello</b> <b class='flag-5'>World</b> 实验

    基于Nios 的 hello world

    基于Nios || 的 hello world一、Qsys二、Nios ||介绍三、利用Niso ||实现hello world(一)硬件设计(二)软件设计(三)下载硬件和软件一、Qs
    发表于 11-30 17:36 9次下载
    基于Nios  的 <b class='flag-5'>hello</b> <b class='flag-5'>world</b>

    HELLO WORLD!

    HELLO WORLD
    发表于 12-03 16:21 8次下载
    <b class='flag-5'>HELLO</b> <b class='flag-5'>WORLD</b>!

    STM32开发入门(二)——Hello World

    STM32开发入门(二)——Hello World
    发表于 12-07 18:51 11次下载
    STM32开发入门(二)——<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>

    Zynq上使用Vitis的双ARM Hello World

    电子发烧友网站提供《Zynq上使用Vitis的双ARM Hello World.zip》资料免费下载
    发表于 12-14 10:15 1次下载
    Zynq上使用Vitis的双ARM <b class='flag-5'>Hello</b> <b class='flag-5'>World</b>

    RA-RTT体验RT-Thead超级简单的hello world!

    在这篇帖子上,我们增加自己的代码,实现串口输出hello world等功能
    的头像 发表于 10-12 14:36 535次阅读
    RA-RTT体验RT-Thead超级简单的<b class='flag-5'>hello</b> <b class='flag-5'>world</b>!