2025.7.24学习日记【今天内容比较少】

1.模块

1.1 模块导入

今天在进行训练时,遇到了模块导入的问题,原先在/FineTune/model路径下编写两个模型decoder.py,depth2seg.py在同路径下的test_decoder.ipynb中测试导入没有问题,image
而跑到上级路径/FineTune下的test_train.ipynb中测试导入发现了问题,image

  • 问题原因:
    出现这个问题的原因是因为当前运行程序时,使用绝对导入(直接写模块名)的模块必须确保,上级目录在搜索路径之中
  • 解决方法
  1. 相对导入:如果decoder.pydepth2seg.py在同一个文件夹下,且decoder.py->depth2seg.py,可以使用相对导入,改成decoder.py中的from .depth2seg import XXX这样在其他层级的目录中的导入语句自动识别
  2. 注册成包
    等待中...
  3. 绝对导入
    不推荐...

2. 设备

2.1 数据加载GPU

数据加载到GPU并不是直接通过dataloader实现,
【注】:请注意区分dataloader与dataset,dataloader也实现了len方法,其长度是batch的个数;dataset也实现len方法,其长度由个人自定义,比如不同场景的序列数据,./images/kitchen/..,./images/bookshelf/..,可以将将其读入为张量[S,C,H,W],其中S为序列长度,可以自行定义,最后将dataset的len方法定义为返回的个数为images(或者labels)中常见场景文件夹的个数
image
image

2.2 损失函数加载GPU

对于损失函数,通常不需要显式移动到设备,因为它们不包含需要存储在设备上的参数。可以直接使用criterion = nn.CrossEntropyLoss()如果损失函数中包含需要学习的参数,就需要显式地加载到内部

posted @ 2025-07-24 21:22  BingUw  阅读(15)  评论(0)    收藏  举报