【学术】Juggernaut:网络浏览器中的神经网络

Juggernau是一个用Rust编写的实验性神经网络。它是一个使用梯度下降来拟合模型并训练网络的前馈神经网络。Juggernaut使我们能够构建网络应用程序,以在网络浏览器的语境中训练和评估神经网络模型。这是在没有任何服务器或后端的情况下完成的,并且没有使用Javascript来训练模型。

  • Juggernaut地址:https://juggernaut.rs/
  • Rust地址:https://www.rust-lang.org/

Juggernaut的开发者友好的API使交互变得很容易。可以将数据集从CSV文件传递给Juggernaut,或者使用编程API将文件添加到模型中,然后请求框架进行训练。

Juggernaut实现了大部分的激活函数以及一些不同的成本函数,包括Cross Entropy。

Juggernaut有一个用React和D3.js编写的演示页面,解释了训练期间的网络,权值和损失。

演示页面地址:https://juggernaut.rs/demo/

演示

演示页面使用户可以在开始训练会话之前定义一些选项。 这些选项是:

  • 数据集
  • 学习率
  • epoch的数量(迭代)

为了使演示页面更直观,更易于使用,在页面上有几个预定义的数据集,该数据集可以从CSV文件中加载和显示数据点。每个数据集有3个类,橙色,蓝色和绿色以及2个特征X和Y。

选择数据集并定义选项后,你可以点击页面上的“训练”按钮开始训练。 点击这个按钮会产生一个新的线程(工作线程),并将数据集和参数传递给创建的线程。

在训练期间,你可以看到网络的epoch的数量,损失和权值。工作线程与浏览器的主线程进行通信,并将结果发送回渲染线程以可视化每一步的训练。

在应用程序中的层数是预定义的。我们有一个输入层,两个隐藏层和一个输出层。 对于隐藏层,我们使用ReLU激活函数,输出层使用具有交叉熵成本函数的Softmax。

编译Rust到Web程序集

Juggernaut的演示页面使用Web程序集和HTML5工作线程,以在网络浏览器的语境中产生一个新线程,并在工作线程和浏览器的渲染线程(主线程)之间进行通信以训练和评估模型。

下面是编译Rust到Web程序集的过程:

Web程序集地址:http://webassembly.org/ 编译Rust到Web程序集地址:https://www.slideshare.net/RReverser/rust-javascript

Juggernau不使用任何类型的Javascript代码来训练和评估模型。但是,在大多数网络浏览器没有任何后端服务器的情况下,Juggernaut仍然有可能运行在现代网络浏览器上,包括在Android和iOS上的IE 11和可移植的web浏览器,支持web程序集。

重要的是,演示页面使用单独的线程来训练和评估一个模型,并且不会阻塞Web浏览器的主线程或渲染线程。因此,在训练期间,你仍然可以与页面的UI元素进行交互,或者可以保持训练会话运行一段时间,直到从框架接收到准确评估为止。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-11-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

python3百度指数抓取

分类:python 作者:TTyb文章发表于 2016-11-12 百度指数抓取,再用图像识别得到指数前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关...

27310
来自专栏程序生活

TensorFlow教程(十二) 随机数实例

tf.random_uniform([4,4], minval=-10,maxval=10,dtype=tf.float32)))返回4*4的矩阵,产生于-10...

741
来自专栏利炳根的专栏

学习笔记TF066 : TensorFlow 移动端应用,iOS、Android系统实践

移动端应用原理。移动端、嵌入式设备应用深度学习方式,一模型运行在云端服务器,向服务器发送请求,接收服务器响应;二在本地运行模型,PC训练模型,放到移动端预测。向...

7750
来自专栏木子昭的博客

教你精确调整gif图片尺寸

按照以上方法, 我们可以对任何gif的尺寸进行精确调整, 对于这类实用小技巧,可以点赞记录一下, 以后或许会用到~

893
来自专栏专知

【干货】快速上手图像识别:用TensorFlow API实现图像分类实例

【导读】1月17日,Arduino社区的编辑SAGAR SHARMA发布一篇基于TensorFlow API的图像识别实例教程。作者通过TensorFlow A...

7147
来自专栏人工智能LeadAI

TensorFlow分布式全套(原理,部署,实例)

TF的实现分为了单机实现和分布式实现,在分布式实现中,需要实现的是对client,master,worker process不在同一台机器上时的支持。数据量很大...

8546
来自专栏AI研习社

一个应用于物体识别的迁移学习工具链

迁移学习指的是,通过对预训练模型的参数进行微调,将训练好的模型应用到相似或者只有细微差异的不同任务中。通过这个方法,我们可以基于一些性能顶尖的深度学习模型得到别...

1102
来自专栏机器之心

资源 | TensorFlow分布式计算机制解读:以数据并行为重

选自clindatsci 作者:Neil Tenenholtz 机器之心编译 参与:Jane W、黄小天 Tensorflow 是一个为数值计算(最常见的是训...

3807
来自专栏君赏技术博客

【已解决】mas_updateConstraints更新约束引起的约束冲突

79DF33F7-1626-4FFD-9B01-1B115617F764

1582
来自专栏瓜大三哥

图像分割(四)

图像分割(四) 之基于FPGA的局部自适应分割 子模块设计 窗口缓存模块win_buf 本模块不做任何算法上的处理,只是负责将当前输入像素的二维窗口元素缓存并组...

2258

扫码关注云+社区