43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# TRANSFORME LES FICHIERS .TXT EN MATRICE 8x512, CE SCRIPT EST UTILISE DANS TRAINDATA.PY
|
|
|
|
import torch
|
|
from torch.utils.data import DataLoader, TensorDataset
|
|
import numpy as np
|
|
import os
|
|
|
|
train_batch_size = 16
|
|
data_dir = "C:/DATA/M1/Stages/Fablab/Dataset"
|
|
|
|
LST2 = []
|
|
label = []
|
|
|
|
for ID, sub_dir in enumerate(os.listdir(data_dir)):
|
|
for file in os.listdir(os.path.join(data_dir, sub_dir)):
|
|
label.append(ID)
|
|
|
|
f = open(os.path.join(data_dir, sub_dir, file), 'r+')
|
|
lst_f = []
|
|
|
|
for i in f:
|
|
i = i.replace('\n', '')
|
|
lst_f.append(int(i))
|
|
|
|
# matrice = np.array(lst_f).reshape(8, 512)
|
|
# LST_2D.append(matrice)
|
|
|
|
matrice = np.array(lst_f[:4096]).reshape(8, 512)
|
|
LST2.append(matrice)
|
|
|
|
# X devient (nombre de fichiers, channel, listes, données), avec 1 pour le canal d'entrée requis par EEGNet
|
|
X = torch.Tensor(np.array(LST2)).unsqueeze(1)
|
|
Y = torch.LongTensor(label)
|
|
|
|
# créer le DataLoader
|
|
dataset = TensorDataset(X, Y)
|
|
data_loader = DataLoader(dataset, batch_size=train_batch_size, shuffle=True)
|
|
|
|
print(f' Longueur de la liste: {len(LST2)}')
|
|
print(f' Nombre de fichiers: {len(label)}')
|
|
print(f' Forme de la liste des tensor: {X.shape}')
|
|
print("train batch size:",data_loader.batch_size,
|
|
", num of batch:", len(data_loader)) |