# SEW

## Genel Bakış

SEW (Squeezed and Efficient Wav2Vec), Felix Wu, Kwangyoun Kim, Jing Pan, Kyu Han, Kilian Q. Weinberger ve Yoav Artzi tarafından [Performance-Efficiency Trade-offs in Unsupervised Pre-training for Speech Recognition](https://huggingface.co/papers/2109.06870) makalesinde önerilmiştir.

Makalenin özeti aşağıdaki gibidir:

*Bu makale, otomatik konuşma tanıma (ASR) için önceden eğitilmiş modellerde performans-verimlilik ödünleşimlerinin bir çalışmasıdır. wav2vec 2.0'a odaklanıyor ve hem model performansını hem de verimliliğini etkileyen çeşitli mimari tasarımları formalize ediyor. Tüm gözlemlerimizi bir araya getirerek, çeşitli eğitim kurulumlarında hem performans hem de verimlilik boyutlarında önemli iyileştirmeler sunan önceden eğitilmiş bir model mimarisi olan SEW'yi (Squeezed and Efficient Wav2vec) tanıtıyoruz. Örneğin, LibriSpeech üzerindeki 100s-960s yarı denetimli kurulumda SEW, wav2vec 2.0'a kıyasla 1.9x çıkarım hızlanmasına ulaşırken, kelime hata oranında %13.5'lik bir göreli azalma sağlıyor. Benzer bir çıkarım süresiyle SEW, farklı model boyutlarında kelime hata oranını %25-50 oranında azaltıyor.*

Bu model [anton-l](https://huggingface.co/anton-l) tarafından katkıda bulunmuştur.

## Kullanım ipuçları

- SEW, ses sinyalinin ham dalga formuna karşılık gelen bir float dizisini kabul eden bir ses modelidir.
- SEWForCTC, bağlantısal geçici sınıflandırma (CTC) kullanılarak ince ayarlanır; bu nedenle model çıktısının [Wav2Vec2CTCTokenizer](/docs/transformers/v5.23.0/tr/model_doc/wav2vec2#transformers.Wav2Vec2CTCTokenizer) ile çözümlenmesi gerekir.

## Kaynaklar

- [Ses sınıflandırma görevi kılavuzu](../tasks/audio_classification)
- [Otomatik konuşma tanıma görevi kılavuzu](../tasks/asr)

## SEWConfig[[transformers.SEWConfig]]

#### transformers.SEWConfig[[transformers.SEWConfig]]

```python
transformers.SEWConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 32, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, squeeze_factor: int = 2, hidden_act: str = 'gelu', hidden_dropout: float | int = 0.1, activation_dropout: float | int = 0.1, attention_dropout: float | int = 0.1, feat_proj_dropout: float | int = 0.0, final_dropout: float | int = 0.1, layerdrop: float | int = 0.1, initializer_range: float = 0.02, layer_norm_eps: float = 1e-05, feat_extract_norm: str = 'group', feat_extract_activation: str = 'gelu', conv_dim: list[int] | tuple[int, ...] = (64, 128, 128, 128, 128, 256, 256, 256, 256, 512, 512, 512, 512), conv_stride: list[int] | tuple[int, ...] = (5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1), conv_kernel: list[int] | tuple[int, ...] = (10, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1), conv_bias: bool = False, num_conv_pos_embeddings: int = 128, num_conv_pos_embedding_groups: int = 16, apply_spec_augment: bool = True, mask_time_prob: float | int = 0.05, mask_time_length: int = 10, mask_time_min_masks: int = 2, mask_feature_prob: float | int = 0.0, mask_feature_length: int = 10, mask_feature_min_masks: int = 0, ctc_loss_reduction: str = 'mean', ctc_zero_infinity: bool = False, use_weighted_layer_sum: bool = False, classifier_proj_size: int = 256, pad_token_id: int | None = 0, bos_token_id: int | None = 1, eos_token_id: int | list[int] | None = 2)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/configuration_sew.py#L27)

**Parametreler:**

vocab_size (`int`, *isteğe bağlı*, varsayılan `32`) : Modelin sözlük boyutu. `input_ids` tarafından temsil edilebilecek farklı token sayısını tanımlar.

hidden_size (`int`, *isteğe bağlı*, varsayılan `768`) : Gizli temsillerin boyutu.

num_hidden_layers (`int`, *isteğe bağlı*, varsayılan `12`) : Transformer decoder'ındaki gizli katman sayısı.

num_attention_heads (`int`, *isteğe bağlı*, varsayılan `12`) : Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.

intermediate_size (`int`, *isteğe bağlı*, varsayılan `3072`) : MLP temsil boyutu.

squeeze_factor (`int`, *isteğe bağlı*, varsayılan 2) : Kodlayıcıdan sonraki dizi uzunluğu indirgeme ve dönüştürücünün (transformer) sonraki yükseltme çarpanı.

hidden_act (`str`, *isteğe bağlı*, varsayılan `gelu`) : Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, `"gelu"`, `"relu"`, `"silu"` vb.

hidden_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı.

activation_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.

attention_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Dikkat olasılıkları için dropout oranı.

feat_proj_dropout (`float`, *opsiyonel*, varsayılan 0.0) : Özellik kodlayıcısının çıktısı için dropout olasılığı.

final_dropout (`float`, *isteğe bağlı*, varsayılan 0.1) : [SEWForCTC](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWForCTC)'nin son projeksiyon katmanı için dropout olasılığı.

layerdrop (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](see https://huggingface.co/papers/1909.11556) bakın.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

layer_norm_eps (`float`, *opsiyonel*, varsayılan `1e-05`) : Katman normalizasyonu katmanları tarafından kullanılan epsilon.

feat_extract_norm (`str`, *isteğe bağlı*, varsayılan `"group"`) : Özellik kodlayıcıdaki 1B konvolüsyonel katmanlara uygulanacak norm. Sadece ilk 1B konvolüsyonel katman için grup normalizasyonu olan `"group"` veya tüm 1B konvolüsyonel katmanlar için katman normalizasyonu olan `"layer"` değerlerinden biri.

feat_extract_activation (`str, `optional`, defaults to `"gelu"`) : The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, `"gelu"`, `"relu"`, `"selu"` and `"gelu_new"` are supported.

conv_dim (`tuple[int]` veya `list[int]`, *opsiyonel*, varsayılan değeri `(64, 128, 128, 128, 128, 256, 256, 256, 256, 512, 512, 512, 512)`) : Özellik kodlayıcıdaki her 1B konvolüsyon katmanının giriş ve çıkış kanal sayısını tanımlayan tamsayılardan oluşan bir demet. *conv_dim*'in uzunluğu, 1B konvolüsyon katmanlarının sayısını belirler.

conv_stride (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1)`) : Özellik kodlayıcıdaki her 1D konvolüsyon katmanının adımını (stride) tanımlayan tamsayılardan oluşan bir demet. *conv_stride*'ın uzunluğu, konvolüsyon katmanlarının sayısını belirler ve *conv_dim*'ın uzunluğuyla eşleşmelidir.

conv_kernel (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(10, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1)`) : Özellik kodlayıcıdaki her 1D konvolüsyonel katmanın çekirdek boyutunu tanımlayan tamsayılar dizisi. *conv_kernel*'ın uzunluğu, konvolüsyonel katmanların sayısını belirler ve *conv_dim*'ın uzunluğuyla eşleşmelidir.

conv_bias (`bool`, *isteğe bağlı*, varsayılan `False`) : 1B konvolüsyonel katmanların bir sapma (bias) içerip içermediğini belirtir.

num_conv_pos_embeddings (`int`, *isteğe bağlı*, varsayılan 128) : Konvolüsyonel konumsal gömme sayısı. 1D konvolüsyonel konumsal gömme katmanının çekirdek boyutunu tanımlar.

num_conv_pos_embedding_groups (`int`, *isteğe bağlı*, varsayılan 16) : 1D konvolüsyonel konumsal gömme katmanının grup sayısı.

apply_spec_augment (`bool`, *isteğe bağlı*, varsayılan `True`) : Özellik kodlayıcısının çıktılarında *SpecAugment* veri artırma uygulamasının yapılıp yapılmayacağını belirtir. Referans için [SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition](https://huggingface.co/papers/1904.08779) makalesine bakınız.

mask_time_prob (`float`, *opsiyonel*, varsayılan 0.05) : Zaman ekseni boyunca tüm özellik vektörlerinin, maskelenecek yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerinde ''mask_time_prob*len(time_axis)/mask_time_length'' adet bağımsız maske üretir. Maskelenecek vektör aralığının başlangıcı olarak seçilecek her özellik vektörünün olasılığından yola çıkarak akıl yürütülüyorsa, *mask_time_prob* değeri `prob_vector_start*mask_time_length` olmalıdır. Dikkat edin, örtüşme, maskelenen vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızca `apply_spec_augment is True` ise geçerlidir.

mask_time_length (`int`, *isteğe bağlı*, varsayılan 10) : Zaman ekseni boyunca vektör aralığının uzunluğu.

mask_time_min_masks (`int`, *opsiyonel*, varsayılan 2), : `mask_feature_prob` değerinden bağımsız olarak, zaman ekseninde üretilen, her zaman adımında, `mask_feature_length` uzunluğundaki maskelerin minimum sayısı. Yalnızca ''mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks'' durumu geçerliyse ilgili.

mask_feature_prob (`float`, *opsiyonel*, varsayılan 0.0) : Özellik ekseni boyunca, maskeleme işlemine tabi tutulacak tüm özellik vektörlerinin yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerinde ''mask_feature_prob*len(feature_axis)/mask_time_length'' adet bağımsız maske üretir. Her bir özellik vektörünün, maskeleme işlemine tabi tutulacak vektör aralığının başlangıcı olarak seçilme olasılığından yola çıkarak akıl yürütülüyorsa, *mask_feature_prob* değeri `prob_vector_start*mask_feature_length` olmalıdır. Dikkat edin, örtüşme, maskeleme işlemine tabi tutulan vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızca `apply_spec_augment is True` ise geçerlidir.

mask_feature_prob (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Özellik ekseni boyunca, maskelenmesi istenen tüm özellik vektörlerinin yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerinde `mask_feature_prob*len(feature_axis)/mask_time_length` bağımsız maske üretir. Maskelenecek vektör aralığının başlangıcı olarak seçilecek her özellik vektörünün olasılığından yola çıkarak akıl yürütülürse, *mask_feature_prob* değeri `prob_vector_start*mask_feature_length` olmalıdır. Dikkat edin, örtüşme, maskelenen vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızca `apply_spec_augment` değeri `True` ise geçerlidir.

mask_feature_length (`int`, *isteğe bağlı*, varsayılan 10) : Özellik ekseni boyunca vektör aralığının uzunluğu.

mask_feature_min_masks (`int`, *opsiyonel*, varsayılan 0) : `mask_feature_prob` değerinden bağımsız olarak, her zaman adımında, özellik ekseni boyunca üretilen, uzunluğu `mask_feature_length` olan maskelerin minimum sayısı. Yalnızca ''mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks'' durumu geçerliyse ilgili.

ctc_loss_reduction (`str`, *isteğe bağlı*, varsayılan `mean`) : `torch.nn.CTCLoss` çıktısına uygulanacak indirgemeyi belirtir. Yalnızca eğitim sırasında geçerlidir.

ctc_zero_infinity (`bool`, *isteğe bağlı*, varsayılan `False`) : `torch.nn.CTCLoss`'ün sonsuz kayıplarını ve ilişkili gradyanlarını sıfırlayıp sıfırlamayacağını belirtir. Sonsuz kayıplar, girdilerin hedeflerle hizalanmak için çok kısa olması durumunda ortaya çıkar. Yalnızca bir [SEWForCTC](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWForCTC) örneği eğitilirken geçerlidir.

use_weighted_layer_sum (`bool`, *isteğe bağlı*, varsayılan `False`) : Öğrenmiş ağırlıklara sahip katman çıktıları ağırlıklı ortalamasının kullanılıp kullanılmayacağını belirtir. Yalnızca [Wav2Vec2ForSequenceClassification](/docs/transformers/v5.23.0/tr/model_doc/wav2vec2#transformers.Wav2Vec2ForSequenceClassification) bir örneği kullanıldığında geçerlidir.

classifier_proj_size (`int`, *opsiyonel*, varsayılan 256) : Sınıflandırma için token ortalama havuzlamadan önceki projeksiyonun boyutluluğu.

pad_token_id (`int`, *isteğe bağlı*, varsayılan `0`) : Sözlükte dolgu için kullanılan token kimliği.

bos_token_id (`int`, *isteğe bağlı*, varsayılan `1`) : Sözlükte akış başlangıcı için kullanılan token kimliği.

eos_token_id (`Union[int, list[int]]`, *isteğe bağlı*, varsayılan `2`) : Sözlükte akış sonu için kullanılan token kimliği.

Bu, bir SEWModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Sew modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılanlarla bir yapılandırma örneklendiğinde, [BAAI/seggpt-vit-large](https://huggingface.co/BAAI/seggpt-vit-large) ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python
>>> from transformers import SEWConfig, SEWModel

>>> # Initializing a SEW asapp/sew-tiny-100k style configuration
>>> configuration = SEWConfig()

>>> # Initializing a model (with random weights) from the asapp/sew-tiny-100k style configuration
>>> model = SEWModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## SEWModel[[transformers.SEWModel]]

#### transformers.SEWModel[[transformers.SEWModel]]

```python
transformers.SEWModel(config: SEWConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L662)

**Parametreler:**

config ([SEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Üzerinde herhangi bir özel head olmadan ham hidden-states üreten çıplak Sew Model.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.SEWModel.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, mask_time_indices: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L729)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir; *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, `torch.Tensor` tipinde bir tensöre dolgu ve dönüştürme amacıyla [AutoProcessor](/docs/transformers/v5.23.0/tr/model_doc/auto#transformers.AutoProcessor) kullanılmalıdır. Ayrıntılar için [Wav2Vec2Processor.__call__()](/docs/transformers/v5.23.0/tr/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

mask_time_indices (`torch.BoolTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Karşıtlı kayıp için çıkarılan özellikleri maskelemek üzere kullanılacak indeksler. Eğitim modundayken, model *config.proj_codevector_dim* uzayında maskelenmiş çıkarılan özellikleri tahmin etmeyi öğrenir.

**Dönüş:** [BaseModelOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.BaseModelOutput) veya `tuple(torch.Tensor)`

Yapılandırmaya ([SEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşan bir [BaseModelOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.BaseModelOutput) veya `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda).

[SEWModel](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`) -- Modelin son katmanının çıktısındaki gizli durumlar dizisi.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

## SEWForCTC[[transformers.SEWForCTC]]

#### transformers.SEWForCTC[[transformers.SEWForCTC]]

```python
transformers.SEWForCTC(config: SEWConfig, target_lang: str | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L774)

**Parametreler:**

config ([SEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

target_lang (`str`, *isteğe bağlı*) : Adaptör ağırlıklarının dil kimliği. Adaptör ağırlıkları adapter..safetensors veya adapter..bin biçiminde saklanır. Sadece adaptörlerle bir [SEWForCTC](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWForCTC) örneği kullanıldığında geçerlidir. Varsayılan olarak 'eng' kullanılır.

Üzerinde Bağlantıcı Geçici Sınıflandırma (CTC) için `language modeling` başlığı bulunan SEW Modeli.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.SEWForCTC.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L843)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir; *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, `torch.Tensor` tipinde bir tensöre dolgu ve dönüştürme amacıyla [AutoProcessor](/docs/transformers/v5.23.0/tr/model_doc/auto#transformers.AutoProcessor) kullanılmalıdır. Ayrıntılar için [Wav2Vec2Processor.__call__()](/docs/transformers/v5.23.0/tr/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size, target_length)`, *isteğe bağlı*) : Bağlantılı zaman sınıflandırması için etiketler. Not: `target_length`, çıktı logitlerinin dizi uzunluğundan küçük veya eşit olmalıdır. Endeksler `[-100, 0, ..., config.vocab_size - 1]` aralığından seçilir. `-100` olarak ayarlanan tüm etiketler yok sayılır (maske uygulanır), kayıp yalnızca `[0, ..., config.vocab_size - 1]` aralığındaki etiketler için hesaplanır.

**Dönüş:** [CausalLMOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.CausalLMOutput) veya `tuple(torch.Tensor)`

[CausalLMOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.CausalLMOutput) veya `torch.Tensor` bir demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırmaya ([SEEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[SEWForCTC](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWForCTC) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Dil modelleme kaybı (sonraki token tahmini için).
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.vocab_size)`) -- Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

```python
>>> from transformers import AutoProcessor, SEWForCTC
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("BAAI/seggpt-vit-large")
>>> model = SEWForCTC.from_pretrained("BAAI/seggpt-vit-large")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...
```

## SEWForSequenceClassification[[transformers.SEWForSequenceClassification]]

#### transformers.SEWForSequenceClassification[[transformers.SEWForSequenceClassification]]

```python
transformers.SEWForSequenceClassification(config: SEWConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L901)

**Parametreler:**

config ([SEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Üstünde bir dizi sınıflandırma başlığı (havuzlanmış çıktı üzerinde doğrusal bir katman) bulunan, SUPERB Keyword Spotting gibi görevler için kullanılan SEW Modeli.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.SEWForSequenceClassification.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sew/modeling_sew.py#L934)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir, *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, [AutoProcessor](/docs/transformers/v5.23.0/tr/model_doc/auto#transformers.AutoProcessor) dolguyu (padding) ve `torch.Tensor` tipinde bir tensöre dönüştürmeyi uygulamak üzere kullanılmalıdır. Ayrıntılar için `SEWProcessor.__call__` bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size,)`, *isteğe bağlı*) : Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.num_labels - 1]` aralığında olmalıdır. `config.num_labels == 1` ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, `config.num_labels > 1` ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

**Dönüş:** [SequenceClassifierOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) veya `tuple(torch.Tensor)`

[SequenceClassifierOutput](/docs/transformers/v5.23.0/tr/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([SEWConfig](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[SEWForSequenceClassification](/docs/transformers/v5.23.0/tr/model_doc/sew#transformers.SEWForSequenceClassification) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, config.num_labels)`) -- Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Tek etiketli sınıflandırma örneği:

```python
>>> import torch
>>> from transformers import AutoTokenizer, SEWForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("BAAI/seggpt-vit-large")
>>> model = SEWForSequenceClassification.from_pretrained("BAAI/seggpt-vit-large")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = SEWForSequenceClassification.from_pretrained("BAAI/seggpt-vit-large", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...
```

Çok etiketli sınıflandırma örneği:

```python
>>> import torch
>>> from transformers import AutoTokenizer, SEWForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("BAAI/seggpt-vit-large")
>>> model = SEWForSequenceClassification.from_pretrained("BAAI/seggpt-vit-large", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = SEWForSequenceClassification.from_pretrained(
...     "BAAI/seggpt-vit-large", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss
```

