Closed SKBL5694 closed 1 year ago
感谢提问!即便我是软件工程专业出身的,在读起代码来确实也比较费劲,更何况SlowFast的框架本身也比较晦涩,我也经历了很长一段时间的理解,希望你也可以耐心一些。无论开展任何的topic,我的建议有以下几点: (1) 第一步是选择follow、star多的框架,比如MetaAI发布的SlowFast等框架,OpenMMLab的一系列框架,越多人提issue,说明你遇到的问题越容易被解决。 (2) 第二部是理解的步骤,现在开源的模型,基本都有相应的参数config文件、模型文件、数据集文件、辅助的utils文件,以及最关键的训练与推理主程序:
(3) 对于第二步,可以在中间记录一些笔记,有利于自己整体把握。我记得我当时也写了个SlowFast的源码阅读,不过经过这么几年,已经发生了很大变化...... (4) 对于其他的大部分文件,比如多进程的启动等等,这些所有codebase通用的代码不需要太清楚,遇到问题的时候再翻issue看看就好。
最后的建议是,一定要细心耐心一些,多向人请教,社区的很多人都是欢迎提问的!
@Andy1621 感谢回复,我会尝试按照你提供的建议去做一做,我在之前读代码是也发现了保持耐心和细心是极其重要的,感谢回复。后续如果有问题可能还会再来向你请教。再次对你的热心帮助表示感谢。
加油,随时提问
黎同学你好,我在b站上看你你在AI Drive上分享你们工作的视频,从你讲述的过程中能感觉到你是个非常有趣且热心的人,因此在这里想请教一下和文章相关度没那么高的一些问题。 我阅读了仓库中video_classification下的代码,发现代码的核心部分应该是uniformer.py下的网络设计;但除此之外,训练部分的主要结构应该是借鉴了slowfast(应该是这样吧),与代码的核心部分相比,这些额外的训练结构部分占据了代码总体的极大比重,这让我非常头痛,因为我对于这部分的学习有些无从下手,当然这和我编程能力比较差有很大的关系。关于torch的编程部分的水平,基本都是在网上看一些简单的视频教程,之后自己能写一些简单的网络。 所以我想请问,在你的学习过程中,是如何掌握这种复杂的训练结构与框架的?希望不吝赐教。