笔者看来,很多机器学习、深度学习的初学者都是通过学习别人的代码发展起来的。但一直模仿别人的代码可能不一定会有很好的结果。更严重的说,学习别人的开源代码不利于后来者发挥自己的优势构建新的解决方案。 在世界最大的开源代码网站Github上就有大量大型项目的开源。很多人觉得开源的项目就是厉害,开源了都不一定看的懂。如果这样想的话,就已经进入了一个认识误区。其实用代码实现功能的方法有很多。但如果你不知道别人的思路。再怎么死磕别人的代码也是徒劳。 许多从业者应该都看过别人的代码,从我自身来讲。有些技巧性的东西的确可以通过学习别的代码来让自己进步。但真正要做自己的项目还是需要自己有一个完善的思路才行。 所以我认为“下者”抄袭代码,“中者”模仿代码,“上者”学习思路。 刚开始进入这一领域的是也疯狂找别人的开源直接改来使用。有时候连改都不一定改的好。参加过很多次算法大赛。刚开始能用别人的代码做一次比赛就很不错了。后来我发现,别人给你的代码限制了你的思维,而且你还不能及时突破。只能在强者的阴影下前进。到了真正该亮剑的时候,你已经黔驴技穷,而别人还游刃有余。 再后来我也不直接用了。尝试着看别人的论文。其实你不参与写论文是无法完全领悟别人的思想的。只要你能在每篇论文中找到一两个亮点。然后再通过自己的方法去实现它就是一个巨大的收获。其实很多论文并没有所表现的那么优秀,所有的项目都必须在实践中表现出优势才能是好的项目。论文中所做的实验多多少少会存在一些特定的实验环境。 最后,我发现还是需要仔细看各常用库的使用方法,熟悉API。才能在使用过程中游刃有余。 所以开源代码不是对所有人都有好处。还是要根据自己的实际情况去看待。如果你从事着大中型项目的开发工作,请避免直接使用别人的开源代码。开源有益,拷贝无趣。加油科技工作者们。万一哪一天美国关闭了Github,我们还不至于太落魄。 |