- prediction/image/ FastAPI 서버 Docker 환경 구성 - Dockerfile: PyTorch 2.1 + CUDA 12.1 기반 GPU 이미지 - docker-compose.yml: GPU 할당 + 데이터 볼륨 마운트 - requirements.txt: 서버 의존성 목록 - .env.example: 환경변수 템플릿 - DOCKER_USAGE.md: 빌드/실행/API 사용법 문서 - Dockerfile에 .dockerignore 제외 폴더 mkdir -p 추가 - .gitignore: prediction/image 결과물 및 모델 가중치(.pth) 제외 추가 - dbInsert_csv.py, dbInsert_shp.py 삭제 (미사용 DB 로직) - api.py: dbInsert import 및 주석 처리된 DB 호출 코드 제거 - aerialRouter.ts: req.params 타입 오류 수정
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
# Copyright (c) OpenMMLab. All rights reserved.
|
|
import glob
|
|
import os.path as osp
|
|
import warnings
|
|
|
|
|
|
def find_latest_checkpoint(path, suffix='pth'):
|
|
"""This function is for finding the latest checkpoint.
|
|
|
|
It will be used when automatically resume, modified from
|
|
https://github.com/open-mmlab/mmdetection/blob/dev-v2.20.0/mmdet/utils/misc.py
|
|
|
|
Args:
|
|
path (str): The path to find checkpoints.
|
|
suffix (str): File extension for the checkpoint. Defaults to pth.
|
|
|
|
Returns:
|
|
latest_path(str | None): File path of the latest checkpoint.
|
|
"""
|
|
if not osp.exists(path):
|
|
warnings.warn("The path of the checkpoints doesn't exist.")
|
|
return None
|
|
if osp.exists(osp.join(path, f'latest.{suffix}')):
|
|
return osp.join(path, f'latest.{suffix}')
|
|
|
|
checkpoints = glob.glob(osp.join(path, f'*.{suffix}'))
|
|
if len(checkpoints) == 0:
|
|
warnings.warn('The are no checkpoints in the path')
|
|
return None
|
|
latest = -1
|
|
latest_path = ''
|
|
for checkpoint in checkpoints:
|
|
if len(checkpoint) < len(latest_path):
|
|
continue
|
|
# `count` is iteration number, as checkpoints are saved as
|
|
# 'iter_xx.pth' or 'epoch_xx.pth' and xx is iteration number.
|
|
count = int(osp.basename(checkpoint).split('_')[-1].split('.')[0])
|
|
if count > latest:
|
|
latest = count
|
|
latest_path = checkpoint
|
|
return latest_path
|