Skip to content

Release notes

2.0.18

  • 2023/12/19
  • [기능 추가]
  • [기능 개선]
    • 학습 속도 향상을 위해 Automatic Mixed Precision (AMP) 사용
    • Validation 속도 향상을 위해 AMP 적용, batch_size1에서 학습 때 사용하는 batch_size와 동일하게 사용하도록 변경
    • 체크포인트 저장 용량 감소

2.0.17

  • 2023/11/07
  • SaigeToolkit 버전 업데이트: d6e54f
  • [기능 개선]
    • DataLoader 속도 향상을 위한 InfiniteRandomSampler 추가 (SaigeToolkit) 및 build_sampler 추가.
    • DataLoader config 변경 (num_worker 8 및 pin_memory 추가 등)

2.0.16

  • 2023/10/30
  • [기능 변경]
    • Analysis시 inference_timepost_processing_time에서 class_activation_map관련 연산을 수행하는 시간 제외.
      • 시간을 측정하는 오버헤드가 있어서, outputs.class_activation_map=False일 때 시간과 완전히 동일하지는 않음.

2.0.15

  • 2023/08/17
  • [기능 변경]
    • 모든 데이터에 라벨 및 예측이 전혀 존재하지 않는 경우 Average F1 Score도 -1.0 으로 리턴

2.0.14

  • 2023/08/17
  • [기능 변경]
    • 클래스들의 Average F1 Score 계산 시, 모든 클래스가 아닌, 라벨 혹은 예측이 존재하는 클래스들에 대해서만 평균 계산
    • 라벨 혹은 예측이 존재하지 않는 클래스에 대해서는 -1.0 (음수) 리턴

2.0.13

  • 2023/08/14
  • SaigeToolkit 버전 업데이트: e7f1e0
  • [Bug Fix]
    • 윈도우에서 한글 경로로 torch.save가 호출되면 프로세스가 죽을 수 있는 문제 대응

2.0.12

  • 2023/08/07
  • SaigeToolkit 버전 업데이트: a6a939
  • [Bug Fix]
    • Windows에서 0번 이외의 GPU 사용 시 속도 저하 및 메모리 이슈 해결

2.0.11

  • 2023/08/01
  • SaigeToolkit 버전 업데이트: 7989cc
  • [Bug Fix]
    • inference_time이 음수가 나오던 버그 수정.
    • Inference시, Cuda:1을 지정할 때에도 Cuda:0에 VRAM이 점유되는 버그 수정.
    • v2_accurate 모델에서 출력에 NaN이 생기는 버그가 수정된 v2a_accurate 모델 추가.
      • NOTE: v2a_accuratev2_accurate 모델과 호환은 되지만, v2a_accurate로 학습한 모델을 v2_accurate로 추론하거나 그 반대의 경우, 성능이 크게 달라질 수 있음.

2.0.10

  • 2023/07/12
  • SaigeToolkit 버전 업데이트: ac99d5

2.0.9

  • SaigeToolkit 버전 업데이트: d11caf
  • [Bug Fix]
    • adjust_saturation 어그멘테이션 알고리즘 수정 (색이 없는 픽셀이 붉은 색으로 변하는 버그)
    • read_metadata에서 체크포인트가 올바르지 않은 경우, Unknown Error가 리턴 되는 문제 수정

2.0.8

  • [기능 추가]
    • 메타 데이터 읽을 때, 체크포인트에 대한 검증 로직 추가
      • checkpoint_path에 파일이 존재하지 않으면 ModelFileNotFoundError 에러 레이즈
      • checkpoint_path를 여는 동안 문제 발생시 InvalidModelFileError 에러 레이즈
  • [Bug Fix] Anaylsis.analyze의 리턴 중 scores_originalNaN이 발생하던 버그 수정

2.0.7

  • [기능 개선]
    • v2_fast, v2_standard, v2_accurate에 해당하는 딥러닝 모델이 업그레이드 되었습니다. (기존에는 각각 v1_shallow, v1_standard, v1_deep과 동일한 딥러닝 모델이었음.)

2.0.6

  • SaigeToolkit 버전 업데이트: 1eee7a
  • [기능 변경]
    • Preview API의 리턴 형식 변경 (자세한 리턴 형식은 api 주석을 참고): (error_code, augmented_image)(error_code, (augmented_image, augmentation_parameters))
    • SummaryHandler.summarize_analysis 리턴 변경
      • class_{idx}_underkill, class_{idx}_overkill 삭제
      • class_{idx}_precision, class_{idx}_recall 추가
  • [기능 추가]
    • Inference.analyzecheckpoint_path에 대한 검증 추가
      • checkpoint_path에 파일이 존재하지 않으면 ModelFileNotFoundError 에러 레이즈
      • checkpoint_path의 파일이 모델 파일이 아니면 InvalidModelFileError 에러 레이즈
  • [Bug Fix] 윈도우에서 validation시 num_workers > 0 인 경우 나던 error 수정.

