上篇最後在生成csv檔案和triplet檔案。csv已經好了,triplet還沒;
triplet檔案在dataloader_facenet_mask.py檔案中。看一下具體是怎麼用的。
首先看v2 import的了哪些內容:
from data_loader.data_loader_facenet_mask import test_dataloader,v9_train_dataloader
from data_loader.data_loader_facenet_mask import lfwestmask_dataloader
以下是載入進來的一些例項,路徑已經全部備註,防止出錯
# 測試資料生成器
test_dataloader = torch.utils.data.dataloader(
dataset = testdataset(
dir= config[
'lfw_data_path'],
# 'datasets/lfw_funneled'
pairs_path = config[
'lfw_pairs'],
# 'datasets/lfw_pairs.txt'
predicter_path = config[
'predicter_path'],
# 'data_preprocessing/shape_predictor_68_face_landmarks.dat'
img_size = config[
'image_size'],
# 256
transform = test_data_transforms,
test_pairs_paths = config[
'test_pairs_paths'
]# 'datasets/test_pairs.npy'),
batch_size = config[
'test_batch_size'],
# 38
num_workers = config[
'num_workers'],
# 0 shuffle =
false
)
# 訓練資料生成器
from config_notmask import config as notcf
v9_train_dataloader = torch.utils.data.dataloader(
dataset = traindataset(
face_dir = config[
'train_data_path'],
# 'datasets/vggface2_train_face_mask'
mask_dir = notcf[
'mask_data_path'],
# 'datasets/vggface2_train_mask_mask'
csv_name = config[
'train_data_index'],
# 'datasets/vggface2_train_face_mask.csv'
num_triplets = config[
'num_train_triplets'],
# 1000
training_triplets_path = config[
'train_triplets_path'],
#'datasets/training_triplets_' + str(config['num_train_triplets']) + 'mask.npy'
transform = train_data_transforms,
txt_mask=
'mask'
, predicter_path = config[
'predicter_path'],
# 'data_preprocessing/shape_predictor_68_face_landmarks.dat'
img_size = config[
'image_size'
]# 256),
batch_size = config[
'train_batch_size'],
# 38
num_workers = config[
'num_workers'],
# 0 shuffle =
false
)
# lfw戴口罩測試資料生成器
lfwestmask_dataloader = torch.utils.data.dataloader(
dataset=lfwestmaskdataset(
dir=config[
'lfw_data_path'],
# 'datasets/lfw_funneled'
pairs_path=config[
'lfw_pairs'],
# 'datasets/lfw_pairs.txt'
predicter_path=config[
'predicter_path'],
# 'data_preprocessing/shape_predictor_68_face_landmarks.dat'
img_size=config[
'image_size'],
# 256
transform=test_data_transforms,
test_pairs_paths=config[
'test_pairs_paths'
]#'datasets/test_pairs_1.npy'),
batch_size=config[
'test_batch_size'],
# 38
num_workers=config[
'num_workers'],
# 0 shuffle=
false
)
初始載入模型路徑的地方,因為沒有給model_pathi賦初值,所以會報變數未定義的錯。
解決方案:賦乙個空str
model_path = os.path.join(pwd,
'model_training_checkpoints'
)x =
[int
(i.split(
'_')[4
])for i in os.listdir(model_path)
if'v2'
in i]
x.sort(
)model_pathi =
''# 賦空string防止未定義變數報錯
for i in os.listdir(model_path):if
(len
(x)!=0)
and(
'epoch_'
+str
(x[-1]
)in i)
and(
'v2'
in i)
: model_pathi = os.path.join(model_path, i)
break
報錯沒有cuda,因為前面cuda_environ設定的是』2』, 但aistudio是單卡,從0開始。要寫 『0』。
訓練很快 測試驗證非常慢。不知道是不是batchsize38太小了。
跑完了乙個epoch看下log:感覺好像和之前對比,也沒有多大的提公升。應該是epoch少了,再等等看。至少跑通了
更新 :五個epoch了
week7 作業C TT的美夢
這一晚,tt 做了個美夢!在夢中,tt 的願望成真了,他成為了喵星的統領!喵星上有 n 個商業城市,編號 1 n,其中 1 號城市是 tt 所在的城市,即首都。喵星上共有 m 條有向道路供商業城市相互往來。但是隨著喵星商業的日漸繁榮,有些道路變得非常擁擠。正在 tt 為之苦惱之時,他的魔法小貓咪提出...
week7 作業A TT的魔法貓
眾所周知,tt 有乙隻魔法貓。這一天,tt 正在專心致志地玩 貓和老鼠 遊戲,然而比賽還沒開始,聰明的魔法貓便告訴了 tt 比賽的最終結果。tt 非常詫異,不僅詫異於他的小貓咪居然會說話,更詫異於這可愛的小不點為何有如此魔力?魔法貓告訴 tt,它其實擁有一張遊戲勝負表,上面有 n 個人以及 m 個勝...
week7 作業B TT的旅行日記
眾所周知,tt 有乙隻魔法貓。今天他在 b 站上開啟了一次旅行直播,記錄他與魔法貓在喵星旅遊時的奇遇。tt 從家裡出發,準備乘坐貓貓快線前往喵星機場。貓貓快線分為經濟線和商業線兩種,它們的速度與價錢都不同。當然啦,商業線要比經濟線貴,tt 平常只能坐經濟線,但是今天 tt 的魔法貓變出了一張商業線車...