由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - deep learning 的时候要把所有数据都读到内存里?
相关主题
想上手deep learning的看过来C++ 自定义function object 问题,完全看不懂。
Help: How to display data from excel in C# windows formauto 很爽
C++ namespace 弱问请教C++程序中的Maze().exitMaze();
哪位大侠有如下书籍的电子版,或者下载地址,多谢C++ copy elision和move的区别?
java如何保护传入的参数不被函数改动?C语言或者C++里面两排图像间的距离如何定义
学python的必要性有多大?问个Python的问题
请教有关java spring MVC的问题再来推广下picpac
如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?问个spring的问题
相关话题的讨论汇总
话题: true话题: type话题: imgaug话题: shuffle话题: picpac
进入Programming版参与讨论
1 (共1页)
s********f
发帖数: 3924
1
如果数据是图像,没这么大内存怎么办?
w***g
发帖数: 5958
2
从SSD随机读。我写picpac就是专门为了对付这种情况。
我现在正在大改版,主要是用C++重写imgaug那套东西。你要不要试试?
config = {"db": "train.spoly.db", #事先导入到存在SSD上的db文件。
"loop": True,
"shuffle": True,
"annotate": True,
"channels": 1,
"dtype": "float32",
"transforms": [
{"type": "augment.flip", "horizontal": True, "vertical":
True},
{"type": "augment.rotate", "min":-180, "max":180},
{"type": "augment.scale", "min":0.7, "max":1.2},
{"type": "clip", "round": 4},
#{"type": "colorspace", "code": "BGR2HSV", "mul0": 1.0/255
},
{"type": "augment.add", "range":20},
#{"type": "colorspace", "code": "HSV2BGR", "mul1": 255.0},
{"type": "rasterize"}, # annotation是polygons
# 这个操作把polygons变成masks
# 我正在写做mask-RCNN的anchor和minimask操作。
# transforms是可以嵌套的,imgaug的sometimes和someof
# 都可以实现。
]
}
tr_stream = picpac.ImageStream(config)
for _, images, masks in tr_stream:
mm, _ = sess.run([metrics, train_op], feed_dict={X: images, Y:
masks})
Keras也很容易。tr_stream本身就是个generator,fit_generator应该就行。
pytorch也是这个套路。
在 silentwolf (沉默的狼) 的大作中提到: 】
w***g
发帖数: 5958
3
搞deeplearning的同学看到了请帮我挑挑刺,包括哪些用词可以改的
建议也好。我想把这个东西做的精致一点。
transforms这个结构从python传入会转成json,然后在C++中构造
对应的类实现。扩展的话也需要写C++。

