Open cyh5757 opened 9 months ago
학습에 일반화를 위해 Shuffle을 사용하려함. 하지만 paper구현을 바탕으로 사용하기위해, 이미지 shuffle은 없이, 폴더 shuffle만 해야함.
폴더path를 dataset으로 만들어서 suffle엔 split을 통해 train, valid, test로 나누고 이후, 폴더path의 들어있는 image로 dataset 생성
Input 이 2개에 2개의 layer에 할당시에 Input 오류 tabular data 인 성별, 나이, 이미지 번호가 dim이 안맞아서 concat이 안됨
정형데이터를 Inputs에 선언해서 사용하는 방법 말고 dataset을 해서 가져오는 방법을 택함. 하지만 iloc를 이용해서 가져올때 column인식을 못하게 되어있어서, 각각의 column으로 할당함. 이후 subclassing을 통해 각각의 input이 들어올수있게 parsing함. reshape을 통해 dataset이의 데이터를 (1, )형태로 변경
paper 그대로 학습시에 학습이 안됨. paper에서는 90%에 가까운 값들이 나오는데, train_val, loss자체가 진척이 안됨.
layer의 unit을 변경함. layerd의 depth와 정규화 를 변경
기존 방법으로 training을 flag로 사용 From_tensor_slices를 통해 map을 통해 'training' 인자를 True 나 False를 넣어서 train 과 valid일때의 augmentation 할려함 data Leakage과 학습 방해가 발생.(True를 training으로 놓을 때는 valid일때 data Leakage, False로 놓을때는 학습 방해)
전처리 및 augmentation 함수를 따로따로 만듬. train용 과 valid,test용으로 변경
Overfitting 방지를 위해 augmentation 수행 시, gamma 변환 시 학습이 안됨. gamma 변환을 위해 from_generator로 변경시 학습이 안됨. paper에서 주어진 augmentation을 토대로 시도. 하지만 학습이 잘 안됨.
brain image를 생각하고, 지역적 데이터를 더 잘 보존시키기위해 밝기, 대조만 시킴. 이전 translation, rotate, gamma등을 이용하지않음. 이후 from_generator를 사용시에 dim 오류가 나서 albumentation으로 변경. 하지만 albumentation에서 확인한 결과 학습이 잘 이뤄지지않음. 따라서, 기존의 방법을 사용(tf.data.image)
학습시간(5epoch)이 너무 짧아서 lr로 최고점을 찾아야
각 학습시에 최고점에 위치한 점수를 비교하고. learning rate schedular를 이용. ExponentialDecay사용
이 모델에서 가장 중요한거는 transfer learning을 통해 많은 이득을 얻는거라고 생각합니다. 기존 이미지를 이용한 학습에서 demographics score를 concat시켰을때 확실한 성적 차이를 보이지만. 짧은 학습시간(5epoch 이내)안에 overfitting이 날 정도로 강력한 모델이였고, 일반화시키기 참 어려웠던 모델이다. 따라서 overfitting을 어떻게 다뤄야하는지 생각해야했다. 그중 여러개의 방법중 아래에 있다.
WORK PLAN
ISSUES
문제상황
데이터 사용 방법 문제 30장의 이미지는 shuffle되면 안됨.
Input 이 2개에 2개의 layer에 할당시에 Input 오류 1.1 tabular data 인 성별, 나이, 이미지 번호가 dim이 안맞아서 concat이 안됨
paper 그대로 학습시에 학습이 안됨.
From_tensor_slices를 통해 map을 통해 'training' 인자를 True 나 False를 넣어서 train 과 valid일때의 augmentation 할려함 data Leakage과 학습 방해가 발생.(True를 training으로 놓을 때는 valid일때 data Leakage, False로 놓을때는 학습 방해)
Overfitting 방지를 위해 augmentation 수행 시, gamma 변환 시 학습이 안됨.
gamma 변환을 위해 from_generator로 변경시 학습이 안됨.
학습시간(5epoch)이 너무 짧아서 lr로 최고점을 찾아야함.
weight_decay를 지정하고, 변화가 있었다고 생각했는데, 그 weight_decay가 제대로 함수에 들어가지 않고있었음. 그런데 학습에 변화가 있었음.
pretrained_model parameter를 고정시켜서 사용하려함. 하지만 CPU로 학습만됨. 반대로 finetuning처럼 parameter를 다 학습용으로 변화시켰다 생각했지만, 부분만 parameter 풀리고, 다른 부분은 고정됨.
모델 학습시, 모델 선언부터 안하고, compile 부터 실행. 그런데 그렇게 되면 overfitting이 바로 이뤄져야하는데, 학습이 좋아짐.
해결방법
RESULTS
ETC.
Unknown :