w***g 发帖数: 5958 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: wdong (万事休), 信区: Programming
标 题: 再来推广下picpac
发信站: BBS 未名空间站 (Wed Jan 31 23:03:02 2018, 美东)
写了几个简化版的训练程序,以及nmist, cifar10的现成数据库用于玩耍。
imagenet 155G的数据我也downsize后用mozjpeg拼死压缩到了12G,就是
训练得用SSD。
https://github.com/aaalgo/picpac-demos
铁打的营盘流水的兵,数据把住了,框架随便换。 TF, mxnet, pytorch
都能支持。Lua/torch的binding也做了,不过估计也没人care了。
没玩过deep learning的同学,靠我这几个样例基本上也可以入门了。
CPU上train这两个dataset没啥问题。 |
|
w***g 发帖数: 5958 | 2 写了几个简化版的训练程序,以及nmist, cifar10的现成数据库用于玩耍。
imagenet 155G的数据我也downsize后用mozjpeg拼死压缩到了12G,就是
训练得用SSD。
https://github.com/aaalgo/picpac-demos
铁打的营盘流水的兵,数据把住了,框架随便换。 TF, mxnet, pytorch
都能支持。Lua/torch的binding也做了,不过估计也没人care了。
没玩过deep learning的同学,靠我这几个样例基本上也可以入门了。
CPU上train这两个dataset没啥问题。 |
|
w*****r 发帖数: 197 | 3 我昨天还真花了点时间调研了一下现在github上做data augmentation的工具
感觉Data augmentation越复杂,picpac的优势越明显。如果如果针对data
augmentation有个开放接口,就好了。
举个例子,我有一个人脸数据集,除了做简单的几何变形,我还想在pca space里对每
个sample的坐标做pertubation,如果便捷植入? |
|
w***g 发帖数: 5958 | 4 我设计得太generic了。
当时还有caffe和torch,所以觉得所有功能必须C++。
现在看来只剩python了,真要支持plugin的话,plugin也得是python写才行。
我自己的做法是不同类型的数据继承出一个新的项目。
目前还有picpac-wave用来做音频, picpac3d用来做3维CT数据。 |
|
g****t 发帖数: 31659 | 5 你可能需要琢磨下目标用户的人设?
然后软件和自己的开发时间,适当照顾主力用户需求。
有个帕累托原理,或者80-20原理。
80%用户是20%功能带来的。
但是微博这么杂乱的东西为何这两年
还死复生,我一直没看明白。所以我说的也不一定对。
另外在商言商,你要不去hack news发帖?第一行就说是
Imagnet之后的一大突破?
: 我设计得太generic了。
: 当时还有caffe和torch,所以觉得所有功能必须C 。
: 现在看来只剩python了,真要支持plugin的话,plugin也得是python写才
行。
: 我自己的做法是不同类型的数据继承出一个新的项目。
: 目前还有picpac-wave用来做音频, picpac3d用来做3维CT数据。
|
|
|
|
w***g 发帖数: 5958 | 8 写setup.py吧。下面是我最近写的, require里似乎是可以加版本号的,比如cv2>=1.x.
x
setup (name = 'picpac',
version = '0.1',
url = 'https://github.com/aaalgo/picpac',
author = 'Wei Dong',
author_email = '[email protected]/* */',
license = 'BSD',
description = 'This is a demo package',
ext_modules = [picpac],
py_modules = ['picpac.mxnet', 'picpac.neon'],
requires = ["cv2"],
) |
|
|
w***g 发帖数: 5958 | 10 99%属于正常水平。
机器学习的结果,如果有谁claim 100%,就是unprofessional,直接可以滚蛋了。
现在有很多>99%的结果,我不是很信。
因为nmist已经在那里好几年了,大家说是cross-validation,
其实都是对着validate的结果调的hyper parameter。
很多deep learning框架都拿nmist做toy example。
我刚刚用lasagne跑了下,两分钟之内达到99%。
这个因改没太多over-fitting,因为CNN架构就是随便一个简单的,
没有专门为nmist优化的迹象。
估计多循环几次还能上去。不过就像guvest说的
1和7, 0和9 这个很难全弄对。就是validation准确率上去,
我其实也不信。就像我们用一个仪器测东西有额定精度,
dataset做evaluation也有精度。我觉得nmist这个dataset
的精度应该在99%一下。用这个dataset测出>99%的精度
没有意义。
要看dataset的同学我已经导好了
http://www.aaalgo.com/picpac/datasets/nm... 阅读全帖 |
|
|
w*****r 发帖数: 197 | 12 我看过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 发帖数: 5958 | 14 我就没学过,后来stackoverflow上学的。不过我承认我上parallel architecture
研究生课的时候一路都在打瞌睡。我曾经有跟楼主差不多的需要,纠结过一番
memory barrier,最后还是老老实实用了std::condition_variable。代码在这里
https://github.com/aaalgo/picpac/blob/master/picpac.h
省心,扩展容易,代码干净。
其实这种情况出现过多次,每次都觉得这么简单的情况不需要杀鸡用牛刀,
最后挖下去都发现水太深,然后用牛刀了事。
我印象中,操统课会讲IPC objects, mutex, sophomore这种。这些都是普世价值,
性能肯定有代价,但是一般没有坑。 |
|
w***g 发帖数: 5958 | 15 从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... 阅读全帖 |
|
w*****r 发帖数: 197 | 16 你是要把imgaug集成到picpac,还是自己要用c++写一个imgaug?
如果是前者,我觉得不如让用户从picpac拿到数据后,再串联imgaug做处理 |
|
w***g 发帖数: 5958 | 17 没有pretrained network。你已经装好了tensorflow就不用docker了。
用下面的命令装上picpac streaming API就可以train了。
pip install -i https://testpypi.python.org/pypi picpac
我那个train-slim.py里用的是slim预定义的一些network architecture。
keras比直接用tensorflow有啥优势吗?我感觉keras就是个二手贩子,可能
跟不上tensorflow最新的feature。不过你倒是提醒了我,我得加几个
keras和theano的example.
tensorflow |
|
w***g 发帖数: 5958 | 18 看了下spec,我去觉得明显的缺陷是没有大量的SSD。
这两天搞比赛,500G的SSD用了好几个了。
不过SSD应该是我picpac的独特用法,如果用
tfrecord可能不需要。 |
|
|
w***g 发帖数: 5958 | 20 pytorch目前不适合deploy,而且userbase不大。
做东西卖钱可能还是得tensorflow。
有空我其实宁可看电视剧。实在是生存压力大不学不行。
这种情况下就凸显我picpac的优势了。如果当时用tfrecord,
接pytorch就不方便了。
这两天我用TF基本实现了colorful colorization。
正在着手做neural enhance。有没事干的同学欢迎一起研究。
有些东西自己一个个试实在太慢。 |
|
w***g 发帖数: 5958 | 21 没想到caffe2又死灰复燃了,还搞出来个.ai的网站!
在大公司干就是好。要有哪个冤大头支持我花时间好好做做picpac就好了。
安圭拉这地方以后光靠卖.ai域名好了,都不用工作了。我估计马上也得给他们捐钱了。 |
|
|
w***g 发帖数: 5958 | 23 哈哈我也正打算做这种应用。最近做了个picpac-wave, 可以做你第一种应用,不过估
计要改一下才行。第二种我目前也搞不定。上multi resolutuon吧。你确信一星期前的
数据还需要那么高的采样率吗?我觉得用神经网络,越老的数据时间粒度应该越粗。
:我有两个应用 time series 数据
:1 就是 固定长度的数据 我组织好用来做训练 。 比如每条1分钟之类的。 数据可能
上千万。每条数据倒不大。 |
|
g*******u 发帖数: 3948 | 24 我第一个应用吧。其实现在就是非常简单的随便存也行 因为数据量真不大。
只是想看看有没有更好玩的, 试试。直接存 太丑了有点。
只是我本身之前也不做这东西, 也不知道用什么工具啊,什么框架之类的。
第二个现在暂时没想法,感觉上量了也不太好弄。这个量有点大, 一个数据就60G 可
能每天有上千个这样的数据。 想想头大,先算了,不搞了。
问题不一样要求不一样吧我这个时间序列问题 一星期前和后没区别。所以不存在时间
阶段不重要的问题,只存在哪些数据时噪声 哪些不是有区别。
采样率 我的数据从1000hz到200hz都有 但是我觉得都下采样到100 或者200hz 也没有
区别
所以我会下采样到200吧先。
另外这个训练其实现在没找到更好的方法。 其实就是单独一小段数据做分类 然后连接
来 我觉得实际可能也行的。 当然没有什么lstm 之类的那么优美。
大牛觉得 facenet这个模型如何。 我打算用这个破模型做分类先。
我现在就是先用小段数据做分类,长时间的预测就把每小段的连接起来。
好处就是 我觉得会比较直接
不好地方就是没有太利用到时间上的信息, 模型很笨。
不过先这样开始, 先做个ba... 阅读全帖 |
|
|
x**********i 发帖数: 658 | 26 谢大牛指点
这两天在玩image net,您的名字赫然在列,膜拜
:写了几个简化版的训练程序,以及nmist, cifar10的现成数据库用于玩耍。
:imagenet 155G的数据我也downsize后用mozjpeg拼死压缩到了12G,就是 |
|
O***b 发帖数: 104 | 27 这个太赞了,生产力的源头啊。原来那个版本我就玩过 |
|
x****u 发帖数: 44466 | 28 微博是靠着职业编辑无底线制造假新闻
比如我一个男同学最近忙于工作,微博却天天转发高中生追星迷妹的话题,这就是官方
盗号 |
|
x****u 发帖数: 44466 | 29 训练用ssd是什么意思?为什么东西小了反而要ssd? |
|
L****8 发帖数: 3938 | 30 net = slim.batch_norm(slim.conv2d(net, 32, 3, 1))
net = slim.max_pool2d(net, 2, 2)
你把relu都给去掉了? |
|
|
w***g 发帖数: 5958 | 32 ssd是为了random seek。HDD没法seek。
ssd random I/O的速度基本上能保证GPU转满。 |
|
|
|
w***g 发帖数: 5958 | 35 Raid1更快,多个盘镜像提速。走pcie的m2盘比ssd又快不少,就是堆不了太多还占pcie
。估计cpu做augmentation会先到瓶颈。
:如果用ssd再组个raid0,没意义么?
: |
|
x****u 发帖数: 44466 | 36 SSD和大RAM当cache怎么选择啊?
如果在云vm上操作,RAM不用不收钱,但SSD的存储费也不低啊 |
|
x****u 发帖数: 44466 | 37 深度学习模型的训练方法应该单独成为一个研究领域,研究在超参数固定优化算法固定
的时候怎么训练最终结果最好
数据无限且全部精确标记这个前提在地球上大部分时候都不成立啊。。。 |
|
w***g 发帖数: 5958 | 38 云就是这个讨厌。什么都要拆散了算计。
可以平时存在HDD,训练前拷到SSD。
本来可以cache一半,另一半从SSD读,50% hit rate。
不过这么做也没太大意义了。SSD反正也够快。 |
|
x****u 发帖数: 44466 | 39 想起另一个问题:有没有想过图像预处理上GPU?
如果图较多较大的话,用CPU算也是不经济的吧 |
|
|
w***g 发帖数: 5958 | 41 最近看到了imgaug,信心崩塌了。
之前做的时候还有torch,还指望R,matlab啥的也可能都要上DL。
现在基本上尘埃落定DL训练非python不可了。
下一步就是把augmentation从picpac中刨掉了。
剩下的C++代码都是IO intensive,其实用python写也不会太慢。
得想点有意思的东西做做才行。 |
|
|