i*******D 发帖数: 993 | 1 比如普通的xeon cpu的机器。用来从800x600的图片中把特定物体边界识别出来。可以
用caffe搭个cnn出来吧。那么在这种应用下,是不是一种选择就是cpu+ram来算,即便
是双xeon的cpu+32gb的ram算起来也不如一个1050的显卡和4g显存算起来快吧?用gpu来
算再用ram的话产生的overhead就非常非常大了吧?那么在这种情况下主要的瓶颈是内
存还是是cpu?我感觉内存决定了多少层和多深?cpu或者gpu决定了运行起来多快,尤
其是训练时候?二者都是随节点数的平方增长的?我是外行哈,就是有点想买个电脑来
以后干点这些工作,有谁做过类似的给点装机指导哈~~提前谢过 |
|
A***l 发帖数: 461 | 2 上tensorflow吧,比caffe好用多了。 |
|
T*******0 发帖数: 14 | 3 主要瓶颈是显存。GPU在cnn的速度优势不是cpu可比的。在计算的时候,数据会存储在
gpu的显存中。当model过大无法完全存储在显存中的时候,显卡就需要把部分model存
储在内存中,然后需要不断的从内存中掉入、存储model。这时候,cpu和ram的I/O速度
远跟不上gpu的速度,gpu就需要闲置等待I/O结束后再继续计算。
做cv方向的deep learning,cpu/ram不是很重要,好显卡+大显存的用处会大得多得多。
另外,像楼上说的,你可以考虑tensorflow。比caffe强大、灵活。 |
|
|
i*******D 发帖数: 993 | 5 比如普通的xeon cpu的机器。用来从800x600的图片中把特定物体边界识别出来。可以
用caffe搭个cnn出来吧。那么在这种应用下,是不是一种选择就是cpu+ram来算,即便
是双xeon的cpu+32gb的ram算起来也不如一个1050的显卡和4g显存算起来快吧?用gpu来
算再用ram的话产生的overhead就非常非常大了吧?那么在这种情况下主要的瓶颈是内
存还是是cpu?我感觉内存决定了多少层和多深?cpu或者gpu决定了运行起来多快,尤
其是训练时候?二者都是随节点数的平方增长的?我是外行哈,就是有点想买个电脑来
以后干点这些工作,有谁做过类似的给点装机指导哈~~提前谢过 |
|
|
w***g 发帖数: 5958 | 7 图片用caffe啊,1000个category,找了个public model。OpenCV也用了。
对于图片,识别出来的内容是value,分数是score。score只有相对值有用。
猫猫狗狗的图片可能更灵一点。对于特定的应用,最好专门train model。
,
" |
|
|
w***g 发帖数: 5958 | 9 G这种人很多,但我很怀疑这些人在G是不是还能接着创新。
就说Jia的caffe2,我估计也没多大前景。
开源软件是一个众人捡柴火焰高的事情,作者说要推倒重来,
大家未必能认。caffe是6796个星,mxnet是842个星,caffe2是279个星。
从这个就能看出来。
至少从开源软件上来说,G放出来的都是些不痛不痒的东西,
没有啥真让人耳目一新的。少数几个比较好的,也都是收购的小公司。
真正牛B的, 就看GFS, bigtable, mapreduce这些,
paper都是从G出来的,但现在有G啥事吗?
我在中部村子里坐井观天,欢迎G家的出来反驳。
要说机群环境下大规模数据处理平台,真有创新性的
我觉得要属Grappa。将来至少能干掉GraphLab。 |
|
S****8 发帖数: 401 | 10 cuda_convnet2 跟 caffe 折腾一下都不算太麻烦哈 |
|
N*****m 发帖数: 42603 | 11 caffe author投靠狗狗了,还搞得下去吗? |
|
w***g 发帖数: 5958 | 12 这个领域现在很乱。但是caffe目前的model中
颇有几个非常好用的。目前的代码稳定性也不错。
我有自己的fork,做了一些改动,已经好久没同步了。
除了稍微慢点没啥问题。
搞不搞得下去其实无所谓,到时候挑最好的
轮子用就可以。 |
|
w***g 发帖数: 5958 | 13 一般都是上GPU的,CPU这块什么人关注。我因为要集成到我的系统里,
distribute一个到处跑的binary,不能依赖GPU。所以我的prediction
这一步用的是专门编译的纯CPU版本。我profile过,大部分时间都
费在了convolution上。我以前自己写过neural network,所以这块
比较清楚。如果不用FFT,就用土法,最好是先把图像按sliding
window摊开成一个大矩阵,然后用一个gemm乘法一步解决。
caffe是每个sliding window分别拷出来调用gemm。因为每个
sliding window尺寸很小,其实BLAS是发挥不出威力的。
如果优化得好,主流GPU比主流CPU快不了10倍的。
不过已经有基于FFT的convolution了,所以我说的土法的优化
也就不值得做了。坐等FFT版本的出来。 |
|
S****8 发帖数: 401 | 14 恩,多谢哈, 我也是身边没k40这种GPU所以想折腾下CPU的效率
你是说其实performance还是差在没能利用mkl或者atlas这种blas库上面是吧,
回头我试试, blas/lapack这块有很多c++ template library 挺高效的用起来也方便
, 看看能不能搞到 caffe里面去, 比如FLENS |
|
w***g 发帖数: 5958 | 15 mxnet应该是目前最好的实现了吧。
说实话神经网络最啰嗦的是调网络结构,就是对着输一遍
都看得眼花。caffe的model直接下下来就能用,这个太有
吸引力了。 |
|
l*******m 发帖数: 1096 | 16 caffe用blas,如果FLENS有blas的接口,改改编译设置可能就不远了 |
|
S****8 发帖数: 401 | 17 cuda_convnet2 跟 caffe 折腾一下都不算太麻烦哈 |
|
N*****m 发帖数: 42603 | 18 caffe author投靠狗狗了,还搞得下去吗? |
|
w***g 发帖数: 5958 | 19 这个领域现在很乱。但是caffe目前的model中
颇有几个非常好用的。目前的代码稳定性也不错。
我有自己的fork,做了一些改动,已经好久没同步了。
除了稍微慢点没啥问题。
搞不搞得下去其实无所谓,到时候挑最好的
轮子用就可以。 |
|
w***g 发帖数: 5958 | 20 一般都是上GPU的,CPU这块什么人关注。我因为要集成到我的系统里,
distribute一个到处跑的binary,不能依赖GPU。所以我的prediction
这一步用的是专门编译的纯CPU版本。我profile过,大部分时间都
费在了convolution上。我以前自己写过neural network,所以这块
比较清楚。如果不用FFT,就用土法,最好是先把图像按sliding
window摊开成一个大矩阵,然后用一个gemm乘法一步解决。
caffe是每个sliding window分别拷出来调用gemm。因为每个
sliding window尺寸很小,其实BLAS是发挥不出威力的。
如果优化得好,主流GPU比主流CPU快不了10倍的。
不过已经有基于FFT的convolution了,所以我说的土法的优化
也就不值得做了。坐等FFT版本的出来。 |
|
S****8 发帖数: 401 | 21 恩,多谢哈, 我也是身边没k40这种GPU所以想折腾下CPU的效率
你是说其实performance还是差在没能利用mkl或者atlas这种blas库上面是吧,
回头我试试, blas/lapack这块有很多c++ template library 挺高效的用起来也方便
, 看看能不能搞到 caffe里面去, 比如FLENS |
|
w***g 发帖数: 5958 | 22 mxnet应该是目前最好的实现了吧。
说实话神经网络最啰嗦的是调网络结构,就是对着输一遍
都看得眼花。caffe的model直接下下来就能用,这个太有
吸引力了。 |
|
l*******m 发帖数: 1096 | 23 caffe用blas,如果FLENS有blas的接口,改改编译设置可能就不远了 |
|
w***g 发帖数: 5958 | 24 终于打通了任督二脉,集成了所有的CNN库。
https://github.com/aaalgo/xnn.git
#include
cv::Mat image = cv::imread("xxx");
C++下用CNN预测简化为下面三行代码。
unique_ptr model(xnn::Model::create(model_dir, 1));
vector ft;
model->apply(image, &ft);
如果是分类问题, ft的长度就是类型个数。如果是
segmentation,ft就是输出图像的大小。
根据model_dir下的内容自动检测是caffe, mxnet还
是python (theano, tensorflow以及别的各种python库,
只要输入输出是numpy.array就行)。python库载入的时候慢点,
但是如果用batch mode跑,基本上没有overhead。
当然训练模型还是需要各显神通了。(很多模型可以直接从网上
下载。) |
|
|
|
w***g 发帖数: 5958 | 27 我是直接用别人publish的model的。除了lua不行, C++和python的几个轮子我已经都
集成到统一接口了。不管是拿什么轮子训练出来的,load进来用法一样。
没有一个deep pocket的后台,只能搞糙快猛。最糙快猛的无非就是直接用别人的
model。Caffe的model zoo是我的最爱。 |
|
N*****m 发帖数: 42603 | 28 是啊
感觉tensorflow越来越多人用,不知道是不是应该从caffe跳过去 |
|
w***g 发帖数: 5958 | 29 你随便找个轮子学, theano, tensorflow, caffe都行,背后都是同一套东西。一通百
通。 |
|
w***g 发帖数: 5958 | 30 deep learning的轮子我也做过的. https://github.com/aaalgo/argos
这个东西12年alex那个东西breakthrough后我就跟进了.
问题是轮子要推广比做轮子本身还难.
像caffe这种, 你得用这个轮子出好多paper, 参加各种比赛拿第一.
自己得到处去开会宣讲, 还得有大牛老板到处给宣传.
这些工作量远远超过做轮子本身.
对于我们这种学术界外面的, 要宣传轮子最好的办法就是自己先用
这个轮子做个killer app. 问题是我们要是能写killer app, 谁还
花心思去做轮子?
不管做什么, 最后要能赚到钱都很难. |
|
w***g 发帖数: 5958 | 31 尺寸不一样没事. forward之前系统会自动resize各种内存.
Caffe和tensorflow都支持. 你看眼FCN就知道. |
|
s*****l 发帖数: 7106 | 32 如果你的图不是太特殊 你根本不要train几层layer
你用caffe 找个用imagenet train好的google net或者resnet
前面都fix 直接train最后一层 说不定已经可以了
不行就从后面多activate几层 |
|
c*******9 发帖数: 9032 | 33 tensorflow在一起。
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1) |
|
L****8 发帖数: 3938 | 34 conv2d(x_image, W_conv1) 如果返回的是值
那就是分开的两层
有没有这种 conv_relu(X, W) ? |
|
z***t 发帖数: 10817 | 35 【 以下文字转载自 Stock 讨论区 】
发信人: zhangfei (Leo Kamis), 信区: Stock
标 题: Re: 谁给讲讲NVDA和INTC的关系
发信站: BBS 未名空间站 (Fri Nov 11 12:53:28 2016, 美东)
1. Intel still has better Silicon process. NVidia depends on TSMC on
manufacturing.
2. Intel missed and behind Nvidia AI several years. Right now is doing catch
up.
* buy Nervana @about 400m.
* buy Movidius.
* change Xeon Phi roadmap to include deep learning specific instruction.
* buy Altera @16.7B, trying co-processing concept.
* All the other AI investment throug... 阅读全帖 |
|
|
f******2 发帖数: 2455 | 37 看到了一个在caffe上的算法模块,参数什么的都调好了。问题和problem scope和我想
的东西一摸一样,拿过来测试也非常好。
容易port到另外一个平台,例如mxnet吗?
: 很多人就是改改现有的例子,粒度大的反而容易上手。
|
|
w***g 发帖数: 5958 | 38 你说的这些都是问题。但向我们打酱油的哪有时间和精力去研究这种东西,
直接拿人家的model一套就能出东西,那才是王道。至今我所有的精力都
花在deep learning之前(图片数据库)和deep learning之后
(post processing, 搭服务, 做demo)上面。至于tensorflow/
caffe在干嘛,对我来说都是black box。我最近把lua/torch的整合问题
也破了。对于我来说,deep learning框架就是个black box plug-in。
等人家好的model release出来,管他是tensorflow, mxnet还是torch
我直接一套就行。
. |
|
|
w***g 发帖数: 5958 | 40 FCN的输入不需要确定大小,至少我用过caffe和tensorflow都支持自动调整大小。
只要保证每个batch大小一致就行。我都是batch size = 1。
比如
X = tf.placeholder(tf.float32, shape=(None, None, None, 3), name="images")
Y = tf.placeholder(tf.float32, shape=(None, None, None, 1), name="labels")
只有channel数是定的,batch size和图片大小都是每个iteration动态调整的。
你的问题不是CNN抓global信息。FCN本身就是一个大的convolution,就是local的。
你的问题是一般network的receptive field都> 64,也就是说大于你的input size。
这样你train出来的model都会expect有白边。如果这个model直接apply到全图上,
中间那些位置没有白边,就会和training example有systematic的差别。
你把test imag... 阅读全帖 |
|
L****8 发帖数: 3938 | 41 CNN的一个卷积层 有滤波器若干 F1 F2 F3,...
一般来说 这些滤波器大小都一样 比如 3x3
请问如何 能定义不同大小 比如 F1 3x3 F2 5x5
用tensorflow 或者caffe 谢谢 |
|
|
k*****u 发帖数: 1688 | 43 想图省事,直接pull了这个dockerfile
然后出来好几个问题
apt-get的pandas不能用
现在好的办法是不是 docker + (anaconda tf theano torch caffe keras)
为什么要鄙视conda呢?最起码conda安装了立刻就可以用啊 |
|
w*****r 发帖数: 197 | 44 我怎么觉得如果你有两块GPU,batch改为2,训练速度可以快将近一倍。caffe和mxnet应
该都可以在PCIE上完成parameter同步,tensorflow不了解。 |
|
w***g 发帖数: 5958 | 45 intel在kaggle上sponsor了一个比赛,提供免费的机器。
测了一下caffe, 256线程的xeon phi上,速度差不多是GTX 1060的1/40。
事实上比我core i7 2600k上的性能也好不了多少。
是我哪儿搞错了吗?我本来还想试试水然后来告诉没有GPU的小朋友的,
结果发现竟然是一个笑话。 |
|
w***g 发帖数: 5958 | 46 好像用的人少。底下都是cudnn,用tf应该没错。现在鸡毛框架层出不穷好烦。
update:
打算开始学pytorch了。这两天开始train imagenet,发现确实跟小数据不一样。
死慢死慢死慢死慢的。据说pytorch速度不错。
caffe应该是死了。theano应该也快了。 |
|
k*****u 发帖数: 1688 | 47 copy的mxnet作者的blog:
对于一个优秀的深度学习系统,或者更广来说优秀的科学计算系统,最重要的是编程接
口的设计。他们都采用将一个领域特定语言(domain specific language)嵌入到一个主
语言中。例如numpy将矩阵运算嵌入到python中。这类嵌入一般分为两种,其中一种嵌
入的较浅,其中每个语句都按原来的意思执行,且通常采用命令式编程(imperative
programming),其中numpy和Torch就是属于这种。而另一种则用一种深的嵌入方式,提
供一整套针对具体应用的迷你语言。这一种通常使用声明式语言(declarative
programing),既用户只需要声明要做什么,而具体执行则由系统完成。这类系统包括
Caffe,theano和刚公布的TensorFlow。
目前现有的系统大部分都采用上两种编程模式的一种。与它们不同的是,MXNet尝试将
两种模式无缝的结合起来。在命令式编程上MXNet提供张量运算,而声明式编程中MXNet
支持符号表达式。用户可以自由的混合它们来快速实现自己的想法。例如我们可以用声
明式编程来描述神经网络,并利用... 阅读全帖 |
|
s********k 发帖数: 6180 | 48 用TF,caffe啥的做出来的模型太巨大不适合embedding,有没有业界做这方面的研究或
者公司? |
|
w***g 发帖数: 5958 | 49 我随便说的。应该是一个2D的manifold,并且在深度维上没有重叠。
这样其实就是一个1 channel的图片。用红外可以避免不同光照情况下
可见光照片结果不稳定。
从demo看延时确实比较小。目前普通手机的算力,用caffe/tf做到一秒
钟一个小图片没啥问题。如果对着应用场景特定优化,我觉得做到0.2秒
是可行的。CNET那个视频说project出去30K个IR点。如果照片先register
这个点阵,那么CNN输入差不多就是180x180的样子。
牛x的其实还是硬件。 |
|