Why does lingvo use a binary mask instead of sequence lengths for representing invalid regions of sequences?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python, tensorflow
- Ambito
- machine-learning
Direzione di ricerca
Start by reading the Lingvo RNN batching code mentioned in the issue and compare its padding mask representation with TensorFlow's tf.nn.ctc_loss length input. Trace how the mask is formed and whether it can provide sequence lengths; the issue asks for the motivation and a recommendation for converting representations. Done means explaining the design choice and a sound conversion approach.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I've noticed that the rnn code in lingvo (in particular for ASR tasks) uses bitmasks for representing the validity of data in a sequence when you do batching.
To be explicit, if you have, data, a tensor of (max_sequence_length, batch_size, feature_size), then padding is a tensor of (max_sequence_length, batch_size). The vector at data[i][j] is valid only if padding[i][j] == 1
Meanwhile, in the rest of deep learning land, I've always seen the validity of different-length-sequences in a minibatch described via a "length" tensor, of shape (batch_size, ). This obviously uses a lot less memory.
What is the motivation behind this? If I had to guess, it is for making TPUs happy, but I don't know enough about TPU microarchitecture to know. I would like to create a ctc model on top of lingvo, but the ctc loss function https://www.tensorflow.org/api_docs/python/tf/nn/ctc_loss requires a length tensor, rather than a bitmask tensor. Do you have any recommendations for how to convert the bitmask padding representation to a length padding representation?
- Lingua principale
- Python
- Stelle
- 2.9k
- Fork
- 452
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di tensorflow/lingvo
-
About inverseAugAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
tensorflow/lingvo#370 · 1 commento ·
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
tensorflow/lingvo#359 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 15/100
tensorflow/lingvo#356 · 5 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
tensorflow/lingvo#333 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
tensorflow/lingvo#332 · 1 commento ·
Tutte le issue di tensorflow/lingvo
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
navikt/tiltakspenger#129 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 83/100
FinanceFlash/unvibecode#652 ·
I maintainer di solito rispondono entro 1 giorno
-
netbox status: needs triage type: documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
netbox-community/netbox#23655 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
MCDReforged/MCDReforged#442 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bytedance/agentkit-samples#277 ·