我正在创建一个与TensorFlow的标准Cell完全不同的自定义RNNCell,我正在使用以下代码:
请访问I'm trying to make my own RNN cell in tensorflow but it doesn't work
具体地说,我收到batch_size = 2的错误消息:
输入张量'Placeholder_1:0'进入形状为(1,1)的循环,但经过一轮迭代后形状为(2,1)。要允许形状随迭代而变化,请使用tf.while_loop的dataBx = Import["BvsY_1207.xlsx"] [[1]];
dataBz = Import["BvsY_1207.xlsx"] [[2]];
dataBz = dataBz + .06;
ClearAll[Bx, Bz, x, z];
listx = Range[0, 25, 0.5];
listx = listx - 12.4;
x = Transpose[Table[listx, {i, 13}]];
listy = 12 - Range[0, 24, 2];
y = Table[listy, {i, 51}];
dataB = Sqrt[dataBx^2 + dataBz^2];
B = Transpose[{Flatten[y], Flatten[x], Flatten[dataB]}];
ListContourPlot[B, InterpolationOrder -> 4, Contours -> 18,
ContourLines -> False,
BaseStyle -> {FontFamily -> "Times", FontSize -> 24},
FrameLabel -> {"Y/mm", "X/mm", "" , "" }, PlotLegends -> Automatic]
参数指定不太具体的形状。
next_state =状态+ w * f(状态)+输入
(state_size为N * 1,w_size为N * 1,input-dim为1
f是任意函数
在我的示例中,input_size = [batch_size,time_step,1])
但是由于input_size,dynamic_rnn不适用于此自定义单元。为什么?
我真的很感激,如果有人能解释一下如果输入是可加的,那么如何使用dynamic_rnn()方法。