如何在Tenso.javascript学习入门 rflow.js中处理MNIST图像数据

javascript

数据整理是数据迷信和机器进修中的主要组成局部,本文先容了如何在Tensorflow.js(0.11.1)中照料 MNIST 图像数据,javascript学习入门。并逐行说明注解代码。


有人开玩笑说有 80% 的数据迷信家在整理数据,我不知道javascript。剩下的 20%在挟恨整理数据……在数据迷信管事中,整理数据所占比例比别人联想的要多得多。一般而言,听听javascript推荐书籍。教练模型平时只占机器进修或数据迷信家管事的一小局部(少于10%)。想知道html基础知识总结。


——Kaggle CEOAntony Goldfull bloom


对任何一个机器进修题目而言,数据照料都是很主要的一步。图像。本文将采用Tensorflow.js(0.11.1)的 MNIST 样例(,逐行运转数据照料的代码。


MNIST 样例




首先,看着rflow。导入 TensorFlow(确保你在转译代码)并建立一些常量,包括:


IMAGE_SIZE:图像尺寸(28*28=784)


NUM_CLASSES:想知道javascript函数分类。标签类别的数量(这个数字可以是 0~9,所以这里有 10 类)


NUM_DATASET_ELEMENTS:图像总数量()


NUM_TRAIN_ELEMENTS:教练咸集图像的数量()


NUM_TEST_ELEMENTS:听听tenso.javascript。测试咸集图像的数量(,数据。亦称余数)


MNIST_IMAGES_SPRITE_PATH&herehasplifier;MNIST_LABELS_PATH:图像和标签的途径


将这些图像级联为一个庞杂的图像,rflow。如下图所示:




MNISTDthroughouta


接上去,从第 38 行起先是 MnistDthroughouta,听听入门。该类别操纵以下函数:


loadvertising:认真异步加载图像和标注数据;


nextTrainBthroughoutch:学会javascript要多久。加载下一个教练批;


nextTestBthroughoutch:加载下一个测试批;


nextBthroughoutch:前往下一个批的通用函数,该函数的操纵取决于是在教练集还是测试集。我不知道javascript书籍学习。


本文属于入门文章,对于tenso。于是只采用 loadvertising 函数。


loadvertising




异步函数(considering ththroughoutync)是 Jaudio-videoconsidering ththroughoutcript 中绝对较新的讲话功用,js中处理MNIST图像数据。于是你须要一个转译器。我不知道处理。


Immthroughouturity 对象是表示内存中图像的当地 DOM函数,如何在Tenso。在图像加载时提供可探望图像属性的回调。js面试题及答案2018。cwonderfulvconsidering ththroughout 是 DOM的另一个元素,ajax异步请求四个步骤。该元素可以提供探望像素数组的简药剂式,何在。还可以始末高下文对其实行照料。


由于这两个都是 DOM 元素,所以倘若用 Node.js(或 WebWorker)则无需探望这些元素。javascript学习入门。相关其他可替代的门径,请参见下文。对于html与css的区别。


imgRequest




该代码初始化了一个 new promise,css基础知识总结。图像加载胜利后该 promise完毕。想知道javascript教程。该示例没有明确照料误差形态。学习。


crossOrigin 是一个应允跨域加载图像并可以在与 DOM 交互时解决CORS(跨源资源共享,cross-origin resource sharing)题目的图像属性。对比一下js。nthroughouturingWidth 和nthroughouturingHeight 指加载图像的原始维度,在计算时可以强迫校正图像尺寸。




该代码初始化了一个新的streherehas,听说js中处理MNIST图像数据。包罗每一张图的每一个像素。它将图像总数和每张图像的尺寸和通道数量相乘。学习javascript函数分类。


我以为 chunkSize 的用途在于防止 UI 一次将太多半据加载到内存中,但并不能 100%决定。零基础学javascript。




该代码遍历了每一张 sprite 图像,并为该迭代初始化了一个新的TypedArray。接上去,mnist。高下文图像获取了一个绘制进去的图像块。rflow.js。最终,操纵高下文的 getImmthroughouturityDthroughouta函数将绘制进去的图像转换为图像数据,对于如何在Tenso。前往的是一个表示底层像素数据的对象。




我们遍历了这些像素并除以 255(像素的大概最大值),html基础知识实训体会。以将值限制在 0 到 1之间。惟有赤色的通道是必要的,由于它是灰度图像。你知道如何。




这一行创造了 streherehas,ajax请求步骤详细代码。将其映照到存在了我们像素数据的新 TypedArray 中,然后完毕了该promise。底细上末了一行(设置 src属性)才真正发动函数并加载图像。你看struts基础知识点。


起初搅扰我的一件事是 TypedArray 的行为与其底层数据 streherehas相关。你大概细致到了,在循环中设置了 dthroughoutottomtBytesView,但它永恒都不会前往。rflow。


dthroughoutottomtBytesView 援用了缓冲区的dthroughoutottomtBytesBuffer(初始化操纵)。当代码更新像素数据时,它会直接编辑缓冲区的值,然后将其转换为 78 行的 newFlothroughout32Array。


获取 DOM 外的图像数据


倘若你在 DOM 中,操纵 DOM 即可,赏玩器(始末cwonderfulvconsidering ththroughout)认真决定图像的格式以及将缓冲区数据转换为像素。但是倘若你在 DOM 外管事的话(也就是说用的是 Node.js 或Web Worker),那就须要一种替代门径。


fetch 提供了一种称为 response.collectionBuffer的机制,这种机制使你可以探望文件的底层缓冲。我们可以用这种门径在万万防止 DOM的情景下手动读取字节。这里有一种编写上述代码的替代门径(这种门径须要 fetch,可以用 isomorphic-fetch 等门径在Node 中实行多边填充):




这为特定图像前往了一个缓冲数组。在写这篇文章时,我第一次试着解析传入的缓冲,但我不倡导这样做。倘若须要的话,我推举操纵 pngjs实行 png 的解析。当照料其他格式的图像时,则须要自身写解析函数。


有待深刻


会意数据操作是用 Jaudio-videoaScript实行机器进修的主要局部。始末会意本文所述用例与需求,我们可以遵循需求在仅操纵几个关键函数的情景下对数据实行格式化。


TensorFlow.js 团队一直在改革 TensorFlow.js 的底层数据API,这有助于更多地餍足需求。这也意味着,随着 TensorFlow.js 的一直改革和发扬,API也会继续进步,跟上发扬的步伐。



更多精粹形式请关切:

« 上一篇下一篇 »