代码笔记。

代码笔记:
1.超参数定义和设置代码在option和config等关键字命名,超参数是指定数据存放的路径,训练过程中的batch_size,网络模型的参数等
2.数据集的构建往往命名为dataset.py,重点关注dataloader部分,它决定了提供给每次训练迭代中什么样的数据,即__getitem__的返回值是什么
3.神经网络模型的结构定义代码在以model为命名的文件夹下,前期关注forward函数的定义
4.模型训练的代码命名为train.py,基本步骤:数据集的实例化(dataset),模型的实例化(model),优化器的创建(optimizer),迭代训练(training loop)。找到迭代训练的for循环后,弄清楚这几步:由dataloader给出的数据→送入模型的前向传播→计算loss→反向传播计算梯度(loss.backward)→优化网络参数(optimizer.step)→优化器清空梯度(optimizer.zero_grad)

3.31
今天学会给每个项目设置一个独立的conda,基本安装包的办法, pip install numpy,pip install pandas.
import torch成功,步骤如下
1.安装pip(pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116)2.如图在这里插入图片描述
1.PMT:Learning Progressive Modality-Shared Transformers for Effective Visible-Infrared Person Re-identification.
2.Pose:On exploring pose estimation as an auxiliary learning task for Visible-Infrared Person Re-identification.
3.USL:Unsupervised Visible-Infrared Person Re-Identification via Progressive Graph Matching and Alternate Learning
选择了第2篇进行复现

4.1
安装apex库成功
首先下载安装包(https://github.com/NVIDIA/apex.git)解压,然后命令行窗口安装在这里插入图片描述
同级目录from文件 import 类报错,报错情况:在这里插入图片描述
原因:Pycharm不会将当前文件目录自动加入Sourse_Path
解决方法:选中.py文件所在的文件夹(如图是classification文件夹),右键 Make Directory as → Sources Root,将当前工作的文件夹加入Source_Path
在这里插入图片描述
4.2
No module named 'pytest’错误在这里插入图片描述原因:.py文件名的开头出现了test_,会被pycharm默认为我们要用pytest的方式运行解决方法:
1.修改test_的名字
2.顺着它,把pytest安装了:pip install pytest
3.改掉pycharm自动以pytest运行的方式,见别人的博客:https://blog.youkuaiyun.com/cvnlixiao/article/details/87351491,
我先选择的1,将test改为PoseTestMl,失败
然后pip install pytest,错误解决,并改回test名字

说我test模块的名字不对,啊啊崩溃
在这里插入图片描述
解决不了啊啊,换PMT项目了。。加油!
新建conda环境和安装包,以后努力为每个项目配置单独的环境。
在这里插入图片描述
在这里插入图片描述

遇到了和上个项目一样的问题,
在pycharm中的Terminal中运行:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 问题解决。
在这里插入图片描述
4.26
1.超参数定义和设置代码在option和config等关键字命名,超参数是指定数据存放的路径,训练过程中的batch_size,网络模型的参数等
2.数据集的构建往往命名为dataset.py,重点关注dataloader部分,它决定了提供给每次训练迭代中什么样的数据,即__getitem__的返回值是什么
3.神经网络模型的结构定义代码在以model为命名的文件夹下,前期关注forward函数的定义
4.模型训练的代码命名为train.py,基本步骤:数据集的实例化(dataset),模型的实例化(model),优化器的创建(optimizer),迭代训练(training loop)。找到迭代训练的for循环后,弄清楚这几步:由dataloader给出的数据→送入模型的前向传播→计算loss→反向传播计算梯度(loss.backward)→优化网络参数(optimizer.step)→优化器清空梯度(optimizer.zero_grad)

公式:根据卷积求stride,padding
在这里插入图片描述
4.27
下载SAAI预训练模型SYSU_p7_dp_l2_seed_0.pth
并且运行.pth文件加载模型
在这里插入图片描述
结果如下,只保存了参数没有保存网络结构。
在这里插入图片描述
解决方法:换个方法加载模型,像加载自己训练好的网络那样加载预训练模型。
主要是把pretrain设成false,然后直接把路径指定到模型所在处,用load_state_dict程序进行加载。
在这里插入图片描述
报错
正在看.pth模型
https://blog.youkuaiyun.com/u014264373/article/details/85332181
还是没有找到如何打印.pth的网络模型,.pth文件只在train.sh中出现了
预训练模型讲解:https://www.bilibili.com/video/BV1Bk4y1F72N/?spm_id_from=333.337.search-card.all.click&vd_source=635bca151f3b35eb7c6aad70eb086349
后来经过老袁讲解,把.pth放在与test同一目录下,然后test中的checkpoint的default改为.pth的地址。
4.30
在这里插入图片描述
报错原因:当你遇到 ValueError: invalid literal for int() with base 10 错误时,这意味着你的代码尝试使用 int() 函数将一个字符串或其他非整型数据转换为整数,但是这个转换操作失败了,因为给定的字符串或数据不能被解释为一个有效的十进制整数。
我将错误定位到最后一行报错,发现地址获取有问题,改为在这里插入图片描述
的格式,问题解决。
在这里插入图片描述
列表超出索引范围,原因:1.可能是下标超出范围 2.可能是list是空的,没有一个元素
5.4
对于之前的问题,列表超出索引值,在这里插入图片描述
终于解决了,将路径分割的split(‘/’)改为split(‘//’),此时能够划分列表,虽然是很小的问题,但难了我好几天,开心。
在这里插入图片描述
现在是再在服务器上跑跑吧。
5.6
在自己win11上用命令行跑一下
在这里插入图片描述
Ubuntu环境上:
新建SAAI的conda环境,接下来安装包。
在这里插入图片描述
参考Unbuntu下载命令
ubuntu安装apex路程
首先下载了git,下载git成功之后,进行如下命令:
在这里插入图片描述
然后,
在这里插入图片描述
最后验证成功
在这里插入图片描述
主要参考了文章
5.8
运行一下
在这里插入图片描述
遇见错误:
在这里插入图片描述
在这里插入图片描述
呜呜呜test测试结果出来了
在这里插入图片描述
5.31
train遇到错误
在这里插入图片描述
对应位置:
在这里插入图片描述
例如:
在这里插入图片描述
save获得不期待的值sava_interval
在这里插入图片描述
7.1
复现LLCM实验
创建conda环境
在这里插入图片描述
在这里插入图片描述
接下来开始安装包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值