import pandas as pd from torch.nn import functional import torch class Tool: def __init__(self) -> None: self.__ICG_Training_Root = "" self.__Normal_Training_Root = "" self.__Comprehensive_Training_Root = "" self.__ICG_Test_Data_Root = "" self.__Normal_Test_Data_Root = "" self.__Comprehensive_Testing_Root = "" self.__ICG_ImageGenerator_Data_Root = "" self.__Normal_ImageGenerator_Data_Root = "" self.__Comprehensive_Generator_Root = "" self.__Labels = [] self.__OneHot_Encording = [] pass def Set_Labels(self): self.__Labels = ["stomach_cancer_Crop", "Normal_Crop", "Have_Question_Crop"] def Set_Save_Roots(self): self.__ICG_Training_Root = "../Dataset/Training/CA_ICG" self.__Normal_Training_Root = "../Dataset/Training/CA" self.__Comprehensive_Training_Root = "../Dataset/Training/Mixed" self.__ICG_Test_Data_Root = "../Dataset/Training/CA_ICG_TestData" self.__Normal_Test_Data_Root = "../Dataset/Training/Normal_TestData" self.__Comprehensive_Testing_Root = "../Dataset/Training/Comprehensive_TestData" self.__ICG_ImageGenerator_Data_Root = "../Dataset/Training/ICG_ImageGenerator" self.__Normal_ImageGenerator_Data_Root = "../Dataset/Training/Normal_ImageGenerator" self.__Comprehensive_Generator_Root = "../Dataset/Training/Comprehensive_ImageGenerator" def Set_OneHotEncording(self, content): Counter = [] for i in range(len(content)): Counter.append(i) Counter = torch.tensor(Counter) self.__OneHot_Encording = functional.one_hot(Counter, len(content)) pass def Get_Data_Label(self): ''' 取得所需資料的Labels ''' return self.__Labels def Get_Save_Roots(self, choose): '''回傳結果為Train, test, validation choose = 1 => 取白光 Label else => 取濾光 Label 若choose != 1 || choose != 2 => 會回傳四個結果 ''' if choose == 1: return self.__ICG_Training_Root, self.__ICG_Test_Data_Root if choose == 2: return self.__Normal_Training_Root, self.__Normal_Test_Data_Root else: return self.__Comprehensive_Training_Root, self.__Comprehensive_Testing_Root def Get_Generator_Save_Roots(self, choose): '''回傳結果為Train, test, validation''' if choose == 1: return self.__ICG_ImageGenerator_Data_Root if choose == 2: return self.__Normal_ImageGenerator_Data_Root else: return self.__Comprehensive_Generator_Root def Get_OneHot_Encording_Label(self): return self.__OneHot_Encording