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

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 《智能前端技术与实践》——第 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]
相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
1612 64
计算机视觉五大技术——深度学习在图像处理中的应用
|
9月前
|
机器学习/深度学习 数据采集 自然语言处理
29_序列标注技术详解:从HMM到深度学习
序列标注(Sequence Labeling)是自然语言处理(NLP)中的一项基础任务,其目标是为序列中的每个元素分配一个标签。在NLP领域,序列标注技术广泛应用于分词、词性标注、命名实体识别、情感分析等任务。
783 0
|
11月前
|
机器学习/深度学习 存储 人工智能
深度解析大模型压缩技术:搞懂深度学习中的减枝、量化、知识蒸馏
本文系统解析深度学习模型压缩三大核心技术:剪枝、量化与知识蒸馏,详解如何实现模型缩小16倍、推理加速4倍。涵盖技术原理、工程实践与组合策略,助力AI模型高效部署至边缘设备。
2051 2
|
JavaScript 前端开发 API
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
15457 23
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1260 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1636 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
1048 0
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
835 6

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1229
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    550
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    426
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    422
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    538
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    714
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1366
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    307
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1145
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    494