NESAP-STL / nesap-stl

Repository for the NESAP Extreme Spatio-Temporal Learning project
1 stars 3 forks source link

eval 관련 #17

Closed ks1101 closed 3 years ago

ks1101 commented 3 years ago

1.config 파일에서 n_train, n_valid 값을 조정을 하지만 n_valid 값은 실제로 적용되지 않습니다.

전체 데이터를 train_data_loader와 valid_data_loader로 나누는 작업은 datasets/climate.py에서 진행됩니다. 여기서 데이터를 나누는 방식은 63,64번 라인에 나와있는데, n_train만큼 데이터를 잘라 train_data_loader를 만들고 나머지 데이터를 valid_data_loader로 삼는 방식입니다. 그래서 지금 코드와 config파일에서는 valid 데이터가 13000여 달의 데이터였습니다. 그래서 코드를 train_data, valid_data = data[:n_train_seq], data[n_train_seq:n_train_seq+n_valid_seq], (n_valid_seq = n_valid+seq_len-1) 이런 식으로 수정할 필요가 있을 것 같습니다.

  1. evaluation은 진짜 evaluation을 하는가?

우선 마이너한 이슈로 train.py의 evaluate 함수는 auto_regressive.py로 연결되는 것으로 알고 있습니다. 저 혼자 만져볼 때는 base.py의 evaluate 함수를 evaluate_final 이런 식으로 바꿔서 했는데, base.py의 evaluate로 가는 방법은 못 찾았었습니다.

지금 코드에서 최종 evaluation을 하는 방식이 valid data를 auto_regressive.py의 evaluate 함수의 결과를 바탕으로 평가를 하는 것으로 파악을 했는데, 이러면 최종 evaluation 결과와 epoch_31의 valid 결과가 같은 결과를 가지게 될 것 같습니다. 그렇다면 의미가 있는 것인가 하는 문제는 인공지능에 조예가 깊지 않은 저로서는 답을 내리기 힘든 것 같네요. 이거는 전에 혼자 했을 때, 같은 결과가 나오는 것을 확인했었던 것 같은데, 몇 주 되기도 했고,log파일이 없어져서 당장 파악하기는 어려울 것 같습니다.

  1. test 데이터를 만드는 건 어떤가요?

config 파일의 정보대로 데이터를 나누면 대략 13000여 달 분의 데이터가 남습니다. 이 데이터로 최종 평가를 하면 어떨까요?

pytorch에 test_data_loader가 있는지 한 번 찾아봤는데 일단은 못 찾았습니다. 없는 것 같지요? 그래도 어차피 index로 접근하면 되니까 없어도 상관이 없지 않을까요?

변명. 시각화 시각화 관련 정보들을 찾아놨는데 주말 동안에 정전이라도 낫는지 컴퓨터가 꺼져 있더라고요? 원래 안 끄고 다니는데.. 그래서 이거는 다시 찾아봐야 해서요.. 아직 하나도 모르기도 하고.. 하면 말씀드릴게요

songhune commented 3 years ago

1> 요부분은 pycharm 전체 valid_data_loader 중에서 1024개만큼 'sampler'를 통해서 만드는 것으로 보입니다. 2> 같은 결과가 나오더라도 같은 형태로 한번 더 짜는 것이 재사용성에 도움이 되므로(사실 모든 코드가 training 위주로 하드코딩되어 있어서 발생하는 문제입니다. decoupling 이슈 아시죠? 그겁니다) 일단 중복되더라도 코드를 짤 필요가 있어보여요 3>1번과 연결되는데 sampler의 기능으로 인해 안 만들어도 되지 않을까 싶습니다(1번이 legit하다는 전제하에, 만약 아니라면 1/3번 둘 다 선생님이 생각한 방법이 맞습니다)