Why does lingvo use a binary mask instead of sequence lengths for representing invalid regions of sequences?
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 25/100
- issue の種類
- ドキュメント
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- python, tensorflow
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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?
- 主要言語
- Python
- スター
- 2.9k
- フォーク
- 452
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
tensorflow/lingvo のほかの issue
-
About inverseAugオープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
tensorflow/lingvo#370 · コメント 1 件 ·
-
難易度 4/5 1〜2日 初心者へのやさしさ 35/100
tensorflow/lingvo#359 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 15/100
tensorflow/lingvo#356 · リアクション 5 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
tensorflow/lingvo#333 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
tensorflow/lingvo#332 · コメント 1 件 ·
tensorflow/lingvo の issue をすべて見る
似ている issue
-
enhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
Community
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
kedro-org/kedro-plugins#1575 ·
メンテナーはふだん 1 日以内に返信
-
hive size:simple
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
Significant-Gravitas/AutoGPT#16733 ·
メンテナーはふだん 1 日以内に返信
-
changelog investigate
難易度 1/5 1時間未満 初心者へのやさしさ 74/100
ramnes/notion-sdk-py#444 ·