我在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