Project

Project template

Step / Epoch Learning curves

Debug

  • PyTorch DataLoader가 멀티프로세싱을 사용시 오류
    • Lambda 함수는 pickle이 불가능하기 때문에 프로세스 간 전달시 문제
    • 대안
    • 1) num workers =0
    • 2) psutils 설치 후, 구동 환경에 맞는 값 설정

      Study

      Hydra multi-config → wandb logging

  • OmegaConf.to_container(cfg, resolve=True)
  • model_config = config_dict[“model”]
  • “train”: train_config
      config_dict = OmegaConf.to_container(cfg, resolve=True)
      #   카테고리  그대로 가져오기
      train_config = config_dict["train"]
      model_config = config_dict["model"]
      # 2. 커스텀  추가
      custom_values = {
          "learning_rate_squared": train_config["lr"] ** 2,  # 계산 예시
          "experiment_name": "baseline_experiment",          # 고정  예시
          "custom_batch_times_lr": train_config["batch_size"] * train_config["lr"]
      }
      # 3. wandb.init
      wandb.init(
          project="my_project",
          config={
              "train": train_config,
              "model": model_config,
              **custom_values  # 커스텀  추가
          }
      )
      # 4. wandb.log (추가 로깅 예시)
      wandb.log({
          "epoch": 1,
          "accuracy": 0.85,
          **custom_values
      })
    

    Wandb logging 단위: Step, Epoch

  • step 단위 로깅의 장단점
    • 장점: 더 세밀한 학습 과정 모니터링 가능
    • 단점: 로깅 데이터양 증가, 계산 비용 증가
  • Step 단위 로깅 (추천)
    • Loss: step 단위로 로깅 (학습 진행 상황을 자세히 모니터링)
    • Accuracy: step 또는 epoch 단위 (계산 비용 고려)
  • Epoch 단위 로깅 (추천)
    • 기타 메트릭(F1, Precision 등): epoch 단위 (계산 비용이 높음)
    • 시각화(Confusion Matrix, PR Curve 등): epoch 단위