Release notes
2.0.28
2024/05/21
[기능 개선]
학습 중 loss 값에 NaN이 포함되어 있는 경우 NanLossError 레이즈
2.0.27
2024/04/26
[기능 개선]
Cuda 관련 오류시 UnknownError 대신 CudaDeviceError 레이즈
학습시 cpu 메모리 사용량 개선
2.0.26
2024/02/26
[기능 변경]
Trainer.build 함수의 num_micro_batches가 제거되고, 주어진 network_type과 image_resize_wh에 따라 내부적으로 조절하도록 변경.
2.0.25
2024/02/19
[기능 추가]
권장 스펙에서 모델을 학습할 수 있도록 micro batching 기능이 추가되었습니다.
Trainer.build 함수의 num_micro_batches 파라미터를 통해서 조절할 수 있습니다. (default: 1)
하나의 batch를 (batch_size // num_micro_batches) 크기의 num_micro_batches 개의 micro batch로 나누어 학습하여 메모리를 절약합니다. (validation 시에도 (batch_size // num_micro_batches) 단위로 인퍼런스)
다만 num_micro_batches > 1을 사용하는 경우, 전체 학습 속도가 느려지기 때문에(세팅에 따라 느려지는 정도는 다름) 다음의 경우에만 사용합니다.:
network_type=="v2_accurate" and image_resize_wh==[1024, 1024] → num_micro_batches를 2 사용.
나머지 경우 → num_micro_batches를 1 사용.
2.0.24
2024/01/29
SaigeToolkit 버전 업데이트: 589541
[기능 개선]
blind_mask를 사용하여 학습 및 인퍼런스를 하는 경우의 속도 가 개선되었습니다.
[기능 추가]
Cythonize 빌드시, --without-pretrained-model 옵션을 추가하여 모델 체크포인트 다운로드 및 복사 없이 빌드를 수행할 수 있습니다.
2.0.23
2024/01/11
[Bug fix]
Validation image가 없을때 발생하는 에러 수정
2.0.22
2024/01/10
SaigeToolkit 버전 업데이트: 702624
[기능 변경]
2.0.21
2024/01/04
SaigeToolkit 버전 업데이트: 2061e7
[Bug Fix]
outputs.class_activation_map=True, outputs.time=True, params.batch_size > 1 인 경우에 Unknown error가 발생하던 버그 수정.
2.0.20
2023/12/27
SaigeToolkit 버전 업데이트: 12b575
2.0.19
2023/12/20
[기능 변경]
Summary.summarize_analysis 에 리턴 딕셔너리의 일부 키 이름 변경.
class_{idx}_true → class_{idx}_num_labels
class_{idx}_positive → class_{idx}_num_predictions
class_{idx}_correct → class_{idx}_num_correct
total → num_total
correct → num_correct
wrong → num_wrong
2.0.18
2023/12/19
[기능 추가]
[기능 개선]
학습 속도 향상을 위해 Automatic Mixed Precision (AMP) 사용
Validation 속도 향상을 위해 AMP 적용, batch_size를 1에서 학습 때 사용하는 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_time과 post_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/07/31
SaigeToolkit 버전 업데이트: 7989cc
[Bug Fix]
inference_time이 음수가 나오던 버그 수정.
Inference시, Cuda:1을 지정할 때에도 Cuda:0에 VRAM이 점유되는 버그 수정.
v2_accurate 모델에서 출력에 NaN이 생기는 버그가 수정된 v2a_accurate 모델 추가.
NOTE: v2a_accurate은 v2_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_original에 NaN이 발생하던 버그 수정
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.analyze 의 checkpoint_path에 대한 검증 추가
checkpoint_path에 파일이 존재하지 않으면 ModelFileNotFoundError 에러 레이즈
checkpoint_path의 파일이 모델 파일이 아니면 InvalidModelFileError 에러 레이즈
[Bug Fix] 윈도우에서 validation시 num_workers > 0 인 경우 나던 error 수정.
2.0.5
SaigeToolkit 버전 업데이트: 6af074
[기능 추가]
[기능 변경]
[기능 개선]
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
ratio_jitter augmentation preview 방식 변경: 프리뷰 api를 호출할 때마다, 이미지의 네변에 각각 [0, proportion] 범위에서 랜덤하게 crop 혹은 padding을 해서 보여줍니다.
[기능 변경]
Inference 의 inference_option 타입 변경
params.additional_scores: List[int] → List[Union[int, float]] (내부적으로는 모두 float32로 연산)
Inference 의 리턴 타입 변경
scores_original: int32 → float32
scores_including_add: int32 → float32
Trainer.build 의 키 이름 변경: resize → image_resize_wh
Analysis API가 InferenceHandler.analyze() & InferenceHandler.summarize_analysis() 로 변경되었습니다.
기존 Analysis API들은 제거되었습니다.
[기능 개선]
학습/인퍼런스시 데이터 전처리 최적화를 통해 속도가 향상 되었습니다.
2.0.1
SaigeToolkit 버전 업데이트: e25378
[기능 추가]
[기능 변경]
Trainer.build 중 network_type 키 변경
shallow → v1_shallow
standard → v1_standard
deep → v1_deep
Inference 의 inference_option 삭제
outputs.scores_original 삭제: 결과에 항상 포함
outputs.scores_including_add 삭제: 결과에 항상 포함
outputs.class_index 삭제: 결과에 항상 포함
params.temperature 삭제: 항상 기본값(1.0) 사용
Inference 의 inference_option 변경
params.max_batch_size → params.batch_size로 이름 변경
인퍼런스 시 고정 GPU 메모리를 사용 (항상 params.batch_size로 배치사이즈 만들어서 인퍼런스)
params.batch_size는 InferenceHandler.build시에만 적용 가능하며, set_inference_option 에서는 변경이 불가합니다.
[Bug Fix]
Windows에서 Trainer.build시 num_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 결과 추가
summary에 class_{idx}_underkill, object/class_{idx}_overkill 추가
summary에 total, correct, wrong 추가
[기능 변경]
Trainer.build config 중 model → network_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 데이터 입력 구조를 list → dict 변경
InferenceHandler.finalize_analysis 결과 출력 구조를 list → dict 변경
[Bug Fix]
첫번째 클래스를 제외하고 메트릭이 계산되던 버그 수정
rc0