1

そのため、約 200 曲 (曲あたり約 3 ~ 5 分) のセグメントの固定ベクトル表現を学習しようとしており、そのために LSTM ベースの Sequence-to-sequence Autoencoder を使用したいと考えていました。

次のように(librosaを使用して)オーディオを前処理しています:

  1. 私は最初に、曲ごとに (1500000,) - (2500000,) 前後の形状の生のオーディオ信号時系列を取得しています。
  2. 次に、各生の時系列をセグメントにスライスし、曲ごとに (512, 3000) - (512, 6000) の下位レベルのメル スペクトログラム マトリックスを取得します。これらの (512,) ベクトルのそれぞれは、曲の一部を表すため、「ミニ曲」と呼ぶことができます。
  3. これらすべての曲のミニ曲をすべて縦に積み重ねて、トレーニング データを作成します (これをXと呼びましょう)。X のサイズは (512, 600000) であることがわかります。最初の次元 (512) はウィンドウ サイズで、2 番目の次元 (600000) はデータセット内の「ミニソング」の総数です。
  4. つまり、X には約 600000 のミニソングがあります。X の各列は、長さ (512,) のミニソングを表します。
  5. これらの (512,) ミニソング ベクトルのそれぞれは、ミニソングごとに (50,) ベクトルにエンコードする必要があります。つまり、プロセスの最後には 600000 (50,) ベクトルになります。
  6. より標準的な用語では、それぞれの長さが 512 の 600000 個のトレーニング サンプルがあります。私の場合を除いて、長さ 512 のサンプルを一時的なプロパティを持つシーケンスとして扱いたいと思います。]

ここで例を読んで、それを私のユースケースに拡張しようとしていました。レイヤーのパラメーターtimestepsinput_dimパラメーターを何に設定する必要があるのか​​ 疑問に思っていました。Input

私はtimesteps = X.shape[0](この場合は512)とinput_dim = X.shape[1](600000)を設定しています。これは正しい方法ですか?

編集:上記の説明を追加しました。

4

1 に答える 1