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 进来就可以。 搞机器学习的应该很有钱,所以不用考虑内存不足的问题 关注一波楼主,对这个很感兴趣,只是现在没时间没设备,搞不了这个 |