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

这篇具有很好参考价值的文章主要介绍了如何读懂深度学习项目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”
哦,还要提醒,他有可能一本正经的胡说八道,记得自己去验证;文章来源地址https://www.toymoban.com/news/detail-733878.html

到了这里,关于如何读懂深度学习项目python代码-慢慢调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python学习-代码调试器pdb的使用教程

    大家平时是怎么调试代码的呢?我平时是这两种 使用print打印变量,发布时再注释掉 使用日志,设置控制台为DEBUG模式,发布时设置控制台为更严重级别,就不用一个个注释print 第一个方式需要侵入代码,且调试后需要注释,有的时候忘记注释了一个print,比较繁琐。第二个

    2024年02月01日
    浏览(44)
  • 【Python合集】我见过最有趣好玩强大的代码都在这里,涨见识啦~建议收藏起来慢慢学。(墙裂推荐)

    大家好,我是栗子同学啦~ 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 Python 凭借语法的易学性,代码的简洁性以及类库的丰富性,赢得了众多开发者的喜爱。 下面我们来看看,简易的代码能实现那些有趣又实用的效果呢? 大家可以直接复制粘贴即可使用,

    2024年02月02日
    浏览(76)
  • 深度学习毕设项目 深度学习 python opencv 火焰检测识别

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月01日
    浏览(47)
  • Python深度学习实用代码合集

    背景:这篇文章的背景是在日常的学习和项目中,经常会遇到一些基础功能的组合复用,每次去查函数的用法和pipeline都是比较耗时耗力需要重新调试,所以想着把一些经常用到的代码段固化成函数,方便未来的调用,快速迭代和验证。另外,发现谷歌的colab比较好使,对于算

    2024年02月13日
    浏览(45)
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

    🚨注意🚨 :最近经粉丝反馈,发现有些订阅者将此专栏内容进行二次售卖,特在此声明,本专栏内容仅供学习,不得以任何方式进行售卖,未经作者许可不得对本专栏内容行使发表权、署名权、修改权、发行权、转卖权、信息网络传播权,如有违者,追究其法律责任。 👑

    2023年04月15日
    浏览(60)
  • 深度学习毕设项目 深度学习 python opencv 实现人脸年龄性别识别

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月03日
    浏览(62)
  • 深度学习毕设项目 深度学习猫狗分类 - python opencv cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月03日
    浏览(61)
  • 深度学习毕设项目 深度学习+opencv+python实现车道线检测 - 自动驾驶

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月04日
    浏览(71)
  • 深度学习Github项目实例复现:从虚拟环境安装到得出代码的复现结果

    希望你要有耐心一步一步做完,你一定会有收获! 1.Anaconda官网链接(版本随意) 2.笔者自己版本的度盘Anaconda链接 安装时需要注意的点:(不重要的安装步骤省略了) 这里最好装在空间大的盘,因为要在它的目录下装很多虚拟环境,虚拟环境还挺大的,我装在空间大的E盘。

    2024年02月08日
    浏览(56)
  • 如何在服务器使用GPU跑深度学习代码

    每个人都有他们偏好的工具和工作流程。就我个人而言,我喜欢使用 PyCharm Professional Edition 作为我的集成开发环境,选择使用 HengYuan Cloud\\\'s OSS.exe 和 FileZilla 进行文件传输,并且我倾向于使用 Xshell 来处理命令行操作。这些工具的组合满足了我的所有需求,并使我的工作效率最

    2024年04月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包