From 0dd4b0597788bf9081766708ebd5ca8437bde096 Mon Sep 17 00:00:00 2001 From: newbie Date: Thu, 28 Nov 2024 13:42:32 +0800 Subject: [PATCH] remove unuse conde --- Qtorch/Models/Qmlp.py | 12 ++------ Qtorch/Models/Qnn.py | 64 ++----------------------------------------- main.py | 6 ++-- 3 files changed, 8 insertions(+), 74 deletions(-) diff --git a/Qtorch/Models/Qmlp.py b/Qtorch/Models/Qmlp.py index aeefd6e..2ada663 100644 --- a/Qtorch/Models/Qmlp.py +++ b/Qtorch/Models/Qmlp.py @@ -60,7 +60,6 @@ class Qmlp(nn.Module): return x def __prepare_data(self): - # Step 2: Prepare the data X_train_tensor = torch.tensor(self.X_train, dtype=torch.float32) self.y_train = LABEL_ENCODER.fit_transform(self.y_train) @@ -151,14 +150,7 @@ class Qmlp(nn.Module): print(f"Early stopping at epoch {epoch+1}") break - if self.labels: - # labels_encoded = LABEL_ENCODER.fit(self.labels) - self.cm = confusion_matrix(all_labels, all_predicted, normalize='true') - else: - self.cm = confusion_matrix(all_labels, all_predicted, normalize='true') - - - # self.cm = confusion_matrix(all_labels, all_predicted, normalize='true') + self.cm = confusion_matrix(all_labels, all_predicted, normalize='true') print(self.cm) return @@ -169,10 +161,10 @@ class Qmlp(nn.Module): return pd.DataFrame(self.epoch_data) def fit(self, epoch_times = 100): - train_loader, test_loader = self.__prepare_data() self.__train_model(train_loader, test_loader, epochs_times=epoch_times) return + def __init_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): diff --git a/Qtorch/Models/Qnn.py b/Qtorch/Models/Qnn.py index b35b439..873ea15 100644 --- a/Qtorch/Models/Qnn.py +++ b/Qtorch/Models/Qnn.py @@ -12,29 +12,14 @@ from Qfunctions.saveToxlsx import save_to_xlsx as stx class Qnn(nn.Module, ABC): - def __init__(self, data, labels=None, test_size=0.2, random_state=None): + def __init__(self, labels=None): super(Qnn, self).__init__() self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - # 保存原始labe, 混淆矩阵使用 + # 保存原始label, 混淆矩阵使用 self.original_labels = labels - # 划分训练集和测试集 - X_train, X_test, y_train, y_test, self.labels = ds( - data=data, - labels=labels, - test_size=test_size, - random_state=random_state - ) - - self.train_loader, self.test_loader = self.__prepare_data( - X_train=X_train, - y_train=y_train, - X_test=X_test, - y_test=y_test - ) - # 定义结果 self.result = { 'acc_and_loss' : { @@ -52,10 +37,6 @@ class Qnn(nn.Module, ABC): # 定义损失函数 def hinge_loss(self, output, target): pass - - @abstractmethod - def train_model(self, train_loader, test_loader, epochs): - pass def confusion_matrix(self, test_outputs): predicted = torch.argmax(test_outputs, dim=1) @@ -63,43 +44,4 @@ class Qnn(nn.Module, ABC): return cm(predicted.cpu(), true_label.cpu()) def fit(self, epochs = 100): - self.train_model(epochs) - - def save(self, project_name): - for filename, data in self.result.items(): - if filename == 'confusion_matrix': - data = pd.DataFrame(data, columns=self.original_labels, index=self.original_labels) - stx(project_name, filename, data) - else: - data = pd.DataFrame(data) - stx(project_name, filename, data) - - def __prepare_data(self, X_train, y_train, X_test, y_test): - - X_train_tensor = torch.tensor(X_train, dtype=torch.float32) - y_train_tensor = torch.tensor(y_train, dtype=torch.long) - - X_test_tensor = torch.tensor(X_test, dtype=torch.float32) - y_test_tensor = torch.tensor(y_test, dtype=torch.long) - - train_dataset = TensorDataset(X_train_tensor, y_train_tensor) - test_dataset = TensorDataset(X_test_tensor, y_test_tensor) - - train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True) - test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False) - - print(train_loader, test_loader) - - return train_loader, test_loader - - - - - - - - - - - - + self.train_model(epochs) \ No newline at end of file diff --git a/main.py b/main.py index ee34bc6..6445843 100644 --- a/main.py +++ b/main.py @@ -5,9 +5,9 @@ from Qfunctions.loaData import load_data as dLoader from sklearn.decomposition import PCA def main(): - projet_name = '###########' # 输入元数据文件夹名称 - label_names =[] # 请在[]内输入每一个分类的名称 - data = dLoader(projet_name, label_names, isDir=False) + projet_name = '20241112Numbers' # 输入元数据文件夹名称 + label_names =['1', '2', '3', '4', '5', '6', '7' ,'8', '9'] # 请在[]内输入每一个分类的名称 + data = dLoader(projet_name, label_names, isDir=False, fileClass='xls') X_train, X_test, y_train, y_test, encoder = divSet( data=data, labels=label_names, test_size= 0.3 )