class Dataset(torch.utils.data.Dataset): def __init__(self, root): self.root = root if not os.path.exists(self.root): raise Exception("[!] {} not exists.".format(root)) #sort file names self.input_paths = sorted(glob(os.path.join(self.root, '{}/*_train.npy'.format("GB_data/Real/noise_data/"+Noise+"/train_data")))) self.label_paths = sorted(glob(os.path.join(self.root, '{}/*_lab.npy'.format("GB_data/Real/noise_data/"+Noise+"/train_lab")))) self.name = os.path.basename(root) #print(self.input_paths) #print(self.label_paths) if len(self.input_paths) == 0 or len(self.label_paths) == 0: raise Exception("No signal/labels are found in {}".format(self.root))这段代码的详细意思
时间: 2024-04-03 17:35:07 浏览: 65
python torch.utils.data.DataLoader使用方法
5星 · 资源好评率100%
这段代码定义了一个名为 Dataset 的类,继承了 PyTorch 中的 Dataset 类,并定义了类的构造函数 `__init__`。该构造函数接受一个参数 `root`,表示数据集的根目录。
在构造函数中,首先判断根目录是否存在,如果不存在则抛出异常。然后通过 `glob` 函数和 `os.path.join` 函数获取输入数据和标签数据的文件路径,并按照文件名排序,将排序后的路径存储在 `self.input_paths` 和 `self.label_paths` 中。其中,输入数据文件名以 `_train.npy` 结尾,标签数据文件名以 `_lab.npy` 结尾。
接着,获取数据集的名称,使用 `os.path.basename` 函数获取根目录的最后一级目录名,并将其赋值给类的属性 `name`。
最后,判断输入数据集和标签数据集是否为空,如果为空则抛出异常。
阅读全文