![]() | 1 chenminghit OP ![]() HDF5 怎么样? google 到了这个。 |
![]() | 2 aaronzjw 2017-06-30 17:33:55 +08:00 via Android 了解下 hadoop? |
![]() | 3 chenminghit OP @aaronzjw hadoop 稍微了解一点,这个学习成本太高了,我应该不需要。 |
4 0ZXYDDu796nVCFxq 2017-06-30 18:56:11 +08:00 via iPhone 二进制应该是最快的,如果设计良好。 |
![]() | 5 aaronzjw 2017-06-30 18:56:18 +08:00 via Android @chenminghit 不懂啊,没遇到过这么大的文件读取。 能不能压缩一下 |
![]() | 6 aaronzjw 2017-06-30 18:56:57 +08:00 via Android @chenminghit 很多小文件,应该压缩不了多少。。。 |
7 AX5N 2017-06-30 19:14:23 +08:00 重点是数量有多少,得看是瓶颈在 i/o 还是在 python。 如果在 i/o 你就提前合并成一个文件(举个例子,例如 iso 文件),然后每次读取一定的大小到内存就可以了。 如果数量太大太大的话,python 光是调用函数消耗就特别大,纯 python 我也不知道有什么办法。你可以试试 for 一个千万位的数字,然后再在循环里进行一次乘法操作,慢到你想吐血(1s 左右的时长)。 |
8 comzyh 2017-06-30 19:21:47 +08:00 via Android HDF5 是我见过最好的 其他的可以考虑 pickle, protobuf |
![]() | 9 ruoyu0088 2017-07-01 07:36:39 +08:00 用 h5py 读写 HDF5。 |
![]() | 10 chenminghit OP @AX5N 文件数量大概是 3000*2000 这么多,每个文件大概 30k 这么大。我需要先用 python 预处理一遍文件,把我需要的内容提取出来,以便 tensorflow 调用。这个过程肯定要删掉很多数据,并且做一些归一化。预处理这个过程需要处理多长时间都无所谓,因为只需处理一遍,可以慢慢处理。主要是 tensorflow 调用那个过程要快 看了楼上各位的回复,我觉得我就去研究一下 HDF5 吧。谢谢各位。 |
11 zhmin 2017-07-01 14:48:53 +08:00 via iPhone hdfs 不适合寸小文件 |
![]() | 12 chenminghit OP @zhmin 没事,我应该可以将它们拼起来,拼成大文件 |
![]() | 13 chenminghit OP @zhmin sorry,看成了 hdf5 |
14 hsyu53 2017-07-01 18:27:32 +08:00 via iPad 可以试试 netcdf4,built on hdf5 |
![]() | 15 chenminghit OP @hsyu53 谢谢。我学习一下 |
![]() | 16 ecloud 2017-07-02 02:52:22 +08:00 Berkley DB |
![]() | 17 fiht 2017-07-02 11:25:37 +08:00 我感觉没有什么问题啊。 就是读取六百万个文件然后处理之后再保存下来然后丢给 TensorFlow 去处理。 你讲处理六百万个文件速度慢一点没关系因为是一次性处理的 那 TensorFlow 那边速度快不快得看机器配置啊 (我没实际用过 TensorFlow 你把六百万个文件挨个读取之后保存成一个 pkl 文件,然后下次要使用的时候直接 load 进来就可以。 搞机器学习的应该很有钱,所以不用考虑内存不足的问题 关注一波楼主,对这个很感兴趣,只是现在没时间没设备,搞不了这个 |