# Trình theo dõi thí nghiệm

## GeneralTracker[[accelerate.tracking.GeneralTracker]]

#### accelerate.tracking.GeneralTracker[[accelerate.tracking.GeneralTracker]]

```python
accelerate.tracking.GeneralTracker(_blank = False)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L103)

Lớp Tracker cơ bản được sử dụng cho tất cả các triển khai tích hợp ghi log.

Mỗi hàm nên nhận vào `**kwargs` sẽ được tự động truyền từ một từ điển cơ bản được cung cấp cho [Accelerator](/docs/accelerate/main/vi/package_reference/accelerator#accelerate.Accelerator).

Cần triển khai các thuộc tính `name`, `requires_logging_directory` và `tracker` sao cho:

`name` (`str`): Biểu diễn chuỗi của tên lớp tracker, chẳng hạn như "TensorBoard" `requires_logging_directory` (`bool`): Cho biết logger có yêu cầu một thư mục để lưu trữ log hay không. `tracker` (`object`): Nên trả về cơ chế theo dõi bên trong được sử dụng bởi một lớp tracker (chẳng hạn như `run` của wandb)

Các cài đặt cũng có thể bao gồm thuộc tính `main_process_only` (`bool`) để bật/tắt việc các chức năng ghi log, khởi tạo và các chức năng khác có liên quan nên được thực hiện trên tiến trình chính hay trên tất cả các tiến trình (mặc định sẽ sử dụng `True`)

#### hoàn thành[[accelerate.tracking.GeneralTracker.finish]]

```python
finish()
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L173)

Nên chạy các hàm hoàn tất trong API theo dõi. Nếu API không cần có một hàm như vậy, chỉ cần không ghi đè phương thức đó.

#### log[[accelerate.tracking.GeneralTracker.log]]

```python
log(values: dict, step: int | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L161)

**Tham số:**

values (Dictionary `str` sang `str`, `float` hoặc `int`) : Các giá trị cần được ghi log dưới dạng cặp khóa-giá trị. Các giá trị phải có kiểu `str`, `float` hoặc `int`.

step (`int`, *optional*) : Bước chạy. Nếu được bao gồm, nhật ký sẽ được gắn với bước này.

Ghi `values` vào run hiện tại. Các cài đặt `log` cơ bản của một API theo dõi nên được đặt ở đây, cùng với hành vi đặc biệt cho tham số `step`.

#### bắt đầu[[accelerate.tracking.GeneralTracker.start]]

```python
start()
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L144)

Khởi tạo theo kiểu lười (lazy) bộ theo dõi (tracker) bên trong Accelerator để tránh khởi tạo PartialState trước InitProcessGroupKwargs.

#### store_init_configuration[[accelerate.tracking.GeneralTracker.store_init_configuration]]

```python
store_init_configuration(values: dict)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L150)

**Tham số:**

values (Dictionary `str` đến `bool`, `str`, `float` hoặc `int`) : Các giá trị cần được lưu trữ dưới dạng các siêu tham số ban đầu dưới dạng các cặp khóa-giá trị. Các giá trị này cần có kiểu `bool`, `str`, `float`, `int`, hoặc `None`.

Ghi `values` dưới dạng siêu tham số cho lần chạy. Các triển khai nên sử dụng chức năng cấu hình thí nghiệm của API theo dõi.

## register_tracker_class[[accelerate.tracking.register_tracker_class]]

#### accelerate.tracking.register_tracker_class[[accelerate.tracking.register_tracker_class]]

```python
accelerate.tracking.register_tracker_class(tracker_class: type)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L1264)

**Tham số:**

tracker_class (lớp con của `GeneralTracker`) : Lớp tracker cần đăng ký. Nó phải kế thừa `GeneralTracker` và định nghĩa thuộc tính lớp `name` không rỗng cùng thuộc tính lớp `requires_logging_directory`. Lớp này được khởi tạo với `project_name` được truyền vào `Accelerator.init_trackers()` làm đối số vị trí đầu tiên. Khi `requires_logging_directory` là `True`, thư mục ghi log được truyền làm đối số vị trí thứ hai (khớp với quy ước của tracker tích hợp sẵn). Các đối số từ khóa cụ thể của tracker từ `init_kwargs` được chuyển tiếp dưới dạng `**kwargs`.

