文章目录
数据集要求以文章 multi-label learning from single positive label为例;
文件夹结构
Flickr/
formatted_train_images.npy
formatted_train_labels.npy
formatted_train_labels_obs.npy
formatted_val_images.npy
formatted_val_labels.npy
formatted_val_labels_obs.npy
val_features_imagenet_resnet50.npy
train_features_imagenet_resnet50.npy
我是这么放置的,其中含有obs
的文件是通过运行文件夹preproc
下的generate_observed_labels.py
运行之后生成的;
如何使用
继承torch.utils.data.Dataset构建新的class
构建新的Dataloader
玩一玩Dataloader
iterator 迭代器
data_iterator = iter(train_loader)
((inputs_w, inputs_s), targets) = next(data_iterator)
可以用迭代器来处理,不过要一次又一次迭代,手写next
;
enumerate
也可以放在for
循环里,用enumerate
来处理:
for i, ((inputs_w, inputs_s), targets) in enumerate(train_loader):
至于括号里面()
用什么形式的变量来接受,则取决于dataloader怎么构造的;
如果不知道写什么,比如说为什么不直接写input
,而要写(inputs_w, inputs_s)
呢,那么可以先用一个input
试一试,打印出来发现是一个list
类型的,那就可以改写成更合适的其他形式了;
VOC
VOCdevkit/
|--VOC2012/
formatted_train_images.npy
formatted_train_labels_obs.npy
… …