1 Star 0 Fork 0

Yang-noob/scADL

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
read_datasets.py 1.64 KB
一键复制 编辑 原始数据 按行查看 历史
import numpy as np
import torch
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self, dataset,label, train=True, percentage:float = 0.8, transform=False):
self.dataset = dataset
self.label = label
self.if_train = train
self.percentage = percentage
self.transform = transform
self.dataset_len = dataset.shape[1]
if 0 <= self.percentage <= 1:
if self.if_train:
self.sample_num = list(range(int(self.dataset_len * percentage))) # 用前800个样本作为训练集
else:
self.sample_num = list(
range(int(self.dataset_len * (1 - percentage)), self.dataset_len)) # 用后200个样本作为测试集
else:
raise ValueError("percentage范围: [0,1]")
def __len__(self):
return len(self.sample_num)
def __getitem__(self, index):
sample = self.dataset[:, self.sample_num[index]]
label = self.label[self.sample_num[index]]
if self.transform:
n = int(np.sqrt(len(sample))) # 计算方形矩阵边长
w = n
h = n
if w * h == len(sample):
sample = sample.reshape(w, h) # 转为方形矩阵
else:
while w * (h + 1) < len(sample):
h += 1
sample = np.pad(sample, (0, w * (h + 1) - len(sample)), mode='constant', constant_values=0) # 填充0
sample = sample.reshape(w, h + 1) # 转为方形矩阵
sample = sample.reshape(1, *sample.shape)
return torch.Tensor(sample), torch.Tensor(label)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Yang-noob/sc-adl.git
git@gitee.com:Yang-noob/sc-adl.git
Yang-noob
sc-adl
scADL
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385