如何在LSTM算法中使用batch_size?

时间:2019-07-19 08:21:41

标签: python matlab artificial-intelligence lstm backpropagation

我在LSTM算法中有一些关于批量大小的问题。我正在尝试用LSTM实现NLP,但是我不知道如何在下面的代码中使用批处理大小。有人可以帮我吗?

在此代码中,我具有mxn输入矩阵,并且具有时间序列,我们可以说n批处理的时间序列(mx1)向量。但是,如何实现更大的批次大小并根据批次更新重量?我将继续使用(批次*时间序列)时间进行前馈计算吗?另外,我将如何处理这些批次的反向传播部分?我是否需要刷新每个批次的细胞信息?

我现在不想使用keras或tensorflow,我想设计自己的算法。

代码为MATLAB格式,但我将其转换为python语言。

谢谢。

%feed forward section (for 1 batch):

TimeSeries = 32;

for t=2:TimeSeries
   a(:,t)=tanh(Wa*x(:,t)+Ua*out(:,t-1)+ba);
   i(:,t)=SigFunc(Wi*x(:,t)+Ui*out(:,t-1)+bi);
   f(:,t)=SigFunc(Wf*x(:,t)+Uf*out(:,t-1)+bf);
   o(:,t)=SigFunc(Wo*x(:,t)+Uo*out(:,t-1)+bo);

   state(:,t)=a(:,t).*i(:,t)+f(:,t).*state(:,t-1);
   out(:,t)=tanh(state(:,t)).*o(:,t);
   Delta(:,t)=out(:,t)-ResOut(:,t);
end

0 个答案:

没有答案