Đăng ký một lớp con `GeneralTracker` tùy chỉnh để có thể tham chiếu nó bằng `name` của nó trong đối số `log_with` của [Accelerator](/docs/accelerate/main/vi/package_reference/accelerator#accelerate.Accelerator), theo cách tương tự như các trình theo dõi tích hợp sẵn.

Trình theo dõi phải được đăng ký trước khi khởi tạo [Accelerator](/docs/accelerate/main/vi/package_reference/accelerator#accelerate.Accelerator) sử dụng nó.

Ví dụ:

```python
from accelerate import Accelerator
from accelerate.tracking import GeneralTracker, register_tracker_class

class MyTracker(GeneralTracker):
    name = "my_tracker"
    requires_logging_directory = False
    # ... implement the rest of the `GeneralTracker` interface

register_tracker_class(MyTracker)
accelerator = Accelerator(log_with="my_tracker")
```

## TensorBoardTracker[[accelerate.tracking.TensorBoardTracker]]

#### accelerate.tracking.TensorBoardTracker[[accelerate.tracking.TensorBoardTracker]]

```python
accelerate.tracking.TensorBoardTracker(run_name: str, logging_dir: str | os.PathLike, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L180)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm

logging_dir (`str`, `os.PathLike`) : Vị trí lưu trữ nhật ký TensorBoard.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `tensorboard.SummaryWriter.__init__`.

Lớp `Tracker` hỗ trợ `tensorboard`. Nên được khởi tạo ngay đầu script của bạn.

#### __init__[[accelerate.tracking.TensorBoardTracker.__init__]]

```python
__init__(run_name: str, logging_dir: str | os.PathLike, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L196)

## WandBTracker[[accelerate.tracking.WandBTracker]]

#### accelerate.tracking.WandBTracker[[accelerate.tracking.WandBTracker]]

```python
accelerate.tracking.WandBTracker(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L295)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `wandb.init`.

Lớp `Tracker` hỗ trợ `wandb`. Nên được khởi tạo ngay đầu script của bạn.

#### __init__[[accelerate.tracking.WandBTracker.__init__]]

```python
__init__(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L310)

## Trackio[[accelerate.tracking.TrackioTracker]]

#### accelerate.tracking.TrackioTracker[[accelerate.tracking.TrackioTracker]]

```python
accelerate.tracking.TrackioTracker(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L420)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm. Sẽ được dùng làm tên `project` khi khởi tạo trackio.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `trackio.init`. Tham khảo [init](https://github.com/gradio-app/trackio/blob/814809552310468b13f84f33764f1369b4e5136c/trackio/__init__.py#L22) này để xem tất cả các đối số từ khóa được hỗ trợ.

Lớp `Tracker` hỗ trợ `trackio`. Nên được khởi tạo ngay tại đầu script của bạn.

#### __init__[[accelerate.tracking.TrackioTracker.__init__]]

```python
__init__(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L437)

## CometMLTracker[[accelerate.tracking.CometMLTracker]]

#### accelerate.tracking.CometMLTracker[[accelerate.tracking.CometMLTracker]]

```python
accelerate.tracking.CometMLTracker(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L497)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `comet_ml.start`: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/start/

Lớp `Tracker` hỗ trợ `comet_ml`. Nên được khởi tạo ngay đầu script của bạn.

Khóa API phải được lưu trữ trong tệp cấu hình Comet.

Lưu ý: Đối với các phiên bản `comet_ml` < 3.41.0, các đối số từ khóa bổ sung sẽ được truyền đến `comet_ml.Experiment` thay vào đó: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/#comet_ml.Experiment.__init__

#### __init__[[accelerate.tracking.CometMLTracker.__init__]]

```python
__init__(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L518)

## AimTracker[[accelerate.tracking.AimTracker]]

#### accelerate.tracking.AimTracker[[accelerate.tracking.AimTracker]]

```python
accelerate.tracking.AimTracker(run_name: str, logging_dir: str | os.PathLike | None = '.', **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L591)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `Run.__init__`.

Lớp `Tracker` hỗ trợ `aim`. Nên được khởi tạo ngay tại đầu script của bạn.

#### __init__[[accelerate.tracking.AimTracker.__init__]]

```python
__init__(run_name: str, logging_dir: str | os.PathLike | None = '.', **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L605)

## MLflowTracker[[accelerate.tracking.MLflowTracker]]

#### accelerate.tracking.MLflowTracker[[accelerate.tracking.MLflowTracker]]

```python
accelerate.tracking.MLflowTracker(experiment_name: str | None = None, logging_dir: str | os.PathLike | None = None, run_id: str | None = None, tags: dict[str, typing.Any] | str | None = None, nested_run: bool | None = False, run_name: str | None = None, description: str | None = None)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L694)

**Tham số:**

experiment_name (`str`, *tùy chọn*) : Tên của thí nghiệm. Biến môi trường MLFLOW_EXPERIMENT_NAME có ưu tiên cao hơn so với đối số này.

logging_dir (`str` hoặc `os.PathLike`, mặc định là `"."`) : Vị trí để lưu trữ các log của mlflow.

run_id (`str`, *tuỳ chọn*) : Nếu được chỉ định, lấy run có UUID được chỉ định và ghi log các tham số cũng như chỉ số dưới run đó. Thời gian kết thúc của run sẽ không được đặt và trạng thái của nó được đặt thành đang chạy, nhưng các thuộc tính khác của run (source_version, source_type, v.v.) không bị thay đổi. Biến môi trường MLFLOW_RUN_ID có độ ưu tiên cao hơn so với đối số này.

tags (`Dict[str, str]`, *tùy chọn*) : Một `dict` tùy chọn gồm các khóa và giá trị `str`, hoặc một bản dump `str` từ một `dict`, để thiết lập làm thẻ cho run. Nếu một run đang được tiếp tục, các thẻ này sẽ được thiết lập cho run được tiếp tục đó. Nếu một run mới đang được tạo, các thẻ này sẽ được thiết lập cho run mới. Biến môi trường MLFLOW_TAGS có ưu tiên cao hơn so với đối số này.

nested_run (`bool`, *tùy chọn*, mặc định là `False`) : Kiểm soát việc run có được lồng trong run cha hay không. True tạo ra một run lồng nhau. Biến môi trường MLFLOW_NESTED_RUN có ưu tiên cao hơn so với đối số này.

run_name (`str`, *tùy chọn*) : Tên của run mới (được lưu dưới dạng tag mlflow.runName). Chỉ được sử dụng khi `run_id` không được chỉ định.

description (`str`, *tùy chọn*) : Một chuỗi tùy chọn để điền vào hộp mô tả của run. Nếu một run đang được tiếp tục, mô tả sẽ được đặt trên run được tiếp tục đó. Nếu một run mới đang được tạo, mô tả sẽ được đặt trên run mới.

Lớp `Tracker` hỗ trợ `mlflow`. Nên được khởi tạo ngay đầu script của bạn.

#### __init__[[accelerate.tracking.MLflowTracker.__init__]]

```python
__init__(experiment_name: str | None = None, logging_dir: str | os.PathLike | None = None, run_id: str | None = None, tags: dict[str, typing.Any] | str | None = None, nested_run: bool | None = False, run_name: str | None = None, description: str | None = None)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L725)

## ClearMLTracker[[accelerate.tracking.ClearMLTracker]]

#### accelerate.tracking.ClearMLTracker[[accelerate.tracking.ClearMLTracker]]

```python
accelerate.tracking.ClearMLTracker(run_name: str | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L905)

**Tham số:**

run_name (`str`, *tùy chọn*) : Tên của thí nghiệm. Các biến môi trường `CLEARML_PROJECT` và `CLEARML_TASK` có quyền ưu tiên cao hơn so với đối số này.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các kwargs được truyền đến phương thức `Task.__init__`.

Lớp `Tracker` hỗ trợ `clearml`. Nên được khởi tạo ngay đầu script của bạn.

#### __init__[[accelerate.tracking.ClearMLTracker.__init__]]

```python
__init__(run_name: str | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L920)

## SwanLabTracker[[accelerate.tracking.SwanLabTracker]]

#### accelerate.tracking.SwanLabTracker[[accelerate.tracking.SwanLabTracker]]

```python
accelerate.tracking.SwanLabTracker(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L1151)

**Tham số:**

run_name (`str`) : Tên của lần chạy thử nghiệm.

- ****kwargs** (các đối số từ khóa bổ sung, *tùy chọn*) : Các đối số từ khóa bổ sung được truyền đến phương thức `swanlab.init`.

Lớp `Tracker` hỗ trợ `swanlab`. Nên được khởi tạo ngay tại đầu script của bạn.

#### __init__[[accelerate.tracking.SwanLabTracker.__init__]]

```python
__init__(run_name: str, **kwargs)
```

[Nguồn](https://github.com/huggingface/accelerate/blob/main/src/accelerate/tracking.py#L1166)

