2025.7.24学习日记【今天内容比较少】
1.模块
1.1 模块导入
今天在进行训练时,遇到了模块导入的问题,原先在/FineTune/model路径下编写两个模型decoder.py,depth2seg.py在同路径下的test_decoder.ipynb中测试导入没有问题,
而跑到上级路径/FineTune下的test_train.ipynb中测试导入发现了问题,
- 问题原因:
出现这个问题的原因是因为当前运行程序时,使用绝对导入(直接写模块名)的模块必须确保,上级目录在搜索路径之中 - 解决方法
- 相对导入:如果
decoder.py与depth2seg.py在同一个文件夹下,且decoder.py->depth2seg.py,可以使用相对导入,改成decoder.py中的from .depth2seg import XXX这样在其他层级的目录中的导入语句自动识别 - 注册成包
等待中... - 绝对导入
不推荐...
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)中常见场景文件夹的个数


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

浙公网安备 33010602011771号