目前我在reader构建及读取的方式是,生成sample级的reader(),然后在训练的时候通过paddle.batch()来生产batch级reader()来训练,但是我观察到时间效率有点低。在我查看相关文档的时候《数据准备、载入及加速文档问题(动态图)》,发现有用到fluid.io.DataLoader这个接口,但是其中示例的代码好像是有问题的,首先是fluid.enable_imperative(place)这个函数现在不存在了,再者我观察到整个示例代码并没有在with fluid.dygraph.guard()模式下。我想解决的问题就是如何在动态图模式下使得数据读取的效率得到提高(相比于paddle.bacth()这种方式)。
4条答案
按热度按时间vjhs03f71#
fluid.enable_imperative(place)
修改为fluid.enable_dygraph(place)
即可,文档我们尽快更新一下~t5fffqht2#
好的,谢谢。还麻烦尽快更新一下动态图数据读取那一块文档。 | | zhangqi | | 邮箱:18252035380@163.com | Signature is customized by Netease Mail Master 在2020年06月08日 20:40,Kaipeng Deng 写道: fluid.enable_imperative(place)修改为fluid.enable_dygraph(place)即可,文档我们尽快更新一下~ — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
q0qdq0h23#
请问 DataLoader中的multi_process参数和num_workers参数 指的以多进程方式读取数据吗?
如果设置为单进程的话 如何知道单个进程中有几个线程在读数据?
另外 我设置num_workers=2 aistudio环境1.8 为啥总是报错? 而设置为0时候不报错
afdcj2ne4#
1)dataloader 在1.8 和2.0 的设计有区别,1.8 中的参数是use_multiprocess 是c++端的多线程。2.0 中的参数是num_workers,是python 端的多进程,之所以用多进程,就是因为多线程在python中由于全局锁存在,多线程是无法并行工作的
2)2.0 中单进程读数据也只有单线程在读数据
3)num_worker=2报错可能是由于共享内存不够,可以关闭这个use_share_momery试试