当前位置:网站首页>MindSpore:model.train中的dataset_sink_mode该如何理解?
MindSpore:model.train中的dataset_sink_mode该如何理解?
2022-08-04 09:03:00 【小乐快乐】
问题描述:
【功能模块】
看教程的时候,model.train中的dataset_sink_mode我无论是直接从英文的角度理解还是机翻了之后理解都不是特别懂。
【操作步骤&问题现象】
我在新手教程中看到这么一段话,不知道是否意味着如果我用的是GPU,那么应该把参数设置为TRUE呢?
2、
我在自己实际实验的时候,发现如果把数据下沉模式设置为False,打印间隔为125,batch_size设为32,总数据量为60000(也就是一共可以分成1875份),那么就会像下面这样输出结果:
可是在其他都不变的情况下,如果我把数据下沉模式设置为TRUE,那么就只会打印step为1875的情况,前面的都没有打印。
我想问一下,造成这个不同的原因是什么? 看来我果然没有把数据下沉模式理解的很透彻。
据我所知,用MindSpore训练的时候,遵循这样的流程:
首先60000数据集要拿出一部分先放到内存空间中(比如自己指定开辟了容纳1K数据量的内存空间),然后将这1k数据shuffle之后,再逐次取32个数据(batch_size=32)像流水一样源源不断放到网络里进行训练。
我怀疑是不是如果把数据下沉模式设置为TRUE的话,那么就会让其中的某个环节被跳过呢?
总之,能帮我解释一下数据下沉模式这个参数到底是什么意思吗?
解决方案:
dataset_sink_mode=True时,数据处理(dataset加载及其处理)会和网络计算构成Pipeline方式,即:数据处理在逐步处理数据时,处理完一个batch的数据,会把数据放到一个队列里,这个队列用于缓存已经处理好的数据,然后网络计算从这个队列里面取数据用于训练,那么此时数据处理与网络计算就Pipeline起来了,整个训练耗时就是数据处理 / 网络计算耗时最长的那个。
dataset_sink_mode=False时,数据处理(dataset加载及处理)会和网络计算构成串行的过程,即:数据处理在处理完一个batch后,把这个batch的数据传递给网络用于计算,在计算完成后,数据处理再处理下一个batch,然后把这个新的batch数据传递给网络用于计算,如此的循环往复,直到训练完。该方法的总耗时是数据处理的耗时 + 网络计算的耗时 = 训练总耗时。
你对于数据处理的理解稍微有点偏差,我这么解释下:
数据处理一般分加载、处理、batch 三个阶段,在加载阶段一般会获取整个数据集的meta信息,基于此meta信息可以进行数据集的shuffle(整个数据集的),也可做数据的分片,用于分布式训练,然后基于这个meta信息一个一个样本的从存储上加载至内存中,样本加载至内存后,会在处理操作(map操作)中一步一步的处理,最后传递至batch操作,组织成batch size大小。
对于整个数据集的shuffle一般在数据集加载接口里面就可以使用,shuffle=True。
参考:mindspore.dataset.MindDataset — MindSpore master documentation
你说的会建立一个空间大小用于shuffle数据,是我们的 dataset.shuffle(buffer_size=N)逻辑。
参考:mindspore.dataset.MindDataset — MindSpore master documentation 中的
shuffle
(buffer_size)函数。
边栏推荐
猜你喜欢
Explanation of spark operator
关于#sql#的问题:后面换了一个数据库里面的数据就不能跑了
思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
Could you please talk about how the website is accessed?[Interview questions in the web field]
DeLighT:深度和轻量化的Transformer
2022年化工自动化控制仪表考试模拟100题及模拟考试
94后字节P7晒出工资单:狠补了这个,真不错...
B站回应HR称“核心用户都是Loser”、求职者是“白嫖党”:已被劝退
grafana手册之可视化配置图表table
Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters
随机推荐
抬升市场投资情绪,若羽臣是否还需“自身硬”?
技术实现 | 图像检索及其在淘宝的应用
About Oracle RAC 11g rebuilding the disk group
2022年化工自动化控制仪表考试模拟100题及模拟考试
Interview at 14:00 in the afternoon, I came out at 14:08 with my head down, asking too much...
2022年制冷与空调设备运行操作特种作业证考试题库及模拟考试
蜜芽CEO刘楠:垂直电商黄金时代已落幕 坚定转型品牌之路
Get the number of cpu cores
去掉js代码文件所有注释
思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
记录十条工作中便利的API小技巧
Oracle怎么获取当前库或者同一台服务器上某几个库的数据总行数?
tcp连接的细节
外包干了四年,秋招终于上岸了
How many assertion methods are commonly used in JMeter?
【论文笔记】Delving into the Estimation Shift of Batch Normalization in a Network
Fiddler(二)-手机抓包502错误解决方法
【论文笔记】Dynamic Convolution: Attention over Convolution Kernels
BFM模型和Landmarks可视化
继承和static关键字