2016-01-28 26 views
14

Bir zaman dizisi t var (x0, ..., xt) xi'nin her biri bir d-boyutlu vektör, yani xi = (x0i, x1i, ...., xdi) . Böylece X girişim şekil [batch_size, d]LSTM ağına giriş tensorflow

Tensorflow LSTM girişi [batchSize, hidden_size] boyutunda olmalıdır. Sorum şu: Zaman serilerimi LSTM'ye nasıl girmeliyim. Düşündüğüm olası bir çözüm, [d, hidden_size] boyutunda ek ağırlık matrisine sahip olmak ve X * W + B ile LSTM'yi girmektir. netwo ר k?

Teşekkürler

+1

X'i tartışırken batch_size'den bahsediyorsunuz, ancak LSTM için batchSize'den bahsediyorsunuz. Bunlar aynı şey mi? – Sycorax

cevap

15

Sezginiz doğrudur; İhtiyacınız olan şey (ve neyi anlattığınız), giriş vektörünüzü LSTM'nizin girişinin boyutuna çevirmek için bir katıştır. Bunu başarmak için bildiğim üç temel yol vardır.

Eğer açıklandığı gibi ek bir ağırlık matrisi W ve önyargı vektörü b ile manuel olarak yapabileceğini
    • .
    • linear() işlevi from TensorFlow's rnn_cell.py library işlevini kullanarak ağırlık matrisini ve önyargı vektörlerini otomatik olarak oluşturabilirsiniz. Daha sonra rnn_decoder() işlevi in Tensorflow's seq2seq.py library aracılığıyla ya da başka bir şekilde LSTM'nizi oluştururken, bu doğrusal katmanın çıkışını LSTM'inizin girdisi olarak geçirin.
    • Ya da Tensorflow'un bu gömülme işlemini oluşturup, aynı seq2seq kitaplığının 141 numaralı satırında embedding_rnn_decoder() işlevi aracılığıyla LSTM'yi oluşturarak otomatik olarak LSTM'inizin girişlerine bağlayabilirsiniz. (Herhangi isteğe bağlı argümanlar olmadan bu işlev için kod üzerinden iz varsa, basitçe bir araya girişi için doğrusal bir gömme tabakası yanı sıra LSTM oluşturma ve bunları çengel olduğunu göreceksiniz.) Sürece

    Herhangi bir nedenden dolayı oluşturduğunuz bileşenlere erişmeniz gerekiyorsa, kodunuzu yüksek seviyede tutmanız için üçüncü seçeneği öneriyorum.

  • +0

    Üçüncü çözüm bu durumda gerçekten işe yarıyor mu? Embedded_rnn_decoder() 'ı seyrek ama çok boyutlu giriş tensörü için kullanabilir misiniz? Bu işlev, tek boyutlu bir tamsayı veya tek-kodlama ile verilen bir yerleştirmeyi arayacak gibi görünüyor, ancak bir ağırlık matrisi kullanarak bir giriş vektörünün boyutsallığını değiştirmenin bir yolu değil. – bschreck