WriteViT / train.py
hoainam1706's picture
Upload folder using huggingface_hub
4acbfc7 verified
Raw
History Blame Contribute Delete
1.87 kB
import os
import time
from data.dataset import TextDataset
from models.model import WriteViT
from params import *
def main():
init_project()
TextDatasetObj = TextDataset(num_examples = NUM_EXAMPLES)
dataset = torch.utils.data.DataLoader(
TextDatasetObj,
batch_size=batch_size,
shuffle=True,
num_workers=0,
pin_memory=True, drop_last=True,
collate_fn=TextDatasetObj.collate_fn)
model = WriteViT(backbone=BACKBONE).to(DEVICE)
os.makedirs('saved_models', exist_ok = True)
MODEL_PATH = os.path.join('saved_models', EXP_NAME)
if os.path.isdir(MODEL_PATH) and RESUME:
model.load_state_dict(torch.load(MODEL_PATH+'/model.pth'))
print (MODEL_PATH+' : Model loaded Successfully')
else:
if not os.path.isdir(MODEL_PATH): os.mkdir(MODEL_PATH)
for epoch in range(EPOCHS):
start_time = time.time()
for i,data in enumerate(dataset):
if (i % NUM_CRITIC_GOCR_TRAIN) == 0:
model._set_input(data)
model.optimize_G_only()
model.optimize_G_step()
if (i % NUM_CRITIC_DOCR_TRAIN) == 0:
model._set_input(data)
model.optimize_D_OCR_W()
model.optimize_D_OCR_W_step()
end_time = time.time()
losses = model.get_current_losses()
print ({'EPOCH':epoch, 'TIME':end_time-start_time, 'LOSSES': losses})
if epoch % SAVE_MODEL == 0: torch.save(model.state_dict(), MODEL_PATH+ '/model.pth')
if epoch % SAVE_MODEL_HISTORY == 0: torch.save(model.state_dict(), MODEL_PATH+ '/model'+str(epoch)+'.pth')
if __name__ == "__main__":
main()