lstm 三角函数预测
Preface
说了好久要手撕一次lstm预测,结果上学期用bucket时遇到issue后就搁了下来,后面还被突然尴尬了几次(⊙﹏⊙)b。
好吧,我先把issue亮出来https://github.com/apache/incubator-mxnet/issues/8663,然而并没有大神鸟(我也不知道为什么 ...)。
Code
今天也是事起突然,然后就写了段测试程序( 可能大家都玩gluon,不理symbol那一套了):
import mxnet as mx from mxnet import gluon import numpy as np hiden_sizes=[10,20,1] batch_size=300 iteration=300000 log_freq = 20 ctx=mx.gpu() opt = 'adam' # 'sgd' unroll_len =9 t= mx.nd.arange(0,0.01*(1+unroll_len),.01, ctx=ctx) tt= mx.nd.random.uniform(shape=(iteration,1), ctx=ctx) t= (t+tt).T # (unroll_len, iteration) y= mx.nd.sin(t[-1])/2 model=gluon.rnn.SequentialRNNCell() with model.name_scope(): for hidden_size in hiden_sizes: model.add(gluon.rnn.LSTMCell(hidden_size)) model.initialize(ctx=ctx) L=gluon.loss.L2Loss() Trainer= gluon.Trainer(model.collect_params(),opt) prev_batch_idx=-1 acc_l = mx.nd.array([0,], ctx=ctx) for batch_idx in xrange(iteration/batch_size): x_list = [x[batch_idx*batch_size:(batch_idx+1)*batch_size].T for x in t[:unroll_len]] # e in x_list: (b,1) label = y[batch_idx*batch_size:(batch_idx+1)*batch_size] with mx.autograd.record(): outputs, states = model.unroll(unroll_len, x_list) l=L(outputs[-1], label) l.backward() Trainer.step(batch_size) acc_l += l.mean() if batch_idx- prev_batch_idx == log_freq: print 'loss:%.4f'%((acc_l/log_freq).asnumpy()) prev_batch_idx = batch_idx acc_l *= 0
Note
adam
要比sgd
显著地快,见文末loss的比较列表。- 没有
relu
激活,然后层数多了之后,难以优化?
前一个问题:LSTM的定义式里面没有这个存在的地方;第二个问题,发现有几个链接
https://www.reddit.com/r/MachineLearning/comments/30eges/batch_normalization_or_other_tricks_for_lstms/
https://groups.google.com/forum/#!topic/lasagne-users/EczUQckJggU
以上是相关的讨论。
然后这份工作(http://cn.arxiv.org/abs/1603.09025)是针对hidden-to-hidden
提出的BN。从描述和贴上的结果来看,收敛速度
和精度
并没有可观的提升。
adam | sgd |
---|---|
0.0378 | 0.0387 |
0.0223 | 0.0335 |
0.0059 | 0.0284 |
0.0043 | 0.0247 |
0.0030 | 0.0214 |
相关推荐
xiaoxiaokeke 2020-07-28
hnyzyty 2020-02-22
源式羽语 2020-02-01
IT小小鸟 2020-01-28
tuzhen0 2019-12-20
huangshm 2019-11-19
louishao 2019-11-08
cckchina 2019-09-23
songfeidream 2019-04-19
MacTrack 2017-07-25
aaJamesJones 2019-07-01
yangzzguang 2019-07-01
aaJamesJones 2019-06-30
诗蕊 2019-06-30
kinghighbury 2019-06-28
lwnylslwnyls 2019-06-24
五小郎的学习笔记 2019-06-27
格式化中 2019-06-27
kinghighbury 2019-06-27