算法环境配置5_实例分割YOLACT


提示:以下是本篇文章正文内容,下面案例可供参考

一、环境配置

前言

因为需要安装编译的DCN 需要cuda10.2,如果你本机的显卡只支持高版本的cuda,没法降低cuda版本,这种情况下,建议使用anaconda 创建的虚拟环境,在创建虚拟环境的时候可以指定python版本,在虚拟环境里可以指定安装对应的cuda版本。

1.创建虚拟环境

#1.创建虚拟环境

conda create -n py37_YOLAct python=3.7 

2.激活虚拟环境

source activate py37_YOLAct

3.安装cuda,torch,torchvision,toraudio

我的环境conda 安装后,导入torch会报错,所以我使用的是pip安装

conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch

我自己是pip 安装的

pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

4.检查pytorch是否安装OK

import torch
print(torch.cuda.is_available())#打印cuda是否可用
print(torch.cuda.device_count())#打印可用的GPU数量
print(torch.version.cuda)#查看虚拟环境cuda版本

二、数据标注和转换

1.数据标注

我们使用labelme来标注数据,具体安装和使用可以自行百度

2.数据转换(转换成coco格式)

训练集:一部分作为训练集放到data/coco/images/train2014,然后执行data/label2coco.py ,会自动生成data/myData/annotations/instances_train2014.json
验证集:一部分作为训练集放到data/coco/images/val2014,然后执行data/label2coco.py ,会自动生成data/myData/annotations/instances_val2014.json
注意:训练集数量不要弄成奇数,尽量弄成偶数。不然会报错。如果报错,可以按照下面方式修改代码
在这里插入图片描述

三、修改配置文件

1.修改data/config.py

(1)修改数据类别为自己的
COCO_CLASSES = ('cat','dog')
COCO_LABEL_MAP = {1: 1, 2: 2, }
(2)修改数据加载地址
dataset_base = Config({
    'name': 'Base Dataset',
    'train_images': '/home/jeremy/codes/Data/coco/images/train2014',
    'train_info': 'path_to_annotation_file',

    'valid_images': '/home/jeremy/codes/Data/coco/images/val2014',
    'valid_info': 'path_to_annotation_file',
(3)修改coco2014_dataset
coco2014_dataset = dataset_base.copy({
    'name': 'COCO 2014',
    # 修改自己的数据集地址

    'train_info': '/home/jeremy/codes/Data/coco/annotations/instances_train2014.json',
    'valid_info': '/home/jeremy/codes/Data/coco/annotations/instances_val2014.json',
(4) coco_base_config = Config({
 # 修改自己的数据集地址
    'dataset': coco2014_dataset,
(5)yolact_base_config = coco_base_config.copy({
   'name': 'yolact_base',

    # Dataset stuff
    'dataset': coco2014_dataset,
    'num_classes': len(coco2014_dataset.class_names) + 1,

    # Image Size
    'max_size': 550,

    # Training params
    'lr_steps': (300, 500, 700, 900),#学习率衰变区间
    'max_iter': 1000,#迭代的次数,batch_size为8,那每8个数据跑一次就是一个iteration

四、训练和预测

1.训练

训练的时候需要把eval.py 中的’–images’的值修改为default=None
训练命令如下几种方式:
(1)使用批量大小为 8(默认值)的基本配置进行训练

python train.py --config=yolact_base_config

(2)训练 yolact_base_config 的 batch_size 修改为 4。

python train.py --config=yolact_base_config --batch_size=4

(3)使用特定的权重文件恢复训练 yolact_base,并从权重文件名中指定的迭代开始。

python train.py --config=yolact_base_config --resume=weights/yolact_base_10_112871.pth --start_iter=-1

2.预测

预测的时候, 再把eval.py 中的’–images’的值修改为default="data/myData/images/test2014:output",,输入文件夹,输出文件夹中间用:间隔开

3.添加打印信息

源码自带的打印的信息,不太友好,没显示具体时间,我们修改下打印的信息

timeNow=time.strftime('%Y-%m-%d %H:%M:%S')
print(
('epoch:[%3d/%7d] ||' + ( ' %s: %.4f |' * len(losses)) + ' total_loss: %.4f || ETA: %s || timer: %s')
 % tuple([epoch, iteration] + loss_labels + [total, eta_str, timeNow]), flush=True)

4.添加可视化

源码中没有关于损失函数和学习率的可视化,我们可以添加这方面的代码
(1)安装相关的库

python -m pip install tensorboard
python -m pip install tensorboardX

(2)添加可视化损失函数和学习率的代码
将导入代码添加到train.py 头部

from tensorboardX import SummaryWriter
writer = SummaryWriter(logdir='./logs/log2', comment='MyNet')

在这里插入图片描述

  writer.add_scalar("loss", loss , iteration)
  writer.add_scalar("learning_rate", optimizer.state_dict()['param_groups'][0]['lr'], iteration)

在这里插入图片描述

总结

提示:这里对文章进行总结:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

德卡先生的信箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值