目录
一.数据集的存放
二.新建模型
三.修改参数
四.定义标签的两种方法
1.直接在imagenet修改
2.新建文件并注册
五.单张图片测试
六.模型评估
首先在mmcls目录下新建data文件用来存我们的数据集
将自己的数据集放入到data文件夹中,我这用的是一个水果的数据集,并且已经划分好了训练集和验证集
打开我们的pycharm工程,以resnet下的resnet18_8xb32_in1k.py为例
先找到configs路径下的resnet,复制resnet18_8xb32_in1k.py的绝对路径
打开train.py文件,将路径粘贴并改为双斜杠,注释掉:
# C:\\Users\\lenovo\\MMCLS1\\mmclassification-master\\configs\\resnet\\resnet18_8xb32_in1k.py
将此路径复制到train运行配置中的形参中,并运行train
这里遇到报错不用管,再打开work_dirs可看到里面生成了一个resnet18_8xb32_in1k.py文件夹,打开后里面有一个resnet18_8xb32_in1k.py文件,我们复制一下这个文件,再打开pycharm
首先修改num_classes,自己数据集有多少个类就修改成多少,注意model中两处num_classes都得改,否侧会显示pred和target不一致。训练中如显存过小可更改size(例如224修改成112等)
其次要改路径,这里训练集和验证集路径改成自己的即可,如有报错路径问题,可尝试改为绝对路径 。
没做测试集,把测试集路径改为验证集一样即可。evaluation = dict(interval=1, metric='accuracy')中的interval改为10,checkpoint_config = dict(interval=1)中interval也改为10
我这设定的是10个epoch保存一次,也可以自己修改
下边我设定的是一共100个epoch,
runner = dict(type='EpochBasedRunner', max_epochs=100)
也可以自己定义。 work_dir可以自己设置路径,我这里是在work_dir文件中新建了一个文件夹作为路径。
imagenet中定义了1000多个类(CLASSES),如果想直接在imagenet修改运行,可直接将这1000多个类替换成自己数据集中训练集对应的标签
我这里修改的是三十个水果种类对应的标签(注意不要用中文,识别不了)
标签修改完后复制我们自己新建模型的绝对路径将其传入到train的形参中,点击确定后,再运行train就可以训练自己的数据集了
修改文件最好不在源文件上修改,故这里我们新建属于我们自己的
先复制上面的imagenet.py文件,粘贴到datesets文件中,弹出名字也可自定义,我这里修改成了fruit30,先把class改成自己的。此处我将ImageNet改成了Fruit30
同样的将里边标签名改成自己数据集中训练集对应的
我们点开datesets下的__init__.py文件,仿照上面的格式添加from .fruit30 import Fruit30
再把我们刚刚新建的类名Fruit30添在后边。
然后我们就可以将自己新建模型的绝对路径将其传入到train的形参中,运行train训练自己的数据集了。
训练完成100个epoch后可以看到我们work_dir目录下生成了如下文件,我们拿epoch_100.pth进行测试,先复制其路径
再打开demo下的image_demo.py,粘贴路径并注释,把我们自己建的模型文件也一并粘贴过来
从我们数据集train里随机复制一张图到demo路径下
我这里复制的图片为1472.jpg,同样将其复制到image_demo.py下粘贴复制注释,如下:
#1472.jpg #../configs/resnet/fruit30_resnet18_8xb32_in1k.py #../tools/work_dirs/fruit30/epoch_100.pth
把我们写好的配置传入image_demo.py的参数中,运行image_demo.py
可看到下面输出了类别标签,与图片相对应
首先我们在work_dir下自己的文件里(我这是fruit30)目录下创建一个文件夹用来保存自己的批量测试的图片,然后在test.py文件里传入参数如下(改为自己的路径)运行test
#../configs/resnet/fruit30_resnet18_8xb32_in1k.py #../tools/work_dirs/fruit30/test1/epoch_100.pth #--show-dir ../tools/work_dirs/fruit30/test1/result #--metrics #accuracy #recall
运行完后可以看到我们新建的文件夹下多了评估好的带标签的图片