- scene数据集地址
https://mulan.sourceforge.net/datasets-mlc.html
import torch
from torch.utils.data import Dataset
from scipy.io import arff
class SceneDataset(Dataset):
"""
[scene_num, scene_feature]
train: [1211, 294]
test: [1196, 294]
label
[6,]
"""
meta = {'Beach': 0, 'Sunset': 1, 'FallFoliage': 2, 'Field': 3, 'Mountain': 4, 'Urban': 5}
def __init__(self, root_path=None, transform=None):
self.root_path = root_path
self.transform = transform
self.data = self._get_data_info()
def __getitem__(self, index):
if self.transform is not None:
self.data[index][0] = self.transform(self.data[index][0])
return self.data[index][0], self.data[index][1]
def __len__(self):
return len(self.data)
def _get_data_info(self):
_data_arff, _ = arff.loadarff(self.root_path)
_data = []
for i in range(len(_data_arff)):
_it = list(_data_arff[i])
_data.append([torch.tensor(_it[:-6], dtype=torch.float), torch.tensor([int(bytes.decode(encode)) for encode in _it[-6:]], dtype=torch.float)])
return _data