《智能前端技术与实践》——第 2 章 前端开发基础 ——2.6 深度学习中的 JavaScript——2.6.1 JavaScript数据类型

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
简介: 《智能前端技术与实践》——第 2 章 前端开发基础 ——2.6 深度学习中的 JavaScript——2.6.1 JavaScript数据类型

2.6 深度学习中的 JavaScript


本节将介绍深度学习领域所涉及的前端知识,包括深度学习中的 JavaScript 数据类型和 JavaScript 异步编程。


2.6.1 JavaScript 数据类型


深度学习中基本的数据结构是张量,高效的数据结构对任何一个深度学习项目都非常重要。 在 C/C++中,我们可以通过数组来高效地存储一些集合数据并实现快速访问;在 Python 中, 我们可以通过 NumPy 中的 NDArray 对象来实现此功能。NDArray 对象是一系列同类型数据的 集合,用于存放同类型元素的多维数组。


深度学习中支持的 JavaScript 数据类型是 TypedArray,它是一种介于原始数组与 NDArray 之间的数据结构。在现代浏览器中有 11 种类型的 TypedArray,如表 2-8 所示。


image.png

image.png


接下来,介绍 ArrayBuffer 及访问 ArrayBuffer 的两种方法——TypedArray 和 DataView。


1.ArrayBuffer


ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区,它是一个字节数 组。由于 ArrayBuffer 仅仅是内存上的二进制缓冲区,因此它并不提供任何操作数据(读取数 据、写入数据)的方法,即我们并不能直接操作 ArrayBuffer 的内容,而要通过 TypedArray 或 DataView 对象来操作。它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写 缓冲区中的内容,如代码清单 2-22 所示。


代码清单 2-22


constbuffer=newArrayBuffer(4)
console.log(buffer.byteLength) //4

2.TypedArray


TypedArray(类型化数组)对象描述了一个底层的二进制数据缓冲区的类数组视图。 TypedArray 定义了如何访问底层的 ArrayBuffer,实际上用于存储数据的数据结构是 ArrayBuffer, 没有名为 TypedArray 的全局属性,也没有名为 TypedArray 的构造函数。示例代码如代码 清单 2-23 所示。


代码清单 2-23


consttypedArray1=newInt8Array(8);
typedArray1[0] =128;
consttypedArray2=newInt8Array(typedArray1);
typedArray2[1] =20;
console.log(typedArray1);
// 期望输出: Int8Array [-128, 0, 0, 0, 0, 0, 0, 0]console.log(typedArray2);
// 期望输出: Int8Array [-128, 20, 0, 0, 0, 0, 0, 0]

由于 Int8Array 中单个元素值的范围是−128~127,因此当指定 typedArray1 数组的第一个元素 为 128 时,该值超出范围,于是会从另一边界重新开始循环,即值为−128。


3.DataView


DataView 是一个可以从二进制 ArrayBuffer 对象中读写多种数值类型的底层接口,在使用 它时,无须考虑不同平台的字节序问题,如代码清单 2-24 所示。


代码清单 2-24

varbuffer=newArrayBuffer(4)
newDataView(buffer).setInt16(0,42,true)
console.log(newUint8Array(buffer))

我们首先在代码清单 2-24 中创建了 4 字节大小的 ArrayBuffer,然后将已经创建的 ArrayBuffer 作为数据源并创建 DataView 对象,并通过 setInt16()方法创建起始位置为 0、值为 42 的 16 位 整数。我们还指定 setInt16()方法的参数 littleEndian 为 true,即采用小端字节序(低位字节放在 内存的低地址端,高位字节放在内存的高地址端)。该参数的默认值为 false,即默认采用大端 字节序。上述代码的运行结果如下。


Uint8Array [42, 0, 0, 0]
相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
11天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
25天前
|
设计模式 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用JavaScript,打造智能交互体验!
【10月更文挑战第30天】前端开发领域充满了无限可能与创意,JavaScript作为核心语言,凭借强大的功能和灵活性,成为打造智能交互体验的重要工具。本文介绍前端大牛如何利用JavaScript实现平滑滚动、复杂动画、实时数据更新和智能表单验证等效果,展示了JavaScript的多样性和强大能力。
42 4
|
23天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
23天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
29 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
28天前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
40 1
|
29天前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
25 1
|
1月前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
30 1
|
2月前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
26 3
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
164 0

热门文章

最新文章