Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

last_timestep - bidirectional mode #210

Open
ftwasdYK opened this issue Nov 12, 2024 · 1 comment
Open

last_timestep - bidirectional mode #210

ftwasdYK opened this issue Nov 12, 2024 · 1 comment

Comments

@ftwasdYK
Copy link

ftwasdYK commented Nov 12, 2024

Καλησπέρα,

θα ήθελα να ρωτήσω για την ασκήση μας, σε ενα bidirectional RNN στο backward κομμάτι το output που μας ενδιαφέρει δεν θα έπρεπε να είναι το αντίστοιχο τελευταιο χρονικό βήμα πριν το padding?

Πχ. αν δωσω ως είσοδο την ακολουθια $[x_1, x_2, x_3, ... x_T, 0, 0, 0]$, οπου τα 0 ειναι το padding, τοτε στο backward κομμάτι η ακολουθία που θα υπολογιστεί δεν θα είναι με την μορφή $[0, 0, 0, x_T, x_{T-1}, ... ,x_1;]$;

Η βασική μου ερώτηση είναι ότι στη μέθοδο last_timestep στο BasicLSTM στο αρχείο lstm.py δεν θα επρέπε το last_backward to slicing να μην είναι το [:,0,:], διότι θα γυρνάει πάντα το τελευταίο χρονικό βήμα το οποίο μπορεί να είναι και ένα σημείο στο οποίο έχει προηγηθεί padding; Οπώς για το παράδειγμα που έγραψα θα γυρνούσε το $[-> 0<- , 0, 0, x_T, x_{T-1}, ... ,x_1;]$

image

@efthymisgeo
Copy link
Contributor

Η υλοποίηση είναι σωστή. Το lstm γυρνάει "aligned" ακολουθίες συνεπώς το x_0 (η x_1 με το δικό σας συμβολισμό) βρίσκεται στη θέση 0 και στη forward και στη backward μεταβλητή.

Καλή πρακτική γενικά για τέτοιου είδους απορίες είναι να βλέπετε το documentation και να σκάψετε λίγο στο google

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants