zoukankan      html  css  js  c++  java
  • 读数据思考

    最近看了下pytorch的数据读取接口,一个dataset,一个dataloader。相比tf的话,可以说抽象的好一些,但是tf的话封装集成的好一些。

    pytorch的话适合小数据集合的快速开发和实验。tf的话,更侧重工业级一点,一次调通之后,以后不需要经常变,性能的收益是比较好的。另外tf的生态好一些。一些性能优化的api都是很不错的。当然我只是粗浅的看了doc并且试用了一下,大概率fb或者其他企业级有内部用的话,有很多trick。

    pytorch的话,首先需要定一个dataset ,这个dataset(普通的dataset和迭代器的dataset)的主要作用是实现函数,来操作具体怎么读取一条数据。

    然后dataloader的话,就是具体实现batch和shuffle的作用。

    之前之前用tf的读取接口,从queue runner到 dataset,可是说用起来还是比较方便的。只要把读取的文件名称输入就行了,然后实现下解析数据的接口,可以说非常方便,没有怎么了解过读取的细节。这次看torch的读取,大概了解了读取的细节,想来两者实现上本周没有太大的区别。

    tf维护两个队列,文件列表和内存列表,一个线程读取文件内容往buf里写(并不是文件内容都读到内存里,而是一条一条读取),一个线程从buf里取数据送给gpu进行计算。shuffle里的buf_size写的就是内存的大小。tf的,prefetch主要是得到batch后,给gpu缓存的操作。保障gpu的使用率

  • 相关阅读:
    三级菜单python写法(递归写法)
    webstorm2018.1.6版本安装+破解+汉化
    sourceTree 的使用教程
    nodeppt的使用教程
    堆和栈的区别(转过无数次的文章)
    黎曼滤波在神经计算方面的应用
    深度学习笔记——PCA原理与数学推倒详解
    TCP/IP模型详解
    OSI7层模型详解
    CNN车型分类总结
  • 原文地址:https://www.cnblogs.com/dmesg/p/12718222.html
Copyright © 2011-2022 走看看