Release notes
0.0.18
2024-07-01 (PR 7418)
- SaigeToolkit 패키지로 사용할 수 있게 변경되었습니다.
- pip install git+https://dev.azure.com/SaigeResearch/Research/_git/SaigeToolkit@{commit} 으로 설치하여 사용합니다.
SaigeToolkit을 사용하는 레포에서 requirements 수정이 필요합니다.
- 배포용으로는 즉, Cythonize하여 사용할 경우에는 전역 변수
PACKAGEMODE 를 "Deploy"로 설정 후, 설치하시면 됩니다.
0.0.17
2024-06-26 (PR 7397)
- 툴킷 개발/사용시 참고할 수 있는 가이드 문서를 작성해 레포에 포함했습니다.
- CD 파이프라인에 가이드 문서 배포 로직을 추가했습니다. 이 문서는 단일 버전으로 유지합니다.
- 툴킷 PR 템플릿의 체크리스트에 가이드 문서 링크를 추가했습니다.
0.0.16
2024-06-25 (PR 7385)
- [Requirements]
- 이제 requirements를 requirements/ 폴더에다 common / dev / prod / docs 네 가지 파일로 나누어 관리합니다.
common: 필수 패키지
dev: 연구용 패키지 + common
prod: 배포용 패키지 + common
docs: 문서화 디펜던시 모음
- 기존 requirements.txt 파일은
dev requirements를 설치하도록 리디렉션 했습니다 (사용 편의상).
- 몇몇 더 이상 안 쓰이는 디펜던시를 제거했습니다.
six==1.16.0, hgtk==0.1.3, pretrainedmodels==0.7.4, pycls==0.1.1, networkx==2.8.7
- [Pipelines]
- 위 변경사항에 따라 일반 테스트에는 dev를, Cythonize 테스트 시에는 prod를 설치하도록 했습니다.
- 파이프라인에서 불필요한 구문을 제거했습니다.
- Cythonized API 테스트 시 *_api.py 포맷에 맞는 파일들을 모두 테스트 하도록 동작을 수정했습니다.
0.0.15
2024-06-24 (PR 7359)
LogHandler 리팩터링 했습니다.
save_code 메소드 변경하고 docstring 추가했습니다.
save_source_info 인풋 인자의 이름을 변경했습니다.
- sampler, batch_sampler, dataloader, dataset, log_handler 에 대한 테스트를 추가했습니다.
- 기존 Dataloader 하위 파일이던 InfiniteRandomSampler를 Sampler 모듈로 분리해 관리합니다 (batch_sampler와 구분하기 위함).
- Dataloader 모듈을 삭제했습니다.
- Full2PatchDataloader가 사실상 쓰이지 않고, InfiniteRandomSampler도 옮겨지면서 torch Dataloader 이외에 소스가 남지 않아 제거했습니다.
- BatchSampler 하위 구현 중 class_sampler 와 balanced_sampler 구현을 다시 복원했습니다.
- 테스트 과정에서 발견한 기타 버그 픽스.
- requirements에
omegaconf==2.2.2, tensorboard==2.10.0 를 추가했습니다. SaigeToolkit을 사용하는 레포에서 requirements 수정이 필요합니다.
0.0.14
2024-06-21 (PR 7341)
- API로 제공되는 코드를 별도의 api.py 파일로 분리해 명확성을 높였습니다.
- checkpoint/metadata.py의 중복 구현을 제거하고 SaigeToolkit 기능으로 동작을 통합했습니다.
- CheckpointHandler 및 metadata api에 대한 테스트를 추가했습니다.
- (관련 레포에서 코드 작업 필요)
SaigeToolkit.checkpoint.checkpoint 모듈을 SaigeToolkit.checkpoint.checkpoint_handler 로 이름 변경했습니다 .
- 기존
SaigeToolkit.checkpoint.metadata 에서 불러오던 api 기능은 SaigeToolkit.checkpoint.metadata.api 경로로 임포트 구문을 수정해야 합니다.
0.0.13
2024-06-21 (PR 7339)
- Version 파일을 추가했습니다.
- 문서화를 위해 setuptools, logging 폴더를 모듈로 변경했습니다 (init 추가).
- 기존 logging 모듈이 빌트인 logging과 중복되는 문제가 있어 log로 모듈 이름을 변경했습니다.
- mkdocs용 리소스 및 requirements, mkdocs yml 파일을 추가했습니다.
- 소스를 훑으면서 자동으로 문서화 해 주도록 보조 파이썬 스크립트 및 yml 내용을 구성했습니다. 세부 파일 내용 참고.
- 버전 태그가 푸쉬되면 작동하는 문서화 CD 파이프라인을 구성했습니다.
0.0.12
2024-06-19 (PR 7323)
- 베이스클래스를 선언하는 파일들에
base_~~~ 파일명 컨벤션을 적용했습니다
base.py -> base_sampler.py, base.py -> base_transform.py
- 빌더 파일들에 일괄적으로
builder.py 파일명 컨벤션을 적용했습니다.
tranform/util.py -> transform/function_util.py 네이밍 변경
- 해당 파일은
~~_function.py 파일들에서 사용되는 기능 모음으로, 더 명확한 이름으로 변경했습니다.
transform/roi 모듈로 roi 관련 기능을 transform 으로부터 분리했습니다.
transform/augmentaion/compose 모듈로 compose 관련 기능을 augmentation 으로부터 분리했습니다.
data/type 모듈은 이제 데이터클래스 선언 및 관련 기능 관리만을 수행하므로 data/dataclass 모듈로 이름을 변경했습니다.
metric/segment에 정의된 compute_segment_intersection_area 메서드를 data/dataclass/segment로 이동했습니다.
- 기타 임포트 경로를 수정했습니다.
0.0.11
2024-06-19 (PR 7318)
SaigeDataset 리팩터링했습니다.
img_size attribute를 제거했습니다.
- docstring 수정했습니다.
0.0.10
2024-06-19 (PR 7309)
- 더 이상 사용되지 않는 모델 구현을 추가로 제거했습니다.
SaigeToolkit.model.backbone 하위의 regnet, resnet, squeezenet, vgg를 제거했습니다.
- (
ForwardHookFeatureExtractor에서 backbone으로 resnet*을 사용하는 모델은 resnet*_torchvision으로 변경 필요)
SaigeToolkit.model.neck 하위의 fpn_mask_text_spotter_v3를 제거했습니다.
torchvision에서 가져올 수 있는 weight 관련 코드를 제거하고 import해서 사용하도록 변경했습니다.
0.0.9
2024-06-18 (PR 7299)
- DefectGeneration 레포로부터 EdgeCropper 구현을 이관했습니다.
- Cropper builder를 리팩터링했습니다.
- Cropper 테스트 코드 및 테스트 컨피그를 추가했습니다.
- Augmentation 및 Compose 샘플 컨피그를 테스트 파일로 위치를 옮겼습니다.
2024-06-18 (PR 7303)
- Pipeline 실행 시 Cythonize setup 이 에러로 종료되면 파이프라인에서도 Fail로 판별하도록 스크립트를 수정했습니다 (기존에는 어떤 식으로 종료되어도 Success로 판별하고 API 테스트를 이어 수행했습니다).
0.0.8
2024-06-18 (PR 7295)
- 연구소 코딩 스타일 가이드에 맞게 전반적으로 코드를 수정했습니다.
- 가변 객체 기본값 사용하지 않게 변경
- import 정리
- etc.
0.0.7
2024-06-18 (PR 7294)
- transform.py 주요 구성요소의 네이밍을 변경했습니다.
- MultiResizer ->
StackedResizerHandler (Resizer의 리스트를 관리하는 클래스)
- InspectionSizeHandler ->
InspectionSizeResizer (Inspection size 반영을 위한 Resizer 서브클래스)
MultiResizer와 InspectionSizeHandler 의 초기화가 inspection_size_wh setter에 암묵적으로 숨겨져 있는 문제를 완화했습니다.
- Transform init 과정에서 명시적으로 타입을 지정하고 None 값을 대입하는 처리를 추가했습니다.
- ImageProcessor API 임포트 시 불필요한 모듈이 임포트 되지 않도록 임포트 경로를 변경했습니다 (관련 레포에서 코드 작업 필요).
SaigeToolkit.data.transform.augmentation.ImageProcessor -> SaigeToolkit.data.transform.augmentation.api.ImageProcessor
- 가독성을 위해 Transform 모듈 구조 및 파일 네이밍을 변경했습니다.
- Transform 에서만 쓰이는 사용자 지정 타입 variable을
transform/typevar.py 로 모았습니다.
- [파일명 변경]
- transform.augmentation.functional ->
transform.augmentation.augment_function
- transform.augmentation.transform ->
transform.augmentation.augment_transform
- transform.functional ->
transform.image_function
- transform.box ->
transform.box_function****
- transform.polygon ->
transform.polygon_function
transform.augmentation.base 파일에는 베이스클래스의 선언만 남기고, 같은 파일의 기타 유틸리티성 메서드들은 transform.augmentation.util 파일로 나누어 관리합니다.
- 기타 low-level import들을 제거하고, 기능적으로 관련된 하이레벨 모듈 임포트 시 함께 임포트 되도록 수정했습니다.
0.0.6
2024-06-18 (PR 7290)
- SaigeError를 통합했습니다.
- PyTorch나 NumPy 등 다른 라이브러리의 알려진 에러들을 SaigeError로 바꾸도록 error handler를 수정했습니다.
- 기존에는
torch.cuda.OutOfMemoryError만 따로 처리하고 있었으나, 이제 다른 에러들도 처리할 수 있도록 구조를 변경했습니다.
- 에러 처리 관련 코드들의 타입 오류를 수정했습니다.
0.0.5
2024-06-17 (PR 7273)
- 여러 레포에서 동일하게 사용되는
LogHandler를 추가했습니다.
SaigeToolkit.logging
Tensorboard 외의 다른 dashboard를 사용하고 싶은 경우, DashBoard를 상속받아서 해당 레포에서 추가 구현하는 작업이 필요합니다.
- API 테스트에 공통적으로 사용되는 함수를 추가했습니다.
SaigeToolkit.util.test.py 파일 내 함수들.
- 기존의
sweep 함수의 이름을 sweep_options로 변경하였습니다.
- 다수의 레포에서 사용되는
images_to_4d_tensor 함수를 추가했습니다.
- DET, SEG2, IEN, CLS2, IAD 에서 data collate에 사용됨.
SaigeToolkit.data.collate.py
0.0.4
2024-06-17 (PR 7268)
- (레거시 코드를 사용 중인 레포에서 코드 이전 작업 필요)
image_aug, text_aug를 포함한 이전 augmentation 구현을 제거했습니다.
- ~~Sampler 구현 중 레거시화 된
BalancedSampler, ClassBalancedSampler를 제거했습니다.~~ 0.0.15 버전에서 revert 되었습니다.
- 레거시화 된 데이터셋 컨피그 및 샘플 데이터, 테스트, 빌더 메서드 등을 제거했습니다.
- Cropper 구현 중 레거시화 된
FixedOcrCropper류, ClosePolygonRejectingCropper를 제거했습니다.
DirectoryDataset, MixDataset 구현을 제거했습니다.
- CLS2에서 더 이상 사용하지 않는
ClsDataset 구현을 제거했습니다.
graph_sorter 모듈을 제거했습니다.
0.0.3
2024-06-14 (PR 7265)
- 실험에만 사용되는 것이 명확한 코드들을
ResearchToolkit 폴더로 이동했습니다.
SaigeToolkit.experiment -> ResearchToolkit.experiment
SaigeToolkit.notion -> ResearchToolkit.notion
- 더 이상 사용되지 않는 모델 구현을 제거했습니다.
SaigeToolkit.model.backbone 하위의 block, hardnet, mobilenet, nasnet, resnet_을 제거했습니다.
SaigeToolkit.model.layer 전체를 제거했습니다.
- CLS2에서 더 이상 사용하지 않는
SaigeToolkit.learning.loss 구현을 제거했습니다.
- 사용되는 곳이 없는
Singleton 클래스를 제거했습니다.
0.0.2
2024-06-14 (PR 7263)
- Toolkit 상위 단 모듈들의
__init__에 작성된 임포트를 대부분 제거해 의도치 않은 모듈 임포트를 방지했습니다. 상위 모듈에서의 임포트를 사용하고 있었다면, 아래와 같은 임포트 경로 수정이 필요합니다 (관련 레포에서 코드 작업 필요).
SaigeToolkit.checkpoint.CheckpointHandler -> SaigeToolkit.checkpoint.checkpoint.CheckpointHandler
SaigeToolkit.learning.DeviceManager -> SaigeToolkit.learning.device.DeviceManager
SaigeToolkit.learning.build_loss -> SaigeToolkit.learning.loss.build_loss
SaigeToolkit.learning.build_optimizer -> SaigeToolkit.learning.optimizer.build_optimizer
SaigeToolkit.learning.build_scheduler -> SaigeToolkit.learning.scheduler.build_scheduler
SaigeToolkit.model.build_backbone -> SaigeToolkit.model.backbone.build_backbone
SaigeToolkit.model.build_feature_extractor -> SaigeToolkit.model.feature_extractor.build_feature_extractor
SaigeToolkit.model.build_neck -> SaigeToolkit.model.neck.build_neck
SaigeToolkit.util.read_yml -> SaigeToolkit.util.config.read_yml
SaigeToolkit.util.load_files -> SaigeToolkit.util.file_handler.load_files
SaigeToolkit.util.Timer -> SaigeToolkit.util.timer.Timer
SaigeToolkit.util.CudaMemoryTracker -> SaigeToolkit.util.memory.CudaMemoryTracker
- visualize 모듈의 모든 함수들
SaigeToolkit.visualize.XXX -> SaigeToolkit.visualize.(util/draw/overlay).XXX
0.0.1
2024-06-13 (PR 7245)
- Toolkit 내 폰트 파일 2종을 제거하고, visualize/draw의
draw_text 메서드에서 이를 디폴트로 사용하는 동작을 제거했습니다 (관련 레포에서 코드 작업 필요).
- Pytest 시 deprecation warning을 유발하는 부분을 최신 구현으로 대체했습니다.
- torchvision model 로드 시 pretrained=True 인터페이스가 weights로 바뀌었으며, 기존 동작을 유지하면서 새 인터페이스로 변경하는 작업을 진행했습니다. https://pytorch.org/vision/stable/models.html 참고
- PIL의 Image.BILINEAR 등의 값들이 deprecate 되어 Image.Resampling.BILINEAR 등의 값으로 변경했습니다.