本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM(2)

时间:2017-03-19 00:26来源:668论坛 作者:www.wzatv.cc 点击:
解释:将上一时刻的hidden state和memory拆开,用于计算后,所出现的新的当前时刻的hidden state和memory会再次并在一起作为该function的返回值,同样是为了满足

解释:将上一时刻的hidden state和memory拆开,用于计算后,所出现的新的当前时刻的hidden state和memory会再次并在一起作为该function的返回值,同样是为了满足scan的特点。定义该function后,LSTM就已经完成了。one_step方法会使用LSTM类中所定义的parameters与当前时刻的输入和上一时刻的hidden state与memory cell计算当前时刻的hidden state和memory cell。

scan:使用scan逐次迭代计算所有timesteps,最后得出所有的hidden states进行后续的处理。

代码:

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM

解释:scan接受的fn, elems, initializer有以下要求:

fn:第一个输入是上一时刻的输出(需要与fn的返回值保持一致),第二个输入是当前时刻的输入。

elems:scan方法每一步都会沿着所要处理的tensor的第一个维进行一次一次取值,所以要将数据由[n_samples, n_steps, D_cell]的形状变成[n_steps, n_samples, D_cell]的形状。

initializer:初始值,需要与fn的第一个输入和返回值保持一致。

scan的返回值在上例中是[n_steps, 2, n_samples, D_cell],其中第二个维度的2是由hidden state和memory cell组成的。

构建网络

代码:

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM

解释:以hard coding的方式直接构建一个网络,输入是39维,第一个隐藏层也就是RNN-LSTM,1024维,而输出层又将1024维的LSTM的输出变换到24维与label对应。

注: 这个网络并不仅仅取序列的最后一个值,而是要用所有timestep的值与实际轨迹进行比较计算loss

  训练网络

代码:

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM

解释:由于上文的LSTM是非常直接的编写方式,并不高效,在实际使用中会花费较长时间。

预测效果

代码:

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM

解释:plot出一个样本中的维度的预测效果与真是轨迹进行对比

效果图:

wzatv:【j2开奖】干货|《超智能体》作者会津博士YJango:循环神经网络—scan实现LSTM

  总结说明

  该文是尽可能只展示LSTM最核心的部分(只训练了10次,有兴趣的朋友可以自己多训练几次),帮助大家理解其工作方式而已,直播,完整代码可以从我的github中LSTM_lV1中找到。

  该LSTM由于运行效率并不高,下一篇会稍微进行改动加快运行速度,并整理结构方便使用GRU以及多层RNN的堆叠以及双向RNN,同时加入其他功能。

  GitHub资源:https://github.com/YJango/tensorflow/blob/master/RNN/LSTM_scan_LV1.ipynb

  热门文章推荐

  

  

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容