# TensorBoard kayıtçısı

TensorBoard, makine öğrenimi deneyleri için bir görselleştirme araç kitidir. TensorBoard, kayıp ve doğruluk gibi metriklerin izlenmesine ve görselleştirilmesine, model grafiğinin görselleştirilmesine, histogramların görüntülenmesine, görüntülerin gösterilmesine ve daha fazlasına olanak tanır. TensorBoard, Hugging Face Hub ile iyi bir şekilde entegre edilmiştir. Hub, `tfevents` gibi TensorBoard izleri Hub'a yüklendiğinde bunları otomatik olarak algılar ve bunları görselleştirmek için bir örnek başlatır. Hub'daki TensorBoard entegrasyonu hakkında daha fazla bilgi için [bu kılavuza](https://huggingface.co/docs/hub/tensorboard) göz atın.

Bu entegrasyondan yararlanmak için `huggingface_hub`, günlükleri Hub'a göndermek üzere özel bir kayıtçı (logger) sağlar. [SummaryWriter](https://tensorboardx.readthedocs.io/en/latest/tensorboard.html) için ek kod gerektirmeyen doğrudan bir alternatif olarak çalışır. İzler (traces) yine de yerel olarak kaydedilir ve bir arka plan işi bunları düzenli aralıklarla Hub'a gönderir.

## HFSummaryWriter[[huggingface_hub.HFSummaryWriter]]

#### huggingface_hub.HFSummaryWriter[[huggingface_hub.HFSummaryWriter]]

```python
huggingface_hub.HFSummaryWriter(*args, **kwargs)
```

[Kaynak](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_tensorboard_logger.py#L39)

**Parametreler:**

repo_id (`str`) : Günlüklerin itileceği depoyun kimliği.

logdir (`str`, *isteğe bağlı*) : Günlüklerin yazılacağı dizin. Belirtilmezse, alttaki `SummaryWriter` nesnesi tarafından yerel bir dizin oluşturulur.

commit_every (`int` veya `float`, *isteğe bağlı*) : Günlüklerin Hub'a gönderilme sıklığı (dakika cinsinden). Varsayılan değer 5 dakikadır.

squash_history (`bool`, *isteğe bağlı*) : Her commit sonrasında repoyu geçmişinin sıkıştırılıp sıkıştırılmayacağını belirtir. Varsayılan değer `False`'dir. Commit'lerin sıkıştırılması, repo çok büyük hale geldiğinde performans düşüşlerini önlemek için faydalıdır.

repo_type (`str`, *isteğe bağlı*) : Günlüklerin itileceği repozituarın türü. Varsayılan olarak "model"dir.

repo_revision (`str`, *isteğe bağlı*) : Günlüklerin itileceği deposunun revizyonu. Varsayılan değer "main"dir.

repo_private (`bool`, *isteğe bağlı*) : Depoyu özel yapılıp yapılmayacağını belirtir. `None` (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır.

path_in_repo (`str`, *isteğe bağlı*) : Günlüklerin itileceği depodaki klasörün yolu. Varsayılan olarak "tensorboard/".

repo_allow_patterns (`list[str]` veya `str`, *isteğe bağlı*) : Yüklemeye dahil edilecek desenlerin listesi. Varsayılan değer `"*.tfevents.*"`'tir. Daha fazla ayrıntı için [yükleme kılavuzuna](https://huggingface.co/docs/huggingface_hub/guides/upload#upload-a-folder) göz atın.

repo_ignore_patterns (`list[str]` veya `str`, *isteğe bağlı*) : Yüklemeye dahil edilmeyecek desenlerin listesi. Daha fazla ayrıntı için [yükleme kılavuzuna](https://huggingface.co/docs/huggingface_hub/guides/upload#upload-a-folder) göz atın.

token (`str`, *isteğe bağlı*) : Kimlik doğrulama belirteci. Varsayılan olarak depolanan belirteç kullanılır. Daha fazla ayrıntı için https://huggingface.co/settings/token adresine bakın

kwargs : `SummaryWriter`'e iletilen ek anahtar kelime argümanları.

Eğitim günlüklerini Hub'a göndermek için tensorboard'un `SummaryWriter` sınıfının etrafındaki sarmalayıcı.

Veriler yerel olarak kaydedilir ve ardından Hub'a asenkron olarak gönderilir. Eğitim betiğinin bloklanmasını önlemek için Hub'a veri gönderimi ayrı bir iş parçacığında (thread) gerçekleştirilir. Özellikle, yükleme herhangi bir nedenle başarısız olursa (ör. bir bağlantı sorunu), ana betik yarıda kesilmez. Veriler her `commit_every` dakikada bir (varsayılan olarak her 5 dakikada bir) otomatik olarak Hub'a gönderilir.

> [!WARNING]
> `HFSummaryWriter` deneyseldir. API'si gelecekte önceden haber verilmeden değiştirilebilir.

Örnekler:
```diff
# Taken from https://pytorch.org/docs/stable/tensorboard.html
- from torch.utils.tensorboard import SummaryWriter
+ from huggingface_hub import HFSummaryWriter

import numpy as np

- writer = SummaryWriter()
+ writer = HFSummaryWriter(repo_id="username/my-trained-model")

for n_iter in range(100):
    writer.add_scalar('Loss/train', np.random.random(), n_iter)
    writer.add_scalar('Loss/test', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/test', np.random.random(), n_iter)
```

```py
>>> from huggingface_hub import HFSummaryWriter

# Logs are automatically pushed every 15 minutes (5 by default) + when exiting the context manager
>>> with HFSummaryWriter(repo_id="test_hf_logger", commit_every=15) as logger:
...     logger.add_scalar("a", 1)
...     logger.add_scalar("b", 2)
```

