如何读懂深度学习项目python代码-慢慢调试

以文章multi-label learning from single positive为例;

  • 手动print打印出你不懂的地方;
  • 把不会的地方单独拎出来,重新创建一个小文件单独运行;
  • 问神奇的chatgpt,github上有个学术型chatgpt可以帮你读懂项目代码;

手动print

最笨的方法啦!不过还是要知道到底要看哪些东西,比如说对于一个函数而言,先看输入输出;

对于一个变量,以tensor为例,主要看它的形状,那么就这么写:print(f"label.shape : {label.shape}"),打印出来(16, 81),就表示batch size = 16, 每一个instance对应有81个class,还可以看它其中的值,比如想观察其中一个instance对应的数据,就这么写:print(f"label[0] : {label[0]}"),打印出来的是每一个instance而言,每一个类是真是标记的概率,会是一个长度为81的tensor,每个值是属于[0, 1]的一个数字;

就这样,哪里不会点哪里;

拎出来

这个就很有技巧了;

我一般是用Jupyter Notebook,单独创建一个.ipynb程序来写;

创建.ipynb文件常常会有问题,在Vscode中需要下载相关插件;

会遇到问你选择什么kernal,一般也就是问你要用conda里哪个环境;

还会遇到编译器不知道你的根目录在哪里,也就是相对于直接用python train.py运行程序时那个开始目录,有可能会出错;

相对路径错了,记得改用绝对路径;

(1)实在不知道哪里重不重要,把前面所有代码都搬过来

属于一脸懵逼的人,那就大把大把的复制过来吧,把需要的所有变量啊,参数啊都准备哈,再运行下边的;

(2)知道上文输入这块的是什么,也知道下文要输出什么

比如说,我想要研究class ds_model(Dataset),那我文件里只写这个class,需要什么输入呢?是一个Dataset类,是从torch里面调出来的,那没事了,我直接from torch.blabla import Dataset

又比如,我想看source_data = load_data(data_base, P),到底是啥,我跑到load_data函数里看,需要一个Dataset类别,大手一挥自己继承torch里面的Dataset自己又写了一个新的类别,就能运行这个函数了;

上面的还属于比较低级的阶段,下面可以玩的更高级一点;

想一想为什么要输出Dataset,因为要获得数据和标签;为什么要获得数据和标签,因为要算loss;怎么算loss,把那几个tensor乘几下,blabla;然后一拍脑袋,反手写了几个对应形状的tensor,其中数值在[0, 1]之间,就把程序调通了,还因为数据用的特别简单,反而更清楚它在干什么了;

(当然你不可以转牛角尖说电脑里底层都是用0和1在做运算,所以我写一堆0和1 blabla,呵呵呵)

多在.ipynb鼓捣鼓捣就知道程序到底在干什么了,整体看不懂就把局部单独拎出来跑;

神奇的chatgpt

学术版chatgpt

你可以问学术版的chatgpt(from github),我还没有用,因为配置很麻烦;

普通的chatgpt

提问也是很有技巧性的,首先要描述清楚问题是什么,最好要举个例子,举例子的效果非常非常非常好!

比如,最笨的问法是:"下面这段话什么意思?blabla"

聪明一点是:"下面这段话是这个意思吗?我觉得可能是blabla"

哦,还要提醒,他有可能一本正经的胡说八道,记得自己去验证;

相关推荐
Qyr997 小时前
吞咽困难介护食:老龄化社会中的营养安全守护者
人工智能
火山引擎开发者社区7 小时前
文件上传即可检索|实时多模态向量链路落地实践分享
人工智能
YYJ-F7 小时前
Anthropic——AI安全人工智能研究公司,核心产品Claude Code辅助编程
人工智能·安全
具身智能进化论7 小时前
协作机器人产业进入规模化部署期,未来几年的增长从何而来
大数据·运维·人工智能·机器人·自动化·工厂方法模式
hzcj8887 小时前
汇正财经:储能装机回暖,估值有待提升
大数据·人工智能
妄想出头的工业炼药师7 小时前
GLAM-SLAM
人工智能
Livia要学习7 小时前
Python装饰器
开发语言·python
一直都在5727 小时前
LangChain4j精讲
开发语言·人工智能
八号当铺7 小时前
使用 Figma Agent Kit:插件 + MCP + 还原 Skill,打通本地设计协作
前端·人工智能·ai编程
今天AI了吗7 小时前
时序大模型 TimechoAI 实战:从数据接入到智能时序分析全链路指南
人工智能