Swim Transformer 图像分类项目从自定义数据集开始
# 具体可以参考CSDN的博客文章:https://blog.csdn.net/_?type=blog
# 因为预训练权重太大,这里没法上传,自行下载后放在 weights就行
https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224_22k.pth
'''
# 项目不需要任何更改!!操作简单,包含从制作数据集到训练、预测的完整过程
# 代码会导入 swin_base_patch4_window7_224_in22k 模型,并载入官方的预训练模型
# 训练:代码直接运行 train.py 会自动训练,可以完全不用更改,分类的类别个数会自动生成
# 预测:直接运行 predict.py 文件即可,代码会自动预测 inference 文件夹下所以图像
'''
# 0. 需要配置环境!!
pip install -r requirements.txt
# 运行顺序:
1. 运行爬虫脚本,下载关键词图像 Swin_Transformermy_dataset_from_netmain.py
config 改为Baidu API,Max number改成想要下载的图像个数,线程数建议小一点,要不然会漏下
输出目录不用改,会自动生成,根据关键词下载,也可以载入txt文件,按照下面摆放!
'''
钢铁侠
美国队长
雷神
绿巨人
黑寡妇
鹰眼
''''
2. 定义数据集(将爬取的图像去除损坏的图像,划分训练集和测试集后,按照代码定义的样子摆放好)
# 运行 process_data.py
Tips :下载的关键词是中文的话,需要将名字改成英文!
Tips : 有些无法预览的图像,删不删除都可以,为了可视化,最好删除
3. 开始训练,在 `train.py` 脚本中更改下面超参数(可以直接傻瓜运行,什么都不需要更改)
# num_classes 会自动生成,不需要定义!!
# 冻结权重,因为数据集的不同,设定为True 网络的效果会更好。设置为 False ,可以加快训练,并且精度也不会损失的太多
parser.add_argument('--epochs', type=int, default=50)
parser.add_argument('--batch-size', type=int, default=32)
parser.add_argument('--lr', type=float, default=0.001)
parser.add_argument('--lrf', type=float, default=0.01)
parser.add_argument('--freeze-layers', type=bool, default=False) # 是否冻结权重
4. 预测,运行predict.py即可,不需要更改任何参数,num-classes或者mean、std代码都会自动生成(可以直接傻瓜运行,什么都不需要更改)
# TODO 一些问题
预测脚本会重新导入训练集,计算train mean 和train std,这样难免会浪费时间
如果项目在实际环境中运行,可以训练好网络,在predict.py 脚本中,将num_classes,mean,std自己根据任务设定好,这样可以减少不必要的计算
model = create_model(num_classes=num_classes) # 根据分类个数更改
mean, std = get_mean_std() # 根据训练日志的 txt 文件更改
到此这篇transunet复现(deepsort复现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/59202.html