我在为Keras准备RNN的输入数据时遇到了麻烦.
目前,我的培训数据维度是: (6752, 600, 13)
X_train并且Y_train都在这个方面.
我想把这些数据准备好SimpleRNN用于Keras.假设我们正在经历时间步骤,从步骤#0到步骤#599.假设我想使用input_length = 5,这意味着我想使用最近的5个输入.(例如步骤#10,#11,#12,#13,#14 @步骤#14).
我应该如何重塑X_train?
应该是(6752, 5, 600, 13)或应该是(6752, 600, 5, 13)吗?
什么形状应该Y_train在?
它应该是(6752, 600, 13)或(6752, 1, 600, 13)或(6752, 600, 1, 13)?
我知道这个问题已经以各种形式提出,但我找不到任何我能理解和使用的答案.如果这是一个基本问题,请原谅我,因为我是这些工具的新手(theano/keras)
要解决的问题
监控神经网络中的变量(例如LSTM中的输入/遗忘/输出门值)
我目前得到的是什么
无论我在哪个阶段获得这些价值观,我都会得到类似的东西:
Elemwise{mul,no_inplace}.0
Elemwise{mul,no_inplace}.0
[for{cpu,scan_fn}.2, Subtensor{int64::}.0, Subtensor{int64::}.0]
[for{cpu,scan_fn}.2, Subtensor{int64::}.0, Subtensor{int64::}.0]
Subtensor{int64}.0
Subtensor{int64}.0
Run Code Online (Sandbox Code Playgroud)
有什么方法我无法监控(例如打印到stdout,写入文件等)吗?
可能解决方案
似乎像Keras的回调可以完成这项工作,但它对我来说也不起作用.我和上面的东西一样
我猜
好像我犯了很简单的错误.
大家都非常感谢你们.
添加
具体来说,我正在尝试监视LSTM中的输入/遗忘/输出门控值.我发现LSTM.step()用于计算这些值:
def step(self, x, states):
h_tm1 = states[0] # hidden state of the previous time step
c_tm1 = states[1] # cell state from the previous time step
B_U = states[2] # dropout matrices for recurrent units?
B_W = states[3] # dropout matrices for input units?
if self.consume_less == 'cpu': # just cut x into 4 pieces in columns …Run Code Online (Sandbox Code Playgroud)