【论文源码实战】NTS-Net模型:自监督机制实现细粒度分类

前言

NTS-Net(Neural Task Scheduler Network)是一种针对多任务学习设计的深度学习模型,它特别适用于细粒度分类任务,这类任务涉及到将目标划分为大量细微差别的类别。例如,在动物分类中区分不同品种的鸟类或犬类。细粒度分类由于类别间的相似性较高,因此对特征提取和区分能力要求很高。

一、环境配置

创建专属环境

conda create -n ntsnet python=3.9

激活环境

conda activate ntsnet

安装 Pytorch GPU 环境

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "torch-1.13.0+cu116-cp39-cp39-win_amd64.whl"

pip install "torchvision-0.14.1+cu117-cp37-cp37m-win_amd64.whl" -i https://pypi.tuna.tsinghua.edu.cn/simple

二、代码测试

数据集

使用的数据集是 Stanford Dogs Dataset

超过20000张120种狗的图片,斯坦福狗数据集包含了来自世界各地的120种狗的图片。此数据集是使用ImageNet中的图像和注释构建的,用于细粒度图像分类任务。它最初是为精细纹理图像分类而收集的,这是一个具有挑战性的问题,因为某些狗的特征几乎相同,或者颜色和年龄不同。

●类别数量:120

●图像数量:20580

●标注:类标签、边界框

划分数据集

def split_data(split_path):
    f_train = open(split_path + "/train.txt", "w", encoding="utf-8")
    f_val = open(split_path + "/val.txt", "w", encoding="utf-8")
    f_label = open(split_path + "/label.txt", "w", encoding="utf-8")

    for name in tqdm(os.listdir(os.path.join(split_path, 'images')), desc="process data",
                     total=len(os.listdir(os.path.join(split_path, 'images')))):
        file = [os.path.joi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牧锦程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值