from config import config from data import preprocess from utils import utils # config 저장 utils.save_config() # 이미지 경로 및 캡션 불러오기 img_paths, captions = preprocess.get_path_caption() # 전체 데이터셋을 분리해 저장하기 train_dataset_path, val_dataset_path = preprocess.dataset_split_save( img_paths, captions) # 저장된 데이터셋 불러오기 arg = input('train or test? : ') img_paths, caption = preprocess.get_data_file(arg, train_dataset_path, val_dataset_path) # 데이터 샘플링 parser = config.parser config = parser.parse_args() if config.do_sampling: img_paths, captions = preprocess.sampling_data(img_paths, caption) # 이미지와 캡션 시각화 하기 utils.visualize_img_caption(img_paths, captions)
gradients = tape.gradient(loss, trainable_variables) optimizer.apply_gradients(zip(gradients, trainable_variables)) return loss, total_loss BASE_DIR = os.path.join(config.base_dir, 'datasets') tokenizer_path = os.path.join(BASE_DIR, 'tokenizer.pkl') checkpoint_path = os.path.join(config.base_dir, 'checkpoints') # config 저장 utils.save_config(BASE_DIR) # dataset 을 train 과 test datasets 으로 구분 및 저장 preprocess.dataset_split_save(BASE_DIR, config.caption_file_path, config.test_size) # tokenizer 호출 tokenizer = preprocess.get_tokenizer(tokenizer_path, config.caption_file_path, config.num_words) # 사용자의 설정에 따라서 train or test dataset 불러오기 img_name_vector, train_captions = preprocess.get_data_file( BASE_DIR, config.do_what, config.do_sampling) # image_augmentation 및 pre_trained model 실행 img_name_vector, train_captions = feature_extraction(BASE_DIR, img_name_vector, train_captions, config.img_aug) # 각 caption 을 token 벡터로 변경
from config import config from data import preprocess from utils import utils # cofig 저장 utils.save_config(config) # 이미지 경로 및 캡션 불러오기 img_paths, captions = preprocess.get_path_caption() # print("이미지 경로 : " + str(img_paths)) # print("캡션 : " + str(captions)) # 전체 데이터셋을 분리해 저장하기 train_dataset_path, test_dataset_path = preprocess.dataset_split_save(captions) # 저장된 데이터셋 불러오기 img_paths, caption = preprocess.get_data_file(config.data, train_dataset_path, test_dataset_path) # 데이터 샘플링 if config.do_sampling: img_paths, caption = preprocess.sampling_data(img_paths, caption, config.do_sampling) # # 이미지와 캡션 시각화 하기 utils.visualize_img_caption( img_paths, caption, )
from config import config from data import preprocess from utils import utils # config 저장 utils.save_config(config) # 이미지 경로 및 캡션 불러오기 img_paths, captions = preprocess.get_path_caption() # 전체 데이터셋을 분리해 저장하기 train_dataset_path, val_dataset_path = preprocess.dataset_split_save() # 저장된 데이터셋 불러오기 img_paths, caption = preprocess.get_data_file(dataset='train') # 데이터 샘플링 if config.do_sampling: img_paths, caption = preprocess.sampling_data(img_paths, caption) # 이미지와 캡션 시각화 하기 utils.visualize_img_caption(img_paths[0], caption[0])
import config from data import preprocess from utils import utils # config 저장 utils.save_config() # (Req. 3-1) 이미지 경로 및 캡션 불러오기 dictionary = preprocess.get_path_caption() # (Req. 3-2) 전체 데이터셋을 train,test 랜덤으로 분리해 저장하기 train_dataset_path, val_dataset_path = preprocess.dataset_split_save(dictionary) # (Req. 3-3) 저장된 데이터셋 불러오기 # train_data만 원하는 경우 img_caption = preprocess.get_data_file(train_dataset_path) # test_data만 원하는 경우 img_caption = preprocess.get_data_file(val_dataset_path) # (Req. 3-4) 데이터 샘플링 # Req.3-1 결과를 파라미터로 넘긴다 if config.do_sampling: img_caption = preprocess.sampling_data(dictionary) # 이미지와 캡션 시각화 하기