ubuntu16.04搭建NeuralBabyTalk

上研浪了半年,现在准备发狠,导师给的任务是跑一个线程的image caption代码

从cvpr2018里相中了这个NeuralBabyTalk

github地址:https://github.com/jiasenlu/NeuralBabyTalk

一些列繁琐的搭建过程就这样展开了

【第一关】

代码部署好了,一跑各种问题,然后在里面调来调去,结果发现不对劲啊,不可能这么多问题啊。然后仔细研究代码,发现主程序有很多print(),猜测可能是python3,但是调用的coco-caption是尼玛python2啊!这不能跨着调用吧....

郁闷一上午,中午吃饭,师兄说python2也能print().....

马上跑回实验室,conda弄python2新环境,果然跑了起来,欣喜若狂

【第二关】

好景不长,基本数据导进去了,在input.cuda()报错,错误是cuda error30:unknown error。觉得可能是师兄师姐代码影响我了,等他们跑完再试,还是不行。心态有点崩溃,空GPU还能有啥问题??然后自己开终端发现东西能放进GPU啊,这代码有毒吧....把一堆import去掉,逐个测试,一步步追踪。。。最后还真是代码有毒,在池化操作那里,用了一个so文件,执行前可以正常用GPU,执行后就不行。so反编译我还没这能力,最后决定不动so,看下cuda是不是有问题。

国内看了2小时一无所获,遂翻墙,又一无所获。有五个看上去没啥用的方法,重启啊,升级啊,感觉都不靠谱。结果试最后一个sudo执行,我抱着试一试的心理,最后竟然成了。。。。代码训练正常的走了起来,高高兴兴回宿舍

【第三关】

第二天来了,eval过程报错了....

心态很崩,错误少文件。厉害的是不显示没什么文件。

debug一路到报错地方,发现是要用python执行一个控制台的java命令,然后我看了下调用文件,这不是在吗???单独把错误代码移植出来,发现还是一样。此时不禁对斯坦福的代码产生怀疑....这种怀疑一直持续了一个下午

到了晚上突然想一直用pycharm跑,改终端试试?终端一跑,发现错误变了,这时候的错误至少是个java错误。此时一想是不是权限的问题啊。因为cuda的未知错误,我用管理员权限运行的pycharm,所以执行代码也是用管理员权限执行的(但其实我不想这样,我也没办法)。马上写main函数,用终端跑,果然和权限有关,用sudo跑始终提示少文件。于是开始了网上的疯狂浏览,突然看到,sudo运行java -version会失败。自己一试,真的是!sudo没法用java,网上来回找原因和方法,最后修改/etc/sudoers,瞬间解决。

现在心情很激动,等着跑代码~~,看看还有什么问题等着我


评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值