1.資料集前處理2nd
(1) 所有資料集貼標(label),以做後續模型訓練,共有4個步驟
Step0: Import & set path
from os import listdir
from tqdm import tqdm
import numpy as np
import pandas as pd
prjt_path = r"D:\JPNB\learning_AIdea2022"
train_data_path = str(prjt_path + r"\train_data")
output_path = str(prjt_path + r"\output")
Step1: 疊代讀取圖片所在資料夾,建立字典(dict)後轉成dataframe
def get_all_files(path):
files_List = listdir(path) # list
return files_List
plant_class_list = get_all_files(train_data_path)
# Create dict to save img_name:plant_class pairs
plant_class_img_name_dict = {}
for plant_class in tqdm(class_list):
folder_path = str(train_data_path + r"\{}".format(plant_class))
img_name_list = get_all_files(folder_path)
for img_name in img_name_list:
plant_class_img_name_dict[img_name] = plant_class
plant_class_img_name_dict
# Convert dict to dataframe
plant_class_df = pd.DataFrame(plant_class_img_name_dict.items(), columns=["Img", "label"])
plant_class_df.head(5)
Step2: 讀取官方提供的圖片資訊
tag_df = pd.read_csv(prjt_path + r"\tag_locCoor.csv", encoding = "Big5")
tag_df.head()
Step3:將前述兩步驟的資料表串接,即可得到每張圖片的完整資訊。
tag_df_label = tag_df.merge(plant_class_df, on="Img", how="left") # left join
tag_df_label.to_csv(prjt_path + r"\tag_locCoor_label.csv", encoding = "Big5") # save
print(tag_df_label.columns)
tag_df_label.head(5)
心得小語:
今日工作時有兩件事特別開心: 被同事請教「工具變數(Instrumental variable, IV)」的統計思維和套件操作,離大學記憶實在有點遙遠,趕緊求助Google大神,雖然中間有一度快被同事問倒,但似乎有幫忙到一點,能夠切磋交流感到特別開心呀!
第二件事情則是和同事討論資料整理,因為大批字串編碼要整合並按字串長度分類,這些資料目前全都攤在一個word檔案(還不是excel或csv??,今天發完鐵人文章後,就要有請Python出馬,把這些代碼自動化統一整理,對於能幫忙同事避免手動輸入資料,感到特別興奮和期待呀~~!!
明天見囉~各位
今日工時: 50min*1
對於能成為一位能幫助他人的人,感到十分滿足愉快,也有更多動力激勵自己持續學習!
MOTIVATION & SATISFACTION come from helping others.