如何读懂深度学习项目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"

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

相关推荐
盼小辉丶7 分钟前
TensorFlow深度学习实战(21)——Transformer架构详解与实现
深度学习·tensorflow·transformer
Jamence16 分钟前
多模态大语言模型arxiv论文略读(113)
论文阅读·人工智能·语言模型·自然语言处理·论文笔记
haf-Lydia22 分钟前
金融科技的数字底座
人工智能·科技·金融
laity1723 分钟前
激活IDM的几种方法
python
shengjk124 分钟前
多智能体大语言模型系统频频翻车?三大失败根源与解决方案全解析
人工智能
北极的树26 分钟前
谁说AI只会模仿,从Google AlphaEvolve项目看算法的自主创新
人工智能·算法·gemini
安思派Anspire30 分钟前
用 LangGraph 构建第一个 AI 智能体完全指南(一)
人工智能
广州正荣32 分钟前
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
人工智能·爬虫·科技
加油搞钱加油搞钱34 分钟前
鹰盾加密器基于AI的视频个性化压缩技术深度解析:从智能分析到无损压缩实践
人工智能·音视频·视频加密·鹰盾加密·鹰盾播放器
Baihai_IDP36 分钟前
OCR 识别质量如何影响 RAG 系统的性能?有何解决办法?
人工智能·llm·aigc