20250224 commits: Data Argumentation had done 5x, and validation Accuracy just only have 33%
This commit is contained in:
parent
16c7a074bb
commit
7cb89d2ff1
|
|
@ -7,6 +7,7 @@ from Training_Tools.Tools import Tool
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
import torch
|
import torch
|
||||||
|
import cv2
|
||||||
|
|
||||||
class Image_generator():
|
class Image_generator():
|
||||||
'''製作資料強化'''
|
'''製作資料強化'''
|
||||||
|
|
@ -26,36 +27,37 @@ class Image_generator():
|
||||||
這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
||||||
產生出資料強化後的影像
|
產生出資料強化後的影像
|
||||||
'''
|
'''
|
||||||
print("\nAugmentation one Generator image")
|
for i in range(1, 5, 1):
|
||||||
data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 1, data_size)
|
print("\nAugmentation one Generator image")
|
||||||
self.stop += data_size
|
data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, i, data_size)
|
||||||
|
self.stop += data_size
|
||||||
|
|
||||||
# 製作標準資料增強
|
# # 製作標準資料增強
|
||||||
'''
|
# '''
|
||||||
這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
# 這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
||||||
產生出資料強化後的影像
|
# 產生出資料強化後的影像
|
||||||
'''
|
# '''
|
||||||
print("\nAugmentation two Generator image")
|
# print("\nAugmentation two Generator image")
|
||||||
data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 2, data_size)
|
# data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 2, data_size)
|
||||||
self.stop += data_size
|
# self.stop += data_size
|
||||||
|
|
||||||
# 製作標準資料增強
|
# # 製作標準資料增強
|
||||||
'''
|
# '''
|
||||||
這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
# 這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
||||||
產生出資料強化後的影像
|
# 產生出資料強化後的影像
|
||||||
'''
|
# '''
|
||||||
print("\nAugmentation three Generator image")
|
# print("\nAugmentation three Generator image")
|
||||||
data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 3, data_size)
|
# data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 3, data_size)
|
||||||
self.stop += data_size
|
# self.stop += data_size
|
||||||
|
|
||||||
|
|
||||||
# 製作標準資料增強
|
# # 製作標準資料增強
|
||||||
'''
|
# '''
|
||||||
這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
# 這裡我想要做的是依照paper上的資料強化IMAGE DATA COLLECTION AND IMPLEMENTATION OF DEEP LEARNING-BASED MODEL IN DETECTING MONKEYPOX DISEASE USING MODIFIED VGG16
|
||||||
產生出資料強化後的影像
|
# 產生出資料強化後的影像
|
||||||
'''
|
# '''
|
||||||
print("\nAugmentation four Generator image")
|
# print("\nAugmentation four Generator image")
|
||||||
data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 4, data_size)
|
# data_size = self.get_processing_Augmentation(Training_Dict_Data_Root, 4, data_size)
|
||||||
|
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
@ -97,7 +99,12 @@ class Image_generator():
|
||||||
|
|
||||||
img = img.permute(2, 0, 1)
|
img = img.permute(2, 0, 1)
|
||||||
img = Transform(img)
|
img = Transform(img)
|
||||||
img_pil = transforms.ToPILImage()(img)
|
|
||||||
|
# 轉換為 NumPy 陣列並從 BGR 轉為 RGB
|
||||||
|
img_np = img.numpy().transpose(1, 2, 0) # 轉回 HWC 格式
|
||||||
|
img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB) # BGR 轉 RGB
|
||||||
|
|
||||||
|
img_pil = transforms.ToPILImage()(img_np)
|
||||||
File.Save_PIL_File("image_" + label + str(data_size) + ".png", save_root, img_pil) # 存檔
|
File.Save_PIL_File("image_" + label + str(data_size) + ".png", save_root, img_pil) # 存檔
|
||||||
data_size += 1
|
data_size += 1
|
||||||
|
|
||||||
|
|
@ -109,7 +116,7 @@ class Image_generator():
|
||||||
img = image_processing.Data_Augmentation_Image(self.get_data_roots[label])
|
img = image_processing.Data_Augmentation_Image(self.get_data_roots[label])
|
||||||
img = torch.tensor(img)
|
img = torch.tensor(img)
|
||||||
|
|
||||||
self.stop = len(img) * 1.5
|
self.stop = len(img) * 5
|
||||||
return img
|
return img
|
||||||
|
|
||||||
def Generator_Content(self, judge): # 影像資料增強
|
def Generator_Content(self, judge): # 影像資料增強
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -45,8 +45,8 @@ class Load_Indepentend_Data():
|
||||||
Classify_Label.append(test_label)
|
Classify_Label.append(test_label)
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
original_test_root = self.merge.merge_data_main(classify_image, 0, 2)
|
original_test_root = self.merge.merge_data_main(classify_image, 0)
|
||||||
original_test_label = self.merge.merge_data_main(Classify_Label, 0, 2)
|
original_test_label = self.merge.merge_data_main(Classify_Label, 0)
|
||||||
|
|
||||||
test = []
|
test = []
|
||||||
test = image_processing.Data_Augmentation_Image(original_test_root)
|
test = image_processing.Data_Augmentation_Image(original_test_root)
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -3,7 +3,6 @@ from draw_tools.Grad_cam import Grad_CAM
|
||||||
from Load_process.Load_Indepentend import Load_Indepentend_Data
|
from Load_process.Load_Indepentend import Load_Indepentend_Data
|
||||||
from _validation.ValidationTheEnterData import validation_the_enter_data
|
from _validation.ValidationTheEnterData import validation_the_enter_data
|
||||||
from Load_process.file_processing import Process_File
|
from Load_process.file_processing import Process_File
|
||||||
from merge_class.merge import merge
|
|
||||||
from sklearn.metrics import confusion_matrix
|
from sklearn.metrics import confusion_matrix
|
||||||
from experiments.pytorch_Model import ModifiedXception
|
from experiments.pytorch_Model import ModifiedXception
|
||||||
from experiments.Model_All_Step import All_Step
|
from experiments.Model_All_Step import All_Step
|
||||||
|
|
@ -48,7 +47,6 @@ class experiments():
|
||||||
|
|
||||||
self.validation_obj = validation_the_enter_data() # 呼叫驗證物件
|
self.validation_obj = validation_the_enter_data() # 呼叫驗證物件
|
||||||
self.cut_image = Load_Indepentend_Data(self.Topic_Tool.Get_Data_Label(), self.Topic_Tool.Get_OneHot_Encording_Label()) # 呼叫切割影像物件
|
self.cut_image = Load_Indepentend_Data(self.Topic_Tool.Get_Data_Label(), self.Topic_Tool.Get_OneHot_Encording_Label()) # 呼叫切割影像物件
|
||||||
self.merge = merge()
|
|
||||||
|
|
||||||
self.model_name = Model_Name # 取名,告訴我我是用哪個模型(可能是預處理模型/自己設計的模型)
|
self.model_name = Model_Name # 取名,告訴我我是用哪個模型(可能是預處理模型/自己設計的模型)
|
||||||
self.experiment_name = Experiment_Name
|
self.experiment_name = Experiment_Name
|
||||||
|
|
@ -105,7 +103,7 @@ class experiments():
|
||||||
Losses = [train_losses, val_losses]
|
Losses = [train_losses, val_losses]
|
||||||
Accuracies = [train_accuracies, val_accuracies]
|
Accuracies = [train_accuracies, val_accuracies]
|
||||||
plot_history(Epoch + 1, Losses, Accuracies, "train" + str(counter), self.experiment_name) # 將訓練結果化成圖,並將化出來的圖丟出去儲存
|
plot_history(Epoch + 1, Losses, Accuracies, "train" + str(counter), self.experiment_name) # 將訓練結果化成圖,並將化出來的圖丟出去儲存
|
||||||
self.Grad.process_main(cnn_model, counter, Testing_Dataset)
|
# self.Grad.process_main(cnn_model, counter, Testing_Dataset)
|
||||||
|
|
||||||
return loss, accuracy, precision, recall, AUC, f1
|
return loss, accuracy, precision, recall, AUC, f1
|
||||||
|
|
||||||
|
|
|
||||||
1
main.py
1
main.py
|
|
@ -31,6 +31,7 @@ if __name__ == "__main__":
|
||||||
# 取得One-hot encording 的資料
|
# 取得One-hot encording 的資料
|
||||||
tool.Set_OneHotEncording(Labels)
|
tool.Set_OneHotEncording(Labels)
|
||||||
Encording_Label = tool.Get_OneHot_Encording_Label()
|
Encording_Label = tool.Get_OneHot_Encording_Label()
|
||||||
|
|
||||||
Label_Length = len(Labels)
|
Label_Length = len(Labels)
|
||||||
Classification = 3 # 分類數量
|
Classification = 3 # 分類數量
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -18,10 +18,10 @@ class merge:
|
||||||
def get_judge_status(self):
|
def get_judge_status(self):
|
||||||
return self.__judge
|
return self.__judge
|
||||||
|
|
||||||
def merge_all_image_data(self, Classify1, Classify2):
|
def merge_all_image_data(self, Classify1, Classify2, Number_Of_Classes = 2):
|
||||||
merged_data = [Classify1, Classify2]
|
merged_data = [Classify1, Classify2]
|
||||||
|
|
||||||
return self.merge_data_main(merged_data, 0, 2)
|
return self.merge_data_main(merged_data, 0, Number_Of_Classes)
|
||||||
|
|
||||||
def merge_data_main(self, merge_data, merge_start_index, total_merge_number = 3):
|
def merge_data_main(self, merge_data, merge_start_index, total_merge_number = 3):
|
||||||
'''
|
'''
|
||||||
|
|
@ -31,6 +31,7 @@ class merge:
|
||||||
* merge_start_index: 合併資料的起始位置
|
* merge_start_index: 合併資料的起始位置
|
||||||
* total_merge_numbers: 總共要合併的數量
|
* total_merge_numbers: 總共要合併的數量
|
||||||
'''
|
'''
|
||||||
|
|
||||||
if self.validation.validation_type(merge_data, dict):
|
if self.validation.validation_type(merge_data, dict):
|
||||||
self.set_merge_data(merge_data)
|
self.set_merge_data(merge_data)
|
||||||
return self.merge_dict_to_list_data(merge_start_index, total_merge_number)
|
return self.merge_dict_to_list_data(merge_start_index, total_merge_number)
|
||||||
|
|
@ -50,12 +51,12 @@ class merge:
|
||||||
|
|
||||||
def merge_dict_to_dict(self, original : dict, myself):
|
def merge_dict_to_dict(self, original : dict, myself):
|
||||||
keys = list(original.keys())
|
keys = list(original.keys())
|
||||||
data = {
|
data = {}
|
||||||
keys[0]: [],
|
|
||||||
keys[1]: [],
|
|
||||||
}
|
|
||||||
|
|
||||||
for key in keys:
|
for key in keys:
|
||||||
|
Content = {key : []}
|
||||||
|
data.update(Content)
|
||||||
|
|
||||||
tempData = [original[key], myself[key]]
|
tempData = [original[key], myself[key]]
|
||||||
end = 2
|
end = 2
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user