精华内容
下载资源
问答
  • (文末招聘论文讲师)说起国内的AI算法大赛平台,你首先会想到哪一个?我猜你第一反应会是:阿里云天池——国内第一人工智能竞赛平台。天池的比赛打的多了,但天池的论文复现课程你体验过吗?11月...

    (文末招聘论文讲师)

    说起国内的AI算法大赛平台,你首先会想到哪一个?

    我猜你第一反应会是:阿里云天池——国内第一人工智能竞赛平台。

    天池的比赛打的多了,但天池的论文复现课程你体验过吗?11月23日,深度之眼联合阿里云天池推出人工智能Paper体验课,带你3天复现CV&NLP领域的经典顶会论文

    以前自己读论文,总会遇到很多问题:

    不知道从哪里找论文、如何甄别论文质量?

    找到论文之后,找不到论文源代码?

    好不容易找到代码,却配置不好环境,更别说复现论文了!

    而这一次,深度之眼为你提供论文原文和代码!天池免费为你提供配置好的论文复现环境、GPU算力,让你一键跑通论文代码,3天复现经典顶会论文:

    不仅如此,阿里云天池还为大家准备了学员福利!

    福利一:完课学员直接返还学费!

    福利二:完课学员颁发天池优秀学员证书,获得证书的同学,可成为天池强化学习小白入门的首批用户!

    如果两篇Paper论文你觉得不够,下面是Paper会员整个课程体系的详细介绍:

    扫码添加客服咨询课程详情

    学员走心评价

    品牌口碑

    年轻最有效的资本是时间,让我们带你更有效的学习,帮你节约盲目摸索的时间。

    让你赚取更多的价值!

    订阅须知

    Q:课程资料在哪里看?

    A:所有的课程资料均会在训练营内上传,报名以后请务必添加客服微信入群!

    Q:视频可以电脑看吗?

    A:课程视频支持PC端倍速播放。

    Q:报名后可以退款吗?

    A:本服务为虚拟内容产品,一经购买,概不退款,敬请谅解。

    Q:可以开具发票吗?

    A:可以开具普通电子发票,请联系微信班主任填写需要的信息即可。

    paper讲师招聘

    【工作职责】

    1、讲解计算机视觉(自然语言处理)经典/前沿论文课程制作及后续内容迭代和优化

    2、制作录播课课件,如有代码复现,需要提供经过自己跑的代码及相关注释,方便讲解

    3、结合自己的理解和实际工作经历对论文内容做拓展讲解4、按照我们的模板制定教学计划,提升学员的学习效果

    【任职要求】

    1、计算机视觉(三维重建、3D场景、超分辨等)、自然语言处理(文本摘要、智能问答、文本匹配等)算法、工程岗在职工程师,或人工智能相关课题研究的国内外名校高材生。

    2、精读过计算机视觉(自然语言处理)经典论文并对部分论文做过复现,随时关注前沿研究动态。

    3、自己出过相关视频课或者在其他机构任职过兼职/全职讲师者优先考虑

    4、对教育有热情,在博客、或者知乎等相关知识分享平台写过技术分享文章优先考虑。

    5、无须全职,线上工作,能在不影响本职工作下完成备课、授课和学员服务,没有工作地点的限制。

    如有意向添加工作人员微信:

    展开全文
  • 论文来源:function [xm,fv]=GAEOQ1%%初始目标函数与约束条件%求解变量t, k, 目标函数 f,约束条件 g1syms t k z;f=100/t+25*(25*t+k*10*sqrt(1+1.25*t))+100*10*sqrt(1+1.25*t)*int((z-k)*normpdf(z,0,1),z,k,inf)/t...

    论文来源:

    function [xm,fv]=GAEOQ1

    %%初始目标函数与约束条件

    %求解变量t, k, 目标函数 f,约束条件 g1

    syms t k z;

    f=100/t+25*(25*t+k*10*sqrt(1+1.25*t))+100*10*sqrt(1+1.25*t)*int((z-k)*normpdf(z,0,1),z,k,inf)/t;

    tmin=1e-2;

    tmax=4;

    kmin=0;

    kmax=2;

    g1=1-200*sqrt(2+0.75*t)*int((z-k)*normpdf(z,0,1),z,k,inf)/(50*t);%%将约束标准化,将右端变为1

    NP=50; %进化多少代

    %%初始化种群,种群长度40

    size=20;

    E=zeros(20,5); %前两列为初始解,第三列为适应函数值,第四列记录是否为可行解,第五列记录违背约束条件的差值

    E(:,1)=tmin+(tmax-tmin)*rand(size,1);

    E(:,2)=kmin+(kmax-kmin)*rand(size,1);

    fv=inf;%初始最优值为无穷大的值

    D=zeros(NP,4);%用来记录每代的最优解,平均值,最差解,最优解是否为可行解

    %%计算适应函数罚函数值,判断是否为可行解

    for i=1:size

    B=zeros(1,1);

    B(1)=subs(g1,[t,k],E(i,(1:2)));

    if B(1)>=0

    E(i,4)=1;

    E(i,3)=subs(f,[t,k],E(i,(1:2)));

    else

    E(i,4)=0;

    E(i,3)=0;

    end

    if B(1)>=0

    B(1)=0;

    else

    B(1)=abs(B(1));

    end

    E(i,5)=B(1);

    end

    fmax=max(E(:,3));

    for i=1:size

    if E(i,4)<1e-6

    E(i,3)=fmax+E(i,5);

    end

    end

    %%遗传进化   %%到这步适应值还没出错

    for g=1:NP    %%原来错误在这里,这个k跟前面的k重复了

    %%竞标赛选择  %%小生态技术

    M=zeros(size,2);%用来存储优胜者的中间矩阵

    for i=1:size

    %A=randperm(size,6);

    %dij1=sqrt(0.5*(E(A(1),1)-E(A(2),1))^2);  %%小生态技术,只有单界时小生态技术没法用

    %dij2=sqrt(0.5*(E(A(1),1)-E(A(3),1))^2);

    %dij3=sqrt(0.5*(E(A(1),1)-E(A(4),1))^2);

    %dij4=sqrt(0.5*(E(A(1),1)-E(A(5),1))^2);

    %dij5=sqrt(0.5*(E(A(1),1)-E(A(6),1))^2);

    %if dij1<0.1

    %if E(A(1),3)<=E(A(2),3)

    %M(i,:)=E(A(1),(1:2));

    %else

    %M(i,:)=E(A(2),(1:2));

    %end

    %continue;

    %elseif dij2<0.1

    %if E(A(1),3)<=E(A(3),3)

    %M(i,:)=E(A(1),(1:2));

    %else

    %M(i,:)=E(A(3),(1:2));

    %end

    %continue;

    %elseif dij3<0.1

    %if E(A(1),3)<=E(A(4),3)

    %M(i,:)=E(A(1),(1:2));

    %else

    %M(i,:)=E(A(4),(1:2));

    %end

    %continue;

    %elseif dij4<0.1

    %if E(A(1),3)<=E(A(5),3)

    %M(i,:)=E(A(1),(1:2));

    %else

    %M(i,:)=E(A(5),(1:2));

    %end

    %continue;

    %elseif dij5<0.1

    %if E(A(1),3)<=E(A(6),3)

    %M(i,:)=E(A(1),(1:2));

    %else

    %M(i,:)=E(A(6),(1:2));

    %end

    %else

    %M(i,:)=E(A(1),(1:2));

    %end

    %end

    A=randperm(size,2);

    if E(A(1),3)<=E(A(2),3)

    M(i,:)=E(A(1),(1:2));

    else

    M(i,:)=E(A(2),(1:2));

    end

    end

    %%模拟二进制交叉生成后代

    for j=1:size/2

    if rand()>=0.5

    A=randperm(size,2);

    c=rand();

    x2=max(M(A(1),1),M(A(2),1));

    x1=min(M(A(1),1),M(A(2),1));

    beita1_t=1+2*(x1-tmin)/(x2-x1);

    rfa_t=2-beita1_t^(-2);

    if c<=1/rfa_t

    beita2_t=sqrt(rfa_t*c);

    else

    beita2_t=sqrt(1/(2-rfa_t*c));

    end

    E(2*j-1,1)=0.5*(x1+x2-beita2_t*(x2-x1));

    E(2*j,1)=0.5*(x1+x2+beita2_t*(x2-x1));

    end

    %%只在可行解时出错是怎么回事?是不是变异的原因,已纠正

    if rand()>0.5

    c=rand();

    x2=max(M(A(1),2),M(A(2),2));

    x1=min(M(A(1),2),M(A(2),2));

    beita1_t=1+2*(x1-kmin)/(x2-x1);

    rfa_t=2-beita1_t^(-2);

    if c<=1/rfa_t

    beita2_t=sqrt(rfa_t*c);

    else

    beita2_t=sqrt(1/(2-rfa_t*c));

    end

    E(2*j-1,2)=0.5*(x1+x2-beita2_t*(x2-x1));

    E(2*j,2)=0.5*(x1+x2+beita2_t*(x2-x1));

    end

    end

    %%变异,变异会不会导致可行解不可行?单下界时不用变异,设置判断条件防止过界

    for i=1:size

    nita=100+g;

    pm=1/size+g*(1-1/size)/NP;

    if rand()

    u=rand();

    %x=E(i,1);

    x=E(i,1);%%

    deltamax=1;

    if u<=0.5

    delta_2=(2*u)^(1/(nita+1))-1;

    else

    delta_2=1-(2*(1-u))^(1/(nita+1));

    end

    if x+delta_2*deltamax>=tmin

    E(i,1)=x+delta_2*deltamax;

    end

    end

    if rand()

    u=rand();

    x=E(i,2);

    deltamax=1;

    if u<=0.5

    delta_1=(2*u)^(1/(nita+1))-1;

    else

    delta_1=1-(2*(1-u))^(1/(nita+1));

    end

    if x+delta_1*deltamax>=kmin

    E(i,2)=x+delta_1*deltamax;

    end

    end

    end

    %%计算子代罚函数值,判断是否满足可行解

    for i=1:size

    B(1)=subs(g1,[t,k],E(i,(1:2)));

    if B(1)>=0

    E(i,4)=1;

    E(i,3)=subs(f,[t,k],E(i,(1:2)));%%跟直接算的结果不一样,也跟EOQ得到的结果不一样 eval出错的原因

    else

    E(i,4)=0;

    E(i,3)=0;

    end

    if B(1)>=0

    B(1)=0;

    else

    B(1)=abs(B(1));

    end

    E(i,5)=B(1);

    end

    for i=1:size

    if E(i,4)<1e-6

    E(i,3)=fmax+E(i,5);

    end

    end

    [Q,IX]=sort(E,1);

    %Q=vpa(Q,4);%%

    D(g,1)=Q(1,3);

    D(g,2)=mean(Q(:,3));

    D(g,3)=Q(size,3);

    D(g,4)=E(IX(1,3),4);

    if Q(1,3)

    fv=Q(1,3);

    xm=E(IX(1,3),(1:2));

    xm=[xm,E(IX(1,3),4)];

    end

    end

    %画图

    k=1;

    for i=1:NP

    if D(i,4)==1

    N(k,:)=D(i,:);

    k=k+1;

    end

    end

    plot(N(:,1),'r*');

    hold on

    plot(N(:,2),'b+');

    hold on

    plot(N(:,3),'ms');

    legend('最优值','平均值','最差值');

    hold off

    end

    侵删

    展开全文
  • CST仿真分析实例,适合入门
  • 然而,很多论文根本就复现不了,这是为什么呢? 一、数据关系 因为作者使用的数据比较私密,一般人拿不到,这种情况下,即使作者提供了源代码,但是读者却拿不到数据,也就没法复现算法。 这种情况在国内学术界很...

    吴恩达老师曾经说过,看一篇论文的关键,是复现作者的算法。
    然而,很多论文根本就复现不了,这是为什么呢?

    一、数据关系

    因为作者使用的数据比较私密,一般人拿不到,这种情况下,即使作者提供了源代码,但是读者却拿不到数据,也就没法复现算法。

    这种情况在国内学术界很普遍,数据别人没有,这就好像一位奥数老师,自己出了一道奥数题,自己解答出来,然后把解题过程写了论文,这类论文往往说服力不够,故事性不够强。

    二、硬件原因

    深度学习的很多算法,是靠大力出奇迹的方法做出来的。比如谷歌、facebook的一些算法,依靠强大的硬件训练出来。

    普通研究者没有那么强大的硬件资源,估计达不到他们的1%的算力,根本无法复现算法。

    三、数据划分和训练方式

    有些论文公开了代码,也公开了数据,但是论文里没有提到数据划分问题,数据如果比较少的话,不同的划分会导致结果不同。

    四、众所周知的原因

    这个原因大家心知肚明,我就不说太明白了,这个情况出现在很多国内作者的论文里。这个在公开数据上比较少见。

    很多国内的学者发的论文,通常的套路是:

    1. 定义一个很新但是意义不大的问题;

    2. 面向github编程;

    3. 网络中加一些attention,module,normalization,loss,加到不会崩为止;

    4. 编故事,写小说,看上去逻辑挺清晰的,但是不给别人复现的机会。

    其他原因

    有的论文的实验结果有造假,无法复现,相比之下中文论文可信度低一些。

    有的论文会留一手,论文里面不是全部,比如关键参数不提供,或者一些工程上较为实用但不雅观的trick,作者一般不会写进来。

    理想的论文什么样?

    1.效果可以复现,论文里每一个实验逻辑都很通畅,论文所有实验形成的逻辑链完备,使用公开数据集,效果和论文基本一致。

    能够达到这种的一般是领域内的大佬,比如陈天奇、何恺明。

    2.使用公开数据,公开代码,论文细节清楚,能复现论文的效果。尽管很多论文的作者也不能说明为什么这么设计的网络效果好,这个应该是深度学习可解释性差的原因。因为他们公开了代码,在公开数据集上效果好,能复现效果,所以也是好论文。

    其他回答

    作者:韦仕才

    https://www.zhihu.com/question/265953178/answer/1621561490

    作为一个在复现论文中踩坑无数,好不容易走出来的人,简单说一下我的看法。

    例子1:我是活体检测落地的,老师当时跟我说,旷视能做出来,你应该也可以做个差不多的吧(微笑)。然后我就开始的漫长的算法复现道路。后来很久以后发现了两件事。一是腾讯的一篇论文,做了两个测试,一个是用了公司内部的数据,一个是没用公司内部数据的结果,用了公司内部数据的高了10个点。另一个是前不久小视科技开源的活体检测项目,我去看了一下,,效果确实好,一细看怎么做的,好家伙,千万级的训练集…。

    例子2:当初我大四四月份的时候来到教研室,做活体检测的项目,看了近几年的会议和arxiv,找到了一篇效果最好的文章,甚至还公开了代码和预训练模型,心想,这不是稳了吗。当时我想的是:讲道理,结合pytorch,或者tensorflow,感觉论文复现不应该难才对啊???。花了两个星期学习tensorflow把它跑通,我去换换其他数据集看看(活体检测不同于其他领域,目前追求的就是跨数据集测试的准确率),结果效果稀烂。

    我当时在想,不对啊,它跨数据集的测试效果不差,为什么在这上面就是不行?后来数据集申请了下来,在它论文说的那个数据集上面试了一下跨数据集的测试,确实和文章描述差不多。我就更好奇了,那么好像这个论文就是对的啊,可是为什么其他数据集效果就差这么多(应该没人比我这个情况更奇葩了,不做落地基本不会遇到这个问题)。后来机缘巧合之下打印了很多日志之后我发现,它的正类和负类偏向不一样,预测主要偏向负类。

    但是这样效果应该会很差,为什么还这么好,然后我继续细挖,然后重点来了!!!我发现它的数据加载里面,正负类的加载就是不对等的,负类是正类的两倍多(正常是对等的),所以偏向负类,但是效果还是很好。我?????。那天我发现论文造假的另一个至高境界,直接修改数据分布。并不是说这篇文章作者就是故意的,但是谁知道呢,而且后来我师兄也遇到了类似的情况,在dataloader里面对数据进行了修改…他是做图网络分类的,同一个数据集之前的测试准确率只有80出头,后来几篇文章就飙到了接近90,师兄怎么斗复现不出来,后来开源了代码一看,好家伙之前训练测试是二八分,新文章直接变成了三七分,就在dataloader里改的,但是作者文章完全没有提及。我刚刚又看了一下这篇文章被一个二区期刊收录了。

    例子3:教研室有个同学做剪枝,复现CIFAR10的的baseline。CIFAR10这个数据集都说烂了,我浮现一下还不是手到擒来?然后一个月过去了,还是复现不出来那个效果,后来发现原来大家都在用trick。不加余弦衰减,不加mixup,不训练200个epoch,基本就达不到目前大家说的那个SOTA效果,但是这些不会有人和你说的,它们只会说我在resnet50上训练到了多少多少的准确率。

    例子4:教研室的师弟,结合GCN做few-shot learning。之前的测试准确率都是百分之五六十,去年ECCV突然出现了一篇准确率直接刷到80%多的文章还开源了代码,师弟惊为天人,感叹难道这个领域就这样做没了?然后拿作者的代码来加上自己之前的想法改了改又涨了几个点,在90%多,实现了大家默认要求的sota,觉得可以写文章了,文章写到一半,发现不对,代码好像有问题,github上有人提问,这个是不是好像好像过拟合了学习到了标签的顺序,然后师弟一看还真是,我把batch内多个任务之间测试样本顺序打乱,效果就又回到了普通的百分之五六十的水平,然后写完一半的文章就这样被废掉了。

    从这些故事中,我发现了以下的结论:

    绝大部分刚入门的人,都会迷信SOTA,我要复现就要复现那篇最好的,管它难不难,能不能复现,是不是真的有效。但是做过一年深度学习的人就知道,SOTA?一百篇文章一百个SOTA。

    有源码就一定可靠?我被源码坑过不止这一次,刚刚例子是,另一个回答里说到的LBCNN也是一样的,给的源码和文章里面的结构就是两回事。

    顶刊顶会大公司就一定可靠?顶会的可复现性问题存在也不是一两天了,那么顶刊也可见一番,每年三大顶会能复现出来的有一半就不错了,之前还有说90%都不能复现的…。

    有效的也许不是方法,而是trick—同学复现的那篇论文。有效的也许不是方法,而是数据分布—我遇到的那篇文章的数据分布。有效的也许不是方法,而是数据—活体千万数据集。有效的确实是方法,但是这个方法有问题----师弟的小样本学习的例子。

    这还是活体需要做跨数据集的交叉验证这种难的验证指标了,要是单纯刷一个数据集的指标的,能作弊的地方就更多了。

    怎么办?

    后来我想了很久,说,草,不追SOTA了,去选那些我理解了,而且直觉上我觉得可行的方法。就算是最后真的不行,我也能知道是哪里不行,也是我思维的完善。然后我开始去复现motion-based methods,检测眨眼和张嘴这些动作,确实可行,但是老师要做静默活体,然后又去试了rPPG,发现也可以,但是时间开销太大了,分析发现受采样定律的限制,10s左右的视频才能做出一个比较好的估计结果。然后去试了一下质量估计,也是有用,但是高质量的攻击也确实不能检测出来。于是慢慢又去做模型的分析,寻找其他的特征,我的目标慢慢从最近的18 19年,转向了12,13年那会,做理论分析的文章。虽然效果不好,但是有理有据,而且很多那时候的传统模型,结合现在的深度学习往往能爆发出强大的力量,于是就有了我现在的工作。

    不要盲目的去追求SOTA,那些高大上的结构,网络,因为很多时候并不是那些结构有用,而是trick有用,或者是其他的地方有问题。更重要的是看文章的核心思想,你觉得这个思想是不是合理,你接不接受,如果你自己也觉得他这个思想很不错,那么就可以尝试去复现,就算是最后失败了,你也会不会很难受,你知道什地方有问题,而这会是你后面科研的创新来源之一。

    现在深度学习的问题就是这个不到五岁的一个东西,直接盖过了一个领域过去10年甚至20年进化来的传统的模型和研究。但是它真的消失了吗?不,它不过换了一个方式去应用。我最开始做做活体发现近几年什么多模态,多光谱,深度图,时频分析,这些高大上的名词,觉得强的一批,他们是怎么想出来的,后来追溯到10多年前的文章之后才发现,原来这些东西在过去都研究过了,频率,反照率,3D结构,这些在过去都有分析,只不过过去的特征提取算法和数据没有现在这么多,所以没有很好的解决问题,现在被深度学习重新唤起了生机而已。正本清源,知道一个领域过去的研究你才能知道现在在什么地方,特别是各个领域都被深度学习冲击的今天。

    作者:wwww
    https://www.zhihu.com/question/265953178/answer/1622872889

    深度学习很常见的一个现象是A提出了一个methodA,resultA = methodA + trickA。接着B提出了一个methodB,resultB = methodB + trickB。B在他们的文章中会宣称resultB ~> resultA,从而得出methodB ~> methodA的结论。但其实很有可能只是trickB ~> trickA,或者说trickB对methodB的提升比trickA对methodA的提升大。如果“公平”的比较的话,很有可能会出现下面的几种情况:

    methodA ~> methodB (都不加trick);

    methodA + trickA ~> methodB + trickA(这不一定说明methodA ~> methodB,可能只是trickA更适用于methodA);

    methodA + trickB ~> methodB + trickB (这种情况可能是B最不想见到的)。

    为了显示出methodB的solid,B一般不会在文章中提及他们使用的全部trick。

    作者:Ming
    https://www.zhihu.com/question/265953178/answer/302365031

    做为入坑强化学习的人,是时候祭出神文: deep reinforcement learning that matters了:https://arxiv.org/abs/1709.06560。复现不出来才是正常的,里面有一幅图,表现出同一作者不同时期实现的同一算法效果差别巨大(而且后写的是效果差那个哦)。其他方向的类似文章也有很多,知乎有一篇文章总结了各种深度学习劝退文。

    曾和一个机械专业的人讨论,对方也是要用强化学习应用到机器人控制,并且自己用tebsorflow的c++版本把各种算法实现了一遍(听完这些我膝盖已碎)。和他讨论到我无法复现的问题,他给我的建议是把random seed定死,一步一步的跑自己复现的版本和作者公布的版本,一定要让每一步输出都一样。可惜自己太懒了,最后做到效果差不多就算了。

    作者:韩忠义
    https://www.zhihu.com/question/265953178/answer/302468588

    先认可这个问题。据一个在BAT实习的同学说,他的主要任务是实现CVPR里面自己感兴趣的工作,结果是大部分工作是重复不出来。尤其在医学图像处理领域,大家都以数据保密为由,不公开代码,而其中的水分可想而知。不过CV里面一些group的论文是很良心的,在GitHub上面公开的代码完全可以复习原论文的结果,比如RCNN系列。

    再说导致这个问题的原因。根本原因恐怕是科研的方向跑偏了,大家为了发论文而做科研,然后就有了好的就业,funding。如果爱因斯坦,图灵他们是为了毕业论文要求、为了发论文才去搞研究,恐怕就没有什么相对论,图灵测试了。

    最后说如何看待和措施。平常心看待,做科研的水军越来越多,大家为了毕业、什么青千等各种计划。保证自己不这样做就好了,自己问心无愧,多看提供源码的文章吧。尤其在DL领域,我实在是绞尽脑汁也想不出来还能编出来什么花样来,创新越来越难了。

    作者:知乎用户
    https://www.zhihu.com/question/265953178/answer/1622665112

    分享两个经历吧。

    1.曾经被要求复现一篇用GAN做字体生成的论文,论文发在CVPR上,是国内某大厂的。论文里面有一个显著错误和模糊错误,模糊错误是论文里面描述的卷积核的尺寸有问题。显著错误是因为论文里面无论是绘图还是公式,都有一个错误,那就是按照他们描述那样构造loss进行优化,某个重要部件是完全没有被计算梯度的。

    然后我汇报了上去,大佬去邮件问了后,得到的答复是对于卷积尺寸的问题,是他们忘了写padding,而对于那个没有计算梯度的方法,对方则大方承认了这是个错误并感谢我们指出。对于那个卷积核尺寸的问题我可以算,我就佩服没有计算梯度这个问题(我觉得算是比较严重的错误)可以这么大大方方的挂在CVPR上。

    2.第二个经历是复现一个transformer的模型,其中涉及到weight share,但那个weight share是把weight 给share了,然后不同任务独占一个bias……如果没有后面那个跟task有关的bias……是根本不work的(我觉得),或者说差很多。

    而这些细节是没有写在论文上的,是我发现不对劲后一行行对比他的开源代码发现的。

    作者:匿名用户
    https://www.zhihu.com/question/265953178/answer/302111688

    楼下有同学提到了TSN,恰好我这两天也在复现TSN和SSN。这两篇论文的代码都开源,但是我光是配置环境让它跑起来就用了好几天,调参还不知道要多少天。

    所以之前有学长告知,写论文是有周期的,不是说上午有个想法,下午做个实验,晚上就能发论文的。首先尤其是视频这块,主流的双流网络,你提取光流就得十几个小时甚至好几天吧,然后效果可能很差,那么是idea本身的问题呢还是参数问题啊,从此开始了长达数月的调参。。。不过跑程序的时候可以继续做别的是,看看论文,水水知乎。

    至于楼主提到的复现结果和论文不一致:很正常。。。所以作者一般会提供训练好的模型,免得你说人家算法有问题。

    作者:Lechatelia
    https://www.zhihu.com/question/265953178/answer/1622757270

    利益相关:2019从事video recognition与video detection方向大半年有余,无任何paper产出,2020年前此方向大部分深度学习相关paper都读了其基本理解,现已经脱坑

    动作识别与检测这个方向啊,讲到底无非就是在图片识别与检测问题上加了一个时间或者说是运动的维度,如何建模动作信息成为一个关键,可是,并不是所有人都有那么多卡,就算有了卡,发现预训练数据集都下载不下来(没错,就是本渣渣我了),于是在别人提好的特征上面加几层,当作一维特征去处理,利用图片领域的一些新文章或者新trick迁移到video任务上面来跑到比baseline高就行了

    baseline不能复现的问题,你应该是想从backbone网络那部分也就是特征提取器那里也自己实现吧,我也是的确遇到了类似问题,开始是数据下载都好难,有些YouTube链接已经失效了,千辛万苦下载到数据集,又开始千辛万苦提取光流,可最后用别人的代码与相同数据集,结果就是差很多,回过头找原因,发现别人batch size用的是128,我是用的32,大概或许可能就是这个原因吧(谁要我是个渣学校没卡呢!?),这个原因我还真没办法得到验证

    但是有很多工作都是基于已经提好的video特征(比如用tsn,i3d提取好的),在特征上面添加一些简单的层,完成的下游任务,比如用于detection的bsn bmn,我都很好复现了,而且效果很好,甚至我再添加一些trick之后比原文还好很多,但是呢,我回过去把结果可视化,也不咋地,归根到底,是之前的baseline太弱了

    video这个东西,还是很难的,首先数据本来就不够,而且在时间上的label就存在一定歧义,包括之后火起来弱监督video detection,我感觉也是想解决这个歧义,可是关于数据和显卡资源,这个东西,好像不是我等能够解决的吧

    作者:匿名用户

    https://www.zhihu.com/question/265953178/answer/302025291

    实话的话,
    1.复现不出来也要引用人家报告的结果。
    2.尽量选大组的工作。
    3.可写邮件问作者。
    4.如果是吸引人的工作,大家都会关注以及尝试复现的,持续追踪吧。

    搞科研的话,不要太在意效果去看工作本身的价值。在工业界的话,还是关注时间沉淀,去粗取精之后的工作吧。




    参考资料:
    【学术相关】为什么很多机器学习和深度学习的论文复现不了?
    如何评价深度学习相关顶级期刊论文难复现的问题?

    展开全文
  • 如何在自己的电脑上复现开源论文里的代码

    千次阅读 多人点赞 2021-04-11 15:10:51
    如何在自己的电脑上复现开源论文里的代码 刚开始入门科研的小伙伴们总是苦于开源论文中的代码无法在自己的电脑上复现,接下来以文章High speed and high dynamic range video with an event camera作为线索来讲解...

    如何在自己的电脑上复现开源论文里的代码

    刚开始入门科研的小伙伴们总是苦于开源论文中的代码无法在自己的电脑上复现,接下来以文章High speed and high dynamic range video with an event camera作为线索来讲解如何在自己的电脑上运行论文里的代码。

    步骤一:找到开源代码的链接

    不少开源论文在文中都附有代码的链接,点击访问即可找到对应的github工程,比如像这篇文章
    在这里插入图片描述

    如果没有的话也不必惊慌,如果论文是开源的,大多数情况下都可以去一些论文代码集成的网站上找到,这里推荐papers with code。打开网址,搜索框输出文章标题,即可搜索到代码链接:在这里插入图片描述
    此处选择你需要的代码版本:
    在这里插入图片描述

    步骤二:下载并解压

    进入对应的github工程,点击下载:
    在这里插入图片描述
    得到对应代码的压缩包,进行解压。
    大多数情况下,解压后的文件结构会形如这样:
    在这里插入图片描述
    每一个文件夹对应着代码的不同部分,里面往往还会有一个README.md。

    步骤三:阅读README

    如果希望让我们的代码在自己的电脑上跑起来,我们就需要按照这里面的步骤去一步一步进行。实际上你可以使用markdown编辑器打开README文件,但是这里为了照顾大多数伙伴们,右键使用记事本将其打开进行阅读。

    步骤四:安装相关依赖包、数据集与预训练权重

    在这里插入图片描述
    按照README中的要求,安装相关的依赖。比方说这里的reamme建议使用anaconda安装如下版本的相关的依赖包:

    PyTorch >= 1.0
    NumPy
    Pandas
    OpenCV
    

    我们不一定需要完全遵从里面的每一个命令,例如在win10上的anaconda下载可使用图形化界面;如果你使用pip管理python包也可以使用pip,等等。总之,尽最大可能满足里面所写的对依赖包的要求。
    随后根据提示从对应的网址下载预训练权重和数据文件。同样,我们可以将网页复制到浏览器直接进行下载,而不必使用命令进行下载。
    在这里插入图片描述

    这篇文章的REAMDE里面并没有写清楚下载后的文件应该放到哪里。根据经验,对应的文件应该放到对应名称的文件夹下。我们打开代码的当前目录,找到名称为data和pretrained的文件夹,将下载好的数据和预训练权重分别拷贝到这两个文件夹中。在这里插入图片描述

    步骤五:运行代码

    接下来我们需要开始尝试运行代码。由于代码一般都是在linux上使用命令行运行,故在我们自己的电脑上也应该使用命令行运行代码。使用win+R,运行cmd,cd到当前目录,输入README中提到的运行命令:

    python run_reconstruction.py -c pretrained/E2VID_lightweight.pth.tar -i data/dynamic_6dof.zip --auto_hdr --display --show_events
    

    一般情况下代码就可以运行了。
    当然如果你希望代码被多次运行,且使用可记录的参数,你可以在当前目录下新建一个txt文件,输入内容:

    cmd /k "python run_reconstruction.py -c pretrained/E2VID_lightweight.pth.tar -i data/dynamic_6dof.zip --auto_hdr --display --show_events"
    

    保存为后缀为bat的文件并双击运行,二者原理都是一样的。
    至此,我们的代码可以在自己的电脑上运行了。
    在这里插入图片描述

    重要提醒:不少情况下,论文里的代码无法在自己的电脑上运行,可能是出于一下几个原因:
    1.没有按照README里面的步骤进行操作
    2.自己电脑上的依赖项、数据集、预训练权重等相关文件没有安装完整或者版本不匹配
    3.Linux代码在windows上不兼容,可以通过在自己的电脑上安装虚拟机解决
    4.可能是因为自己的电脑上的硬件不支持,例如报错显存不够。这时可以通过调整代码的运行参数来解决,例如选择较小的batch size或者分辨率
    5.其它错误。常见的解决方案是将所报错误在网上进行搜索,查询论坛或者对相关硬件、依赖包提供技术支持的网站进行解决

    展开全文
  • 复现论文过程中遇到一些问题,记录下来 无root权限安装gcc6.3.0 由于用的是实验室的服务器,直接更新服务器的gcc可行。 下载gcc6.3.0并解压 mkdir一个目录build,与gcc解压的目录平行,进入build 用configure生成...
  • 目标检测-20种常用深度学习算法论文复现代码汇总
  • 在这个网站上你可以检索论文并且还能获得该论文对应的代码,这样就可以通过复现他人的实验结果来加深对论文方法的理解,赶紧收藏链接吧~ 详细介绍 网站首页 包含了最新趋势的研究论文,以及菜单栏包含了数据集、...
  • 看看这篇句子对模型的复现论文在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考。在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果。这是 PaperDaily 的第 82...
  • 吴恩达老师曾经说过,看一篇论文的关键,是复现作者的算法。然而,很多论文根本就复现不了,这是为什么呢?一、数据关系 因为作者使用的数据比较私密,一般人拿不到,这种情况下,即使作者提供了源代...
  • 2-论文复现方法

    2021-08-12 09:39:14
    80%都是相同的,现在的趋势就是pytorch越来越火 基础算子组合构建复杂算子 论文是多卡训练,如果是单卡记得学习率,做倍数缩小
  • 你是否正在焦虑找到好的论文?好不容易找到了paper,无法复现出code?缺少科研同行交流,只能独自一人闭门造车?是的,论文复现是要想最快的学习和了解AI领域的方式,复现困境也被叫做“徘...
  • target-point formation control论文复现MATLAB程序
  • 因为复现论文要从基础做起,你先找几篇你所在领域的经典、知名论文或者谷歌学术引用量比较高的论文,这些通常都已经被广大网友写好了代码。你对这些代码好好学习,并且消化。然后复现新的论文你也差不多自己有能力...
  • 摘要:百余篇经典论文算法上线华为云AI Gallery,学AI就用ModelArts 2020年8月28日,华为云AI院长峰会在...峰会上华为云发布了五大AI人才培养规划,其中“华为云AI十百千学术计划”之百篇经典论文复现截至目前已取得
  • 第一次论文复现 只看论文自己跑一跑的话水平可能不会有提高。 所以要锻炼自己的动手能力。 记录一下自己复现论文的经历。 之前从GitHub上找了一个项目,由于依赖包完全没能成功运行。 这次从看的论文里找了源码...
  • 代码实例(论文复现

    千次阅读 2020-10-23 16:28:48
    前置 DQN
  • 汽车半主动悬架作动器故障诊断与容错控制方法研究。我们复现了所上传的大论文内容!
  • 复现论文代码时,出现nvcc fatal : Unsupported gpu architecture 'compute_75'可能因为自己GPU太新,cuda版本支持 可能因为自己GPU太新,cuda版本支持 我的cuda版本是9.1,所以我又安装了一个cuda10.0版本 1. ...
  • 点击上方“3D视觉工坊”,选择“星标”干货第一时间送达成功复现一篇论文到底有多难?大概就像这样吧:可太TM难了——相信这是大多数机器学习研究者都吐槽过的心声。正义也许会迟到,但绝不会缺席。...
  • 复现论文实验一直是一大难题,或者说复现实验达到论文中精度是一大难题。绝大部分时候我们很难复现到媲美原文的精度,这很大原因是神经网络的参数众多,优化技巧众多,参数初始化等一些列问题,一般论文中对不会对小...
  • 学计算机视觉怎么能错过GAN网络?它是图像/视频生成与编辑领域当之无愧的王者!是深度学习强大能力最直观的展示!同时也是视觉领域理论研究的热点,是出论文的好方向!学GAN网络,如果想要在算...
  • 论文复现代码,论文复现代码 难吗,matlab源码.zip
  • 根据之前 博文提到的,去找到大赛跟自己项目比较像的,刷榜的最好,看看当中top的队伍会不会分享经验,像巨颖就会整体方案介绍 但可惜的是,因为找到追一的代码,她中途说了一句,借鉴...【论文复现代码数据集见评论
  • 链接:https://www.zhihu.com/question/265953178编辑:深度学习与计算机视觉声明:仅做学术分享,侵删在本人的研究动作识别过程中,曾多次复现该领域顶级期...
  • 复现经典论文,可以回顾深度学习和自然语言处理基础,强化对常用模型的理解,体会经典模型中蕴含的设计哲学,为后续实现自己的模型打下良好基础。如果深入了解深度学习原理,对基本的模型都能实现,只会拿开源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,046
精华内容 6,818
关键字:

复现论文复现不出来