2.0.5

  • SaigeToolkit 버전 업데이트: 6af074
  • [기능 추가]
    • Anaylsis API가 추가되었습니다.
    • Summary API가 추가되었습니다.
    • InferenceHandler의 device가 바뀌는 경우 warmup 추가: Trainer.to_device를 호출하거나, 학습 중 validation 단계에 진입할 때, warmup이 일어납니다.
  • [기능 변경]
  • [기능 개선]
    • class_activation_map을 계산하는 경우에 인퍼런스 속도가 개선되었습니다.
    • Trainer.to_device() 호출 시 CPU로 보내는 경우 torch.cuda.empty_cache() 호출해 GPU 메모리 일부 해제

2.0.4

  • [기능 변경] InferenceHandler.analyze 시 어떤 수의 이미지가 들어와도 항상 batch size 1 로 인퍼런스하도록 변경하였습니다.

2.0.3

  • [Bug Fix] InferenceHandler.analyze return 형식을 docs에 써있는 대로 고쳤습니다.

2.0.2

  • SaigeToolkit 버전 업데이트: 1dc9cc
    • torch 버전 업데이트: 2.0.0+cu118
    • Augmentation preview 변경: ratio_jitter preview api를 호출할 때마다, 이미지의 네변에 각각 [0, proportion] 범위에서 랜덤하게 crop 혹은 padding을 해서 보여줍니다.
  • [기능 변경]
    • Inferenceinference_option 타입 변경
      • params.additional_scores: List[int]List[Union[int, float]] (내부적으로는 모두 float32로 연산)
    • Inference의 리턴 타입 변경
      • scores_original: int32float32
      • scores_including_add: int32float32
    • Trainer.build의 키 이름 변경: resizeimage_resize_wh
    • Analysis API가 InferenceHandler.analyze() & InferenceHandler.summarize_analysis() 로 변경되었습니다.
    • 기존 Analysis API들은 제거되었습니다.
  • [기능 개선]
    • 학습/인퍼런스시 데이터 전처리 최적화를 통해 속도가 향상 되었습니다.
    • Trainer.build의 키 이름 변경: resizeimage_resize_wh
    • Analysis API가 InferenceHandler.analyze() & InferenceHandler.summarize_analysis() 로 변경되었습니다. (기존 Analysis API들은 제거되었습니다.)
    • Analysis시 인퍼런스 결과 후처리 최적화를 통해 속도가 향상 되었습니다.

2.0.1

  • SaigeToolkit 버전 업데이트: e25378
  • [기능 추가]
    • Trainer.build에 V2 network_type 추가: v2_fast, v2_standard, v2_accurate (내부적으로는 각각 v1_shallow, v1_standard, v1_deep와 동일. 추후 모델 업그레이드 예정.)
    • InferenceHandler.warmup 추가
  • [기능 변경]
    • Trainer.buildnetwork_type 키 변경
      • shallowv1_shallow
      • standardv1_standard
      • deepv1_deep
    • Inferenceinference_option 삭제
      • outputs.scores_original 삭제: 결과에 항상 포함
      • outputs.scores_including_add 삭제: 결과에 항상 포함
      • outputs.class_index 삭제: 결과에 항상 포함
      • params.temperature 삭제: 항상 기본값(1.0) 사용
    • Inferenceinference_option 변경
      • params.max_batch_sizeparams.batch_size로 이름 변경
      • 인퍼런스 시 고정 GPU 메모리를 사용 (항상 params.batch_size로 배치사이즈 만들어서 인퍼런스)
      • params.batch_sizeInferenceHandler.build시에만 적용 가능하며, set_inference_option 에서는 변경이 불가합니다.
  • [Bug Fix]
    • Windows에서 Trainer.buildnum_workers=0 사용하는 경우 발생하는 에러 해결
    • 내부 알고리즘 변경 (.contiguous())으로 인퍼런스 속도가 향상되었습니다.

2.0.0

rc1

  • SaigeToolkit 버전 업데이트: 42207d
  • [기능 추가]
    • 학습/검사 시 16비트 이미지 지원
    • Trainer.post_train_process 메소드 추가
    • inference_option 추가
      • outputs.time 추가: 인퍼런스 시간 측정 옵션
      • params.max_batch_size 옵션 추가: InferenceHandler.infer_and_postprocess 에 한 번에 입력할 수 있는 이미지 수 제한 (기본값 1)
    • InferenceHandler.finalize_analysis 결과 추가
      • summaryclass_{idx}_underkill, object/class_{idx}_overkill 추가
      • summarytotal, correct, wrong 추가
  • [기능 변경]
    • Trainer.build config 중 modelnetwork_type로 이름 변경
    • Augmentation 종류 및 파라미터 변경
      • color_jitter, adjust_brightness_contrast, iso_noise, zoom, light_reflect 제거
      • adjust_brightness, adjust_contrast, adjust_hue, adjust_saturation 추가
      • adjust_gamma, ratio_jitter 파라미터 변경
    • InferenceHandler.build로 빌드 시, class_activation_map 이 default로 켜져서 작동하도록 변경
    • InferenceHandler.set_analysis_data, Trainer.build 데이터 입력 구조를 listdict 변경
    • InferenceHandler.finalize_analysis 결과 출력 구조를 listdict 변경
  • [Bug Fix]
    • 첫번째 클래스를 제외하고 메트릭이 계산되던 버그 수정

rc0

  • initial release