-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtutorial7.lisp
36 lines (27 loc) · 895 Bytes
/
tutorial7.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
;; (ql:quickload :mgl)
(defpackage mgl-learning
(:use :mgl :cl)
(:nicknames :m-learning))
(in-package :m-learning)
(setf *default-mat-ctype* :float)
(setf *cuda-enabled* t)
(defparameter *dict-size* 100000)
(defparameter *n-inputs* *dict-size*)
(defparameter *n-hiddens* (* 4 *n-inputs*))
(defclass encoder (fnn)
())
(defclass decoder (fnn)
())
(defun make-encoder (&key (n-hiddens *n-hiddens*))
(build-rnn ()
(build-fnn (:class 'encoder)
(input (->input :size *n-inputs*))
(h (->lstm input :name 'h :size n-hiddens)))))
(defun make-decoder (&key (n-hiddens *n-hiddens*))
(build-rnn ()
(build-fnn (:class 'decoder)
(input (->input :size *n-inputs*))
(h (->lstm input :name 'h :size n-hiddens))
(prediction (->softmax-xe-loss
(->activation h :name 'prediction
:size *n-inputs*))))))