【在 w***g 的大作中提到】
: 从SSD随机读。我写picpac就是专门为了对付这种情况。
: 我现在正在大改版,主要是用C++重写imgaug那套东西。你要不要试试?
: config = {"db": "train.spoly.db", #事先导入到存在SSD上的db文件。
: "loop": True,
: "shuffle": True,
: "annotate": True,
: "channels": 1,
: "dtype": "float32",
: "transforms": [
: {"type": "augment.flip", "horizontal": True, "vertical":

m****o
发帖数: 182
4
用minibatch做在线学习。

【在 s********f 的大作中提到】
: 如果数据是图像,没这么大内存怎么办?
m****o
发帖数: 182
5
这个和tensorflow的dataset api相比效率如何?

【在 w***g 的大作中提到】
: 从SSD随机读。我写picpac就是专门为了对付这种情况。
: 我现在正在大改版,主要是用C++重写imgaug那套东西。你要不要试试?
: config = {"db": "train.spoly.db", #事先导入到存在SSD上的db文件。
: "loop": True,
: "shuffle": True,
: "annotate": True,
: "channels": 1,
: "dtype": "float32",
: "transforms": [
: {"type": "augment.flip", "horizontal": True, "vertical":

w***g
发帖数: 5958
6
没有benchmark过。我这个是一个数据库。tfrecord好像不支持random access。
我当初是想做一个独立于各个框架的数据接入方案。
我自己感觉,效率应该不会比tf低。

【在 m****o 的大作中提到】
: 这个和tensorflow的dataset api相比效率如何?
g*******u
发帖数: 3948
7
dataset api不就是干这个的吗?
m****o
发帖数: 182
8
dataset api可以shuffle数据源

【在 w***g 的大作中提到】
: 没有benchmark过。我这个是一个数据库。tfrecord好像不支持random access。
: 我当初是想做一个独立于各个框架的数据接入方案。
: 我自己感觉,效率应该不会比tf低。

g*******u
发帖数: 3948
9
不是建议组织数据的时候自己先shuffle, 训练的时候在shuffle影响时间?

【在 m****o 的大作中提到】
: dataset api可以shuffle数据源
w***g
发帖数: 5958
10
世事变化太快。我做第一个版本的这个软件时还没有tensorflow。
后来又出来了nervana neon,后来nervana neon又完蛋了。
然后mxnet又一直不温不火,然后出来caffe2半死不活了很长时间。
有一阵lua的torch也很火,我还做了lua的binding。
然后pytorch火了。将来说不定大家嫌TF和pytorch太臃肿了,
又会出来别的什么小清新,或者别的语言。
我感觉最初的目标其实没错,就是到最后其实dataset为王。
我的目标是为dataset服务。只是单兵作战战斗力有限,很多功能
没法实现,搞来搞去功能还不如dataset api多。

【在 g*******u 的大作中提到】
: dataset api不就是干这个的吗?
相关主题
学python的必要性有多大?C++ 自定义function object 问题,完全看不懂。
请教有关java spring MVC的问题auto 很爽
如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?请教C++程序中的Maze().exitMaze();
进入Programming版参与讨论
w***g
发帖数: 5958
11
如果你有100G数据,想在每个epoch reshuffle,估计就独我一家可以支持了。
虽然其实reshuffle了也是然并卵。但他们那么建议是因为软件设计无法支持
reshuffle。Design decision不一样,代码没什么困难的。

【在 g*******u 的大作中提到】
: 不是建议组织数据的时候自己先shuffle, 训练的时候在shuffle影响时间?
g*******u
发帖数: 3948
12
我靠 人家g 好几十人 甚至好几百人 , 你一个人要单挑人家啊
单挑可以,群殴肯定不行啊

【在 w***g 的大作中提到】
: 世事变化太快。我做第一个版本的这个软件时还没有tensorflow。
: 后来又出来了nervana neon,后来nervana neon又完蛋了。
: 然后mxnet又一直不温不火,然后出来caffe2半死不活了很长时间。
: 有一阵lua的torch也很火,我还做了lua的binding。
: 然后pytorch火了。将来说不定大家嫌TF和pytorch太臃肿了,
: 又会出来别的什么小清新,或者别的语言。
: 我感觉最初的目标其实没错,就是到最后其实dataset为王。
: 我的目标是为dataset服务。只是单兵作战战斗力有限,很多功能
: 没法实现,搞来搞去功能还不如dataset api多。

m****o
发帖数: 182
13
https://www.tensorflow.org/api_docs/python/tf/data/TextLineDataset#shuffle
有一种情况是数据量太大,那样只能shuffle index,在训练的时候用shuffled index
random access rows。我想tensorflow可以直接给省了这一步?

【在 g*******u 的大作中提到】
: 不是建议组织数据的时候自己先shuffle, 训练的时候在shuffle影响时间?
w***g
发帖数: 5958
14
shuffle index是可以的。但是数据就只能保存成单个文件。
这样其实也没啥问题。性能上不会有本质损失。

index

【在 m****o 的大作中提到】
: https://www.tensorflow.org/api_docs/python/tf/data/TextLineDataset#shuffle
: 有一种情况是数据量太大,那样只能shuffle index,在训练的时候用shuffled index
: random access rows。我想tensorflow可以直接给省了这一步?

w*****r
发帖数: 197
15
我看过picpac,除你自己,其他人要想上手改,不太容易
1, 建议把对不同framework的支持的粘合代码放到分别的文件夹下。比如我估计只care
TF和caffe,以后也许会有caffe2
2, 把图像变换函数做成Lib,和picpac分开,picpac只负责streaming,shuffle,和不同
框架对接。你就算写再多的imgaug功能,也不可能适应所以行业用户的每一个需求。
3, clean code,多写点注释,降低用户的learning curves


: 搞deeplearning的同学看到了请帮我挑挑刺,包括哪些用词可以改的

: 建议也好。我想把这个东西做的精致一点。

: transforms这个结构从python传入会转成json,然后在C 中构造

: 对应的类实现。扩展的话也需要写C 。



【在 w***g 的大作中提到】
: shuffle index是可以的。但是数据就只能保存成单个文件。
: 这样其实也没啥问题。性能上不会有本质损失。
:
: index

m****o
发帖数: 182
16
对C/C++一窍不通,没法comment你的库:)但是如果是多个文件的话,我想应该可以先
对文件名序列本身做shuffle,然后随机顺序读取文件以后,再对文件rows做random
shuffleing。如果不担心文件本身顺序是否要保持,Linux底下有一个命令shuf,可以
直接in place shuffle rows。

【在 w***g 的大作中提到】
: shuffle index是可以的。但是数据就只能保存成单个文件。
: 这样其实也没啥问题。性能上不会有本质损失。
:
: index

w***g
发帖数: 5958
17
streaming和augmentation没法分开最大的原因是python的多线程支持不好。
我没法从python接收一个imgaug实现的回调函数然后放到16个线程里面跑。
我不知道tf是怎么实现的。估计得用多进程共享内存。

care

【在 w*****r 的大作中提到】
: 我看过picpac,除你自己,其他人要想上手改,不太容易
: 1, 建议把对不同framework的支持的粘合代码放到分别的文件夹下。比如我估计只care
: TF和caffe,以后也许会有caffe2
: 2, 把图像变换函数做成Lib,和picpac分开,picpac只负责streaming,shuffle,和不同
: 框架对接。你就算写再多的imgaug功能,也不可能适应所以行业用户的每一个需求。
: 3, clean code,多写点注释,降低用户的learning curves
:
:
: 搞deeplearning的同学看到了请帮我挑挑刺,包括哪些用词可以改的
:
: 建议也好。我想把这个东西做的精致一点。
:
: transforms这个结构从python传入会转成json,然后在C 中构造

l*******m
发帖数: 1096
18
现在的tf.dataset彻底和python没管了

【在 w***g 的大作中提到】
: streaming和augmentation没法分开最大的原因是python的多线程支持不好。
: 我没法从python接收一个imgaug实现的回调函数然后放到16个线程里面跑。
: 我不知道tf是怎么实现的。估计得用多进程共享内存。
:
: care

w*****r
发帖数: 197
19
你是要把imgaug集成到picpac,还是自己要用c++写一个imgaug?
如果是前者,我觉得不如让用户从picpac拿到数据后,再串联imgaug做处理
1 (共1页)
进入Programming版参与讨论
相关主题
问个spring的问题java如何保护传入的参数不被函数改动?
bash中怎样进行变量名递归替换?学python的必要性有多大?
[合集] 请教一个calloc的问题请教有关java spring MVC的问题
简单问题,可我不会。:( 急用啊!如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?
想上手deep learning的看过来C++ 自定义function object 问题,完全看不懂。
Help: How to display data from excel in C# windows formauto 很爽
C++ namespace 弱问请教C++程序中的Maze().exitMaze();
哪位大侠有如下书籍的电子版,或者下载地址,多谢C++ copy elision和move的区别?
相关话题的讨论汇总
话题: true话题: type话题: imgaug话题: shuffle话题: picpac