@@ -155,98 +155,3 @@ export class LSTM {
155
155
bd . update ( alpha ) ;
156
156
}
157
157
}
158
-
159
- // export const initLSTM = function(input_size: number, hidden_sizes: number[], output_size: number) {
160
- // // hidden size should be a list
161
- // var model = {};
162
- // for(let d=0;d<hidden_sizes.length;d++) { // loop over depths
163
- // const prev_size = d === 0 ? input_size : hidden_sizes[d - 1];
164
- // const hidden_size = hidden_sizes[d];
165
- //
166
- // // gates parameters
167
- // model['Wix'+d] = new RandMat(hidden_size, prev_size , 0, 0.08);
168
- // model['Wih'+d] = new RandMat(hidden_size, hidden_size , 0, 0.08);
169
- // model['bi'+d] = new Mat(hidden_size, 1);
170
- // model['Wfx'+d] = new RandMat(hidden_size, prev_size , 0, 0.08);
171
- // model['Wfh'+d] = new RandMat(hidden_size, hidden_size , 0, 0.08);
172
- // model['bf'+d] = new Mat(hidden_size, 1);
173
- // model['Wox'+d] = new RandMat(hidden_size, prev_size , 0, 0.08);
174
- // model['Woh'+d] = new RandMat(hidden_size, hidden_size , 0, 0.08);
175
- // model['bo'+d] = new Mat(hidden_size, 1);
176
- // // cell write params
177
- // model['Wcx'+d] = new RandMat(hidden_size, prev_size , 0, 0.08);
178
- // model['Wch'+d] = new RandMat(hidden_size, hidden_size , 0, 0.08);
179
- // model['bc'+d] = new Mat(hidden_size, 1);
180
- // }
181
- // // decoder params
182
- // model['Whd'] = new RandMat(output_size, hidden_size, 0, 0.08);
183
- // model['bd'] = new Mat(output_size, 1);
184
- // return model;
185
- // }
186
- //
187
- // export const forwardLSTM = function(G: Graph, model, hidden_sizes, x, prev) {
188
- // // forward prop for a single tick of LSTM
189
- // // G is graph to append ops to
190
- // // model contains LSTM parameters
191
- // // x is 1D column vector with observation
192
- // // prev is a struct containing hidden and cell
193
- // // from previous iteration
194
- //
195
- // if(prev == null || typeof prev.h === 'undefined') {
196
- // var hidden_prevs = [];
197
- // var cell_prevs = [];
198
- // for(var d=0;d<hidden_sizes.length;d++) {
199
- // hidden_prevs.push(new Mat(hidden_sizes[d],1));
200
- // cell_prevs.push(new Mat(hidden_sizes[d],1));
201
- // }
202
- // } else {
203
- // var hidden_prevs = prev.h;
204
- // var cell_prevs = prev.c;
205
- // }
206
- //
207
- // var hidden = [];
208
- // var cell = [];
209
- // for(var d=0;d<hidden_sizes.length;d++) {
210
- //
211
- // var input_vector = d === 0 ? x : hidden[d-1];
212
- // var hidden_prev = hidden_prevs[d];
213
- // var cell_prev = cell_prevs[d];
214
- //
215
- // // input gate
216
- // var h0 = G.mul(model['Wix'+d], input_vector);
217
- // var h1 = G.mul(model['Wih'+d], hidden_prev);
218
- // var input_gate = G.sigmoid(G.add(G.add(h0,h1),model['bi'+d]));
219
- //
220
- // // forget gate
221
- // var h2 = G.mul(model['Wfx'+d], input_vector);
222
- // var h3 = G.mul(model['Wfh'+d], hidden_prev);
223
- // var forget_gate = G.sigmoid(G.add(G.add(h2, h3),model['bf'+d]));
224
- //
225
- // // output gate
226
- // var h4 = G.mul(model['Wox'+d], input_vector);
227
- // var h5 = G.mul(model['Woh'+d], hidden_prev);
228
- // var output_gate = G.sigmoid(G.add(G.add(h4, h5),model['bo'+d]));
229
- //
230
- // // write operation on cells
231
- // var h6 = G.mul(model['Wcx'+d], input_vector);
232
- // var h7 = G.mul(model['Wch'+d], hidden_prev);
233
- // var cell_write = G.tanh(G.add(G.add(h6, h7),model['bc'+d]));
234
- //
235
- // // compute new cell activation
236
- // var retain_cell = G.eltmul(forget_gate, cell_prev); // what do we keep from cell
237
- // var write_cell = G.eltmul(input_gate, cell_write); // what do we write to cell
238
- // var cell_d = G.add(retain_cell, write_cell); // new cell contents
239
- //
240
- // // compute hidden state as gated, saturated cell activations
241
- // var hidden_d = G.eltmul(output_gate, G.tanh(cell_d));
242
- //
243
- // hidden.push(hidden_d);
244
- // cell.push(cell_d);
245
- // }
246
- //
247
- // // one decoder to outputs at end
248
- // var output = G.add(G.mul(model['Whd'], hidden[hidden.length - 1]),model['bd']);
249
- //
250
- // // return cell memory, hidden representation and output
251
- // return {'h':hidden, 'c':cell, 'o' : output};
252
- // }
0 commit comments