Train Anomaly Clustering
SaigeVAD.AnomalyClusteringTrainer
Bases: anomaly_cluster.AnomalyClusteringTrainer
Anomaly Clustering 학습을 위한 AnomalyClusteringTrainer class 입니다.
Usage
from SaigeVAD.engine.saigevad_api import AnomalyClusteringTrainer
# this is an example config.
config = {
"progress_server_url": "http://0.0.0.0:5000/on_epoch_end",
"device_index": 0 # optional
}
# train_data에는 최소 50장의 이미지가 필요함.
train_message = {
"data": {
"train_data": [
{"img_path": "../220914_0520/1521_001.jpeg"},
{"img_path": "../220914_0525/1521_002.jpeg"},
],
"saigevad_model_path": "../name.saigevad",
}
}
# AnomalyClusteringTrainer 빌드
error, anomaly_clustering = AnomalyClusteringTrainer.build(config)
# train_message를 이용한 학습
error, cluster_output = anomaly_clustering.train(train_message, password)
"""
[{"image_path": ["../220914_0520/1521_001.jpeg"], "cluster_index": 1}, ...]
"""
# VAD 학습 결과를 이용한 학습
error, weight_sampling_result = trainer.process_weight_sampling() #VadTrainer
vad_train_result_dict = {
"checkpoint_path": checkpoint_path,
"weight_sampler_info": weight_sampling_result ,
}
error, train_message = anomaly_clustering.convert_vad_train_result_to_train_message(vad_train_result_dict)
error, cluster_output = anomaly_clustering.train(train_message, password)
# 결과 저장
anomaly_clustering.save_checkpoint(checkpoint_path=train_message["saigevad_model_path"], password=password)
build(config=None)
classmethod
학습을 위해 AnomalyClusteringTrainer class의 instance를 생성합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
Optional[dict]
|
None
|
Returns:
| Name | Type | Description |
|---|---|---|
AnomalyClusteringTrainer |
build가 완료된 saigevad_api.AnomalyClusteringTrainer class의 instance를 반환합니다. |
train(train_message, password=None, pretrained=True, initial_epochs=1000, n_oversampling_stage=6, n_oversampling_epoch_per_stage=500)
Clustering 학습을 진행합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
train_message |
Dict
|
required | |
password |
Optional[str]
|
VadTrainer 학습 파일의 password입니다. Defaults to None. |
None
|
Returns:
| Type | Description |
|---|---|
List[dict]
|
List[dict]: clustering image info 리스트입니다.
|
convert_vad_train_result_to_train_message(vad_train_result_dict)
VAD 학습 결과를 이용하여 anomaly clustering 학습에 사용하기 위해 preprocessing을 진행합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vad_train_result_dict |
Dict[str, Any]
|
required |
Returns:
| Type | Description |
|---|---|
List[Dict[str, str]]
|
List[Dict[str, str]]: 학습에 필요한 정보가 담겨있는 dictionary 입니다. |
save_checkpoint(checkpoint_path, password=None)
현재 AnomalyClusteringTrainer의 상태를 VAD train result dictionary에 저장합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
checkpoint_path |
str
|
checkpoint를 저장할 경로입니다. |
required |
password |
str
|
checkpoint 파일에서 중요한 정보를 암호화 하는데 사용되는 password 입니다. None이면 암호화하지 않습니다. Defaults to None. |
None
|