关于算法开源乱七八糟事
在中科院实习的这些天里,其实就是帮助导师复现一些算法。我首先是读了导师发过来的领域相关了论文,然后就是开组会讨论论文,最后要求我复现其中的某些篇。
如果在论文中就没说自己开源的也还好,至少不用浪费精力。但是那些给了开源链接的才真正是群魔乱舞:有开源地址直接没了的,有不写readme的(这种我连复现的动力都没得);有写了readme但是写的太过简陋让我不得不看源码调参数(至少写了readme);更有甚者不写requirelist的,我只能试着跑代码看提示缺了什么库。
以上其实相比下一种情况还没那么致命,就是不告诉你数据集是什么,然后readme里面也没有数据集结构,如果数据集还不是原生是经过预处理然后还不给预处理代码,这中情况我真的无力吐槽,我在导师的要求下要复现他,我读了一遍他的源码,看他data_path的字符串拼接然后推断出他的数据集结构,然后看他的论文看他做了哪些预处理方法,我自己写预处理代码然后放进去,最终是运行起来。这种情况是我最不愿意遇见的,是最复杂的一种情况。
还有他给了源码结果发现接口对应不上,结果发现是他一部分更新了而另一部分没更新,接口不对。我是读完源码给改了接口才跑起来。
还有那种在github开源,我给他提issue,刚开始还回答你几句,后来一点消息都没有了。
只能说复现代码真的不是那么简单啊,还有就是要吐槽一下pytorch的torch.distributed.launch,它的报错是真的好离谱,那报的错又多又密,然后还特码都是库里报的错,网上搜也搜不到解决方法