用 TensorFlow.js 在浏览器中训练神经网络

640?wx_fmt=jpeg


什么是 TensorFlow.js

        TensorFlow.js 是一个开源库,不仅可以在浏览器中运行机器学习模型,还可以训练模型。具有 GPU 加速功能,并自动支持 WebGL。可以导入已经训练好的模型,也可以在浏览器中重新训练现有的所有机器学习模型。运行 Tensorflow.js 只需要你的浏览器,而且在本地开发的代码与发送给用户的代码是相同的。

       TensorFlow.js 对未来 web 开发有着重要的影响,JS 开发者可以更容易地实现机器学习,工程师和数据科学家们可以有一种新的方法来训练算法,例如官网上 Emoji Scavenger Hunt 这样的游戏界面,让用户一边玩游戏一边将模型训练地更好。

       用 Tensorflow.js 可以做很多事情,例如 object detection in images, speech recognition, music composition,而且 不需要安装任何库,也不用一次又一次地编译这些代码。

为什么要在浏览器中运行机器学习算法

  1. 隐私:用户端的机器学习,用来训练模型的数据还有模型的使用都在用户的设备上完成,这意味着不需要把数据传送或存储在服务器上。

  2. 更广泛的使用:几乎每个电脑手机平板上都有浏览器,并且几乎每个浏览器都可以运行JS,无需下载或安装任何应用程序,在浏览器中就可以运行机器学习框架来实现更高的用户转换率,提高满意度,例如虚拟试衣间等服务。

  3. 分布式计算:每次用户使用系统时,他都是在自己的设备上运行机器学习算法,之后新的数据点将被推送到服务器来帮助改进模型,那么未来的用户就可以使用训练的更好的算法了,这样可以减少训练成本,并且持续训练模型。

应用举例:regression

  1. 可以直接从浏览器里写代码,例如 chrome 的 View > Developer > Javascript Console,

  2. 还可以在线写三个流行的在线 JS 平台:CodePen, JSFiddle, JSBin.

  3. 当然还可以在本地把代码保存为.html文件并用浏览器打开,那么先来看一下下面这段代码,可以在 codepen 中运行:https://codepen.io/pen?&editors=1011  这段代码的目的是做个回归预测,数据集为:构造符合 Y=2X-1 的几个点,那么当X 取 [-1, 0, 1, 2, 3, 4] 时,y 为 [-3, -1, 1, 3, 5, 7],

640?wx_fmt=png

  • 首先是熟悉的 js 的基础结构:

 
 

640?wx_fmt=png

  • 在 head 中,从 CDN 引用 TensorFlow.js,这样就可以使用 API 了:

  • 然后建立模型,因为 input ,output 都只有一个,所以就建立一个 single node,即:

640?wx_fmt=png

  • 接着定义 loss 为 MSE  和 optimizer 为 SGD:

 
 
  • 同时需要定义 input 的 tensor,X 和 y,以及它们的维度都是 [6, 1]:

640?wx_fmt=png

  • 然后用 fit 来训练模型,因为要等模型训练完才能预测,所以要用 await:

640?wx_fmt=png

  • 训练结束后,用 predict 进行预测,输入的是 [1, 1] 维的 值为 10 的tensor 

640?wx_fmt=png

  • 最后得到的输出为

和 tflearn 的代码比较

再来通过一个简单的例子来比较一下 Tensorflow.js 和 tflearn,

640?wx_fmt=other


往期回顾:

滴滴如何使用人工智能来欺骗司机和乘客的?

从“猜画小歌”背后的AI原理,教大家如何得高分

何必心中无码,AI让你眼见为实

党给我智慧给我胆,梯度给我努力的方向

【通俗理解】凸优化

【通俗理解】区块链

外卖机器人诞生!快递小哥会失业吗?

刚刚,有位大神用AI搞定了多位女神

你敢@微信官方,不怕它真送你一顶绿色圣诞帽?

别人都在晒18岁照片,而我却在学习~

今日头条败给了色情?AI算法不行,还是另有隐情?

【机器学习】python凭什么能被纳入教材

【机器学习】朴素贝叶斯算法分析

【机器学习】主成分(PCA)算法分析

【机器学习】非线性回归算法分析

【机器学习】线性回归算法分析

读AlphaZero论文随想

进击的TensorFlow

【通俗理解】协方差

【通俗理解】贝叶斯统计

从一个双控开关思考神经网络(下)

从一个双控开关思考神经网络(上)

640?wx_fmt=jpeg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值