首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于TensorFlow.js在浏览器上构建深度学习应用

节选自《深度学习TensorFlow.js:浏览器实战篇》第八章,已获授权。 在前面的章节,我们讨论了各种JavaScript概念和运行在浏览器上的各种深度学习框架。...TensorFlow.js实现手势识别 在本小节,我们使用TensorFlow.js在webcam上实现玩石头剪刀布游戏。在进行详细的解释之前,我们先去Github页面看看它是如何运行的。...对于学习少量数据集,我们在浏览器上可以进行实时模型训练。...这个常规的模式会确保,在更多的张量排队等待GPU处理时,浏览器得到合适的渲染。如果没有该模式浏览器会挂住,渲染web页面不可用。...这两个函数包括在浏览器上运行石头剪刀布游戏的有效代码。它们处理游戏的流程,监控TensorFlow.js迭代过程中设置的中间变量,检查用户当前在摄像头做的哪种手势,并相应的更新UI。

1.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 Windows上写 Python 代码的最佳组合!

    在 Windows 上怎样做 Python 开发?是像大神那样使用纯文本编辑器,还是用更加完善的 IDE?到底是用自带的命令行工具,还是需要装新的 Terminal?...然而与 Linux 或 macOS 不同,在 Windows 上做开发总会遇到很多挑战,不论是文件编码、环境控制还是项目编译,开发过程中总会有一些神奇的收获。...因此如果我们在 Windows 上做 Python 开发,命令行工具就可以采用 MS Terminal,它能解决很大一部分的包安装、环境控制等问题。...当然,在使用 VS Code 时,你可能会发现其他有用的扩展。请在评论中分享你的发现和设置! 单击活动栏(Activity Bar)上的「扩展」图标可以访问和安装新扩展和主题。...测试框架设置完成并显示测试后,你可以单击状态栏(Status Bar)上的 Run Tests 并从命令面板中选择一个 option 来运行所有测试: 通过在 VS Code 中打开测试文件,单击状态栏上的

    5.2K20

    页面结构化在Android上的尝试

    下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...解耦,绝对的。不然抽这么多接口干嘛 2. 模块职责明确,层次清晰 3. Presenter可复用(在日迹的需求中,首页和4Tab公用一个Presnter) 4. 方便单元测试 5....三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...根据页面结构,划分出一个个独立维护模块,这就是页面结构化。 ##  页面结构化(Lego)与组件化的区别 1. 组件处于通用性,是不带业务逻辑的。而页面结构化是带业务逻辑。 2.

    1.3K60

    页面结构化在 Android 上的尝试

    下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...页面被划分问一个个区域的模块,有自身的逻辑和规划。有人说,这不就是一个个组件嘛。然后“页面结构化”并不是指组件。...根据页面结构,划分出一个个独立维护模块,这就是页面结构化。 页面结构化(Lego)与组件化的区别 组件处于通用性,是不带业务逻辑的。而页面结构化是带业务逻辑。

    1.1K50

    JS 在浏览器端的运行机制

    先来看几个问题 1、JS为什么是单线程? JS的单线程,与他的用途有关。作为浏览器脚本语言,Js的主要用途就是与用户互动,以及操作DOM。这决定了它只能是单线程。...试想一下,假设现在有process1、process2两个线程,process1在某个DOM节点上添加了内容,process2删除了这个节点,那这时浏览器应该以哪个线程为准呢?...这个现象对于用户而言,就是 “页面卡死”,用户体验极差。所以,JS需要异步任务。...几个知识点 执行栈 所有同步任务都在主线程上执行,形成一个执行栈,执行栈是存储函数调用的栈结构,遵循先进后出的原则 任务队列 只要异步任务有了运行结果,就在 “任务队列” 中放置一个事件 任务类型 任务类型可分为...也就是说,如果主线程执行了10秒,那这个任务就会在10+3秒后执行 JS 在浏览器端的运行机制 - 小鑫の随笔:https://xiaoxina.cc/p/4b4d.html

    69630

    如何在浏览器上跑深度学习模型?并且一行JS代码都不用写

    OpenGL / WebGL 允许我们能够在未安装 CUDA 的环境中使用 GPU。目前这是在浏览器中使用 GPU 的唯一方式。...在浏览器上运行神经网络模型已经不是一件多么新鲜的事了。Andrej Karpathy 提出的ConvNetJS,及 Google 的 DeepLearning.JS 都能够实现这种想法。...还有一部分的 glue code 编译在 LLVM 上,用于设置并启动 OpenCL 内核。然后我们在本地的机器上运行该模型。...设备的代码被编译到 WebGL 平台上,我们可以在Firefox 浏览器上运行该模型。 从以上得到的结果我们可以看到,TVM OpenGL 后端与 OpenCL 有相似的性能。...这可能是由于 Emscripten 生成了 asm.js,使得模型在 Firefox 浏览器中的运行效率得到了显著优化。 这个更新迈出了将深度学习模型自动编译到浏览器的第一步。

    1.7K50

    cocos2d-js 各浏览器上的表现

    如果不行,就只能在canvas上做小块的区域,减少每帧的变化。 1、PC的Chrome(webgl) 首先看看官方的performance test。 粒子系统达到最大值3000也毫无压力。 ?...普通的小人转啊转,1000个以内不成问题,超过1000性能开始下滑。 ? 再自己写一个单图多sprite不断旋转的测试。左侧是没有开批处理的情况,1600个小人就开始撑不住了。...这个测试在PC上没太多意义,因为可能底层自动做了批处理。这个测试主要是为了后边手机上运行。...2、小米1的微信内嵌浏览器(跟google浏览器效率类似,应该是内嵌了google浏览器) 本来想在手机上跑官方的测试,但发现死活打不开。算了。。。...测试程序尺寸是720*1280,由于尺寸太大,这个也是造成运行不流畅的原因。每帧都要重绘,是有点吃力。 微信浏览器跟谷歌浏览器类似,操作也是类似的(双击放大)。

    2K30

    JS在浏览器和Node下是如何工作的?

    浏览器中的情况 假设你在浏览器中打开一个页面,其使用了一个单独的 JS 执行线程。该线程负责处理所有事,如滚动页面、打印页面上的某些东西、监听 DOM 事件(比如点击)等等。...在每条记录(entry)上,栈的状态也称做 栈帧(stack frame)。若是哪个栈帧上的函数调用发生了错误,JS 会将其代码执行快照打印成 堆栈追踪(stack trace)。...但如果浏览器不得不用同一个 JS 引擎执行以上这些特性,则用户体验将不堪设想。因为即便只是用户滚动一下页面,也会在后台触发许多事情。...在 Node.js 中会怎样 当同样的事情发生在 Node.js 中时,就得做的更多些了 -- 因为 node 所承诺的能力也更强。在浏览器中,我们被能在后台做什么掣肘。...,这二者虽然还是在单一线程上运行,而独立的 worker 线程则承担了提供异步 I/O 操作的功能。

    2.1K10

    一个请求的组成、静态页面和动态页面、HTML, CSS和JS、浏览器渲染的过程

    静态页面和动态页面 静态页面 纯粹的HTML文件, 简单地说当前的页面文件就存储在服务端, 我们请求的静态页面实际上就是请求对方服务器中的文件. 通过返回不同的HTML文件来完成不同请求的显示效果....动态页面和静态页面的区分绝不是指页面上的动画效果 最常见的就是各大企业网站 动态页面 动态页面是指除了HTML以外, 通过ajax在不直接刷新页面的前提下, 完成了和服务端的数据交互....javascript和xml的缩写 在不直接刷新页面的前提下, 完成了和服务端的数据交互....并通过javascript回调函数完成对页面内容的修改, ajax和服务端交互的数据格式通常为json. json js对象标记法, 用来表示对象关系 js中的对象: {a: 1, b: null}...浏览器渲染的过程 接收到HTML文件后开始构建DOM(Doucment Object Model)树. CSS来计算DOM树各个节点的坐标, 大小等CSS属性, 开始布局.

    1.6K10

    教程 | 用摄像头和Tensorflow.js在浏览器上实现目标检测

    选自Medium 作者:Mike Shi 机器之心编译 参与:Pedro、刘晓坤 Tensorflow.js 是一个能在你的浏览器里运行的全新深度学习库。...首先,YOLOv2 只在功能强大的桌面级设备上以 40 帧每秒的速度运行,而这个条件大多数用户都达不到。同时,YOLOv2 的模型文件是 Tiny YOLO 的五倍大,这将会导致网络卡死。...将数字转换为边框以及数字 我不准备深入探讨这个话题,因为对 YOLO 的后处理可以拿来单独写几篇博客了。相反,我会专注于我在将 Python 版本转换到 Javascript 时遇到的难题。 1....不幸的是,在 Tensorflow.js 中,如果你在 tf.slice 上尝试这样操作,它只会默默地失败。 3....现在我们知道如何通过静态图像或网络摄像头抓取数据,可以将大多数 ML 模型从 Python 转换为 Tensorflow.js 并在浏览器中运行它们。

    2.3K41

    在浏览器上,我们的隐私都是如何被泄漏的?

    本文就将介绍第三方脚本如何利用浏览器的内置登录管理器(也称为密码管理器),在没有用户授权的情况下检索和泄露用户信息的。...上图显示了这一过程:首先,用户填写页面上的登录表单,并要求浏览器保存登录信息(跟踪脚本不在登录页面上显示)。然后,用户访问含有第三方跟踪脚本的同一网站上的另一个页面。...在我们的测试中,Chrome 不会自动填充密码字段,除非用户点击或触摸页面。所以,对于密码管理器中保存的用户名(通常是电子邮箱地址)和密码,第三方脚本可以创建表单并自动填充。...这个攻击并不是最新产生的,类似攻击已经在许多浏览器报告和学术论文中讨论了至少 11 年,以前的讨论大部分都集中在当前功能的安全影响以及自动填充功能的安全可用性权衡上。...浏览器厂商的困境。很明显,同源政策对于今天网络上的信任关系是不适用的,虽然各种安全防御措施会有一定的帮助,但浏览器厂商还是会面临一个两难的问题:他们是否应该防御这个类似的漏洞?

    1.7K100

    WebIDE:在浏览器中写代码的时代即将来临?

    去年 12 月,在号称云计算风向标的 AWS re:Invent 大会上,AWS 宣布推出 Cloud9,这是用于编写、运行和调试代码的基于云的 IDE,它可以直接运行在浏览器中,相对于本地的 IDE...,如 Git、Docker、Node.js、Python 等; 利用 Web 终端,你可以在浏览器进行npm install等操作; 一个完整的 IDE 所包含的大部分功能,包括智能提示、代码自动补全等...支持实时的代码调试功能(发布时仅限 Node.js 可用); 支持协作编码,需要对方也拥有 AWS 账户; 包括对 AWS Lambda 的内建支持,这意味着你可以在 Cloud9 里新建、管理、保存新的...客户端,运行于浏览器的 IDE,这个可以参考开源项目 Ace Editor,AWS Cloud9 就是在这个项目基础上开发的。类似项目有 Theia 等。 运行容器。编译和运行用户代码的容器。...2017 年 4 月,AWS 发布了持续交付工具链 CodeStar,它将开发者在运维上消耗的精力降到了最低,开发者几乎只用关心写代码就好了。

    2.3K30
    领券