您当前的位置: 首页 > 
  • 3浏览

    0关注

    417博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

行人重识别0-04:DG-Net(ReID)-模型训练-报错解决

江南才尽,年少无知! 发布时间:2019-10-08 14:55:24 ,浏览量:3

以下链接是个人关于DG-Net(行人重识别ReID)所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文末附带 \color{blue}{文末附带} 文末附带 公众号 − \color{blue}{公众号 -} 公众号− 海量资源。 \color{blue}{ 海量资源}。 海量资源。

行人重识别0-04:DG-GAN(行人重识别ReID)-目录-史上最新最全:https://blog.csdn.net/weixin_43013761/article/details/102364512

极度推荐的商业级项目: \color{red}{极度推荐的商业级项目:} 极度推荐的商业级项目:这是本人落地的行为分析项目,主要包含(1.行人检测,2.行人追踪,3.行为识别三大模块):行为分析(商用级别)00-目录-史上最新无死角讲解

训练教师网络

首先我们还是和之前一样,阅读README.md: 在这里插入图片描述 上面说,我们可以直接使用他们的预训练模型,也可以选择自己去训练教师网络,其中给除了自己训练数据的链接。

本人暂时还不想去自己训练一个教师模型,所以这里直接使用其训练好的预训练模型。如果后续有时间,我会带着大家一起去训练好一个教师模型。下面就是我们的核心,DG-Net的训练了。

Train DG-Net

在这里插入图片描述上面叫我们,首先检查一下configs/latest.yaml文件,然后改变其中的data_root,把他改成你准备好数据的目录,如…/Market-1501/pytorch,本人设置如下:

#data_root: ../Market/pytorch/    # Dataset Root
data_root: E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15_bk/pytorch

然后就可以开始训练了,按照说明执行

python train.py --config configs/latest.yaml

报错如下

FileNotFoundError: [Errno 2] No such file or directory: './models\\best\\opts.yaml'

只需要把下载好的预训练模型拷贝一份再项目根目录即可: 在这里插入图片描述 然后重新运行,依旧会报错如下:

in _check_not_importing_main
    is not going to be frozen to produce an executable.''')
RuntimeError: 

在这里插入图片描述 解决办法是在源码中添加如下: 在这里插入图片描述 然后再重新运行即可,打印信息类似如下: 在这里插入图片描述 比较尴尬奥,又报错了:

RuntimeError: CUDA out of memory. Tried to allocate 32.00 MiB (GPU 0; 8.00 GiB total capacity; 5.81 GiB already allocated; 28.04 MiB free; 102.55 MiB cached)

这里报错的原因是GPU的内存不够,然后我重新修改了configs/latest.yaml文件:

#batch_size: 8                    # BatchSize
batch_size: 4                    # BatchSize

然后再重新运行,这下就没有保存了,打印信息类似如下:

L_total: 56.3308, L_gan: 2.8830,  Lx: 4.4244, Lxp: 4.8421, Lrecycle:0.0000, Lf: 0.0000, Ls: 0.0000, Recon-id: 8.2262, id: 17.8089, pid:18.1462, teacher: 0.0000
Elapsed time in update: 0.973396
 Epoch: 00 Iteration: 00000080/00100000  DLoss: 2.9394 Reg: 0.0099
L_total: 52.1151, L_gan: 3.4995,  Lx: 4.6391, Lxp: 4.5101, Lrecycle:0.0000, Lf: 0.0000, Ls: 0.0000, Recon-id: 7.2401, id: 15.7984, pid:16.4279, teacher: 0.0000
Elapsed time in update: 0.993365
 Epoch: 00 Iteration: 00000081/00100000  DLoss: 3.1002 Reg: 0.0084
L_total: 51.3723, L_gan: 2.9243,  Lx: 4.1254, Lxp: 4.8870, Lrecycle:0.0000, Lf: 0.0000, Ls: 0.0000, Recon-id: 7.4951, id: 15.3315, pid:16.6091, teacher: 0.0000
Elapsed time in update: 0.977385
 Epoch: 00 Iteration: 00000082/00100000  DLoss: 2.9976 Reg: 0.0083
L_total: 47.5834, L_gan: 3.1881,  Lx: 4.1713, Lxp: 4.6657, Lrecycle:0.0000, Lf: 0.0000, Ls: 0.0000, Recon-id: 6.7660, id: 14.2492, pid:14.5431, teacher: 0.0000
Elapsed time in update: 0.996337
 Epoch: 00 Iteration: 00000083/00100000  DLoss: 3.0359 Reg: 0.0089
L_total: 46.5247, L_gan: 3.0651,  Lx: 3.8544, Lxp: 4.2617, Lrecycle:0.0000, Lf: 0.0000, Ls: 0.0000, Recon-id: 7.0247, id: 14.0054, pid:14.3136, teacher: 0.0000

这样,我们的模型就开始训练了。下面我们就要开始去分析代码了,当然先分析的还是训练代码,相信这也是大家最关注的地方。

这里给大家说一个事情,每次我再讲解一个新项目的时候,都是告诉大家如何先把代码跑起来,然后再去分析。为什么要先跑起来再去分析呢?主要的原因在于,万一分析完之后,代码就没有办法训练,或者根本跑不起来,那样就白白浪费了我们的时间。

在这里插入图片描述

关注
打赏
1592542134
查看更多评论
立即登录/注册

微信扫码登录

0.0376s