我是CNTK的新手,正在关注CNTK的seq2seq tutorial。
在LSTM_layer函数中,有以下代码:
dh = placeholder_variable(shape=(output_dim), dynamic_axes=input.dynamic_axes)
dc = placeholder_variable(shape=(output_dim), dynamic_axes=input.dynamic_axes)
LSTM_cell = LSTM(output_dim)
f_x_h_c = LSTM_cell(input, (dh, dc))
h_c = f_x_h_c.outputs
现在,在LSTM_Cell(input,(dh,dc))
: dh
和dc
的价值是多少?
在调用LSTM_layer函数时,我发现它们无法在任何地方初始化。
答案 0 :(得分:1)
如果您在下面看到几行,您会发现占位符已被替换。在创建模型时,您可能没有所需的所有值,但知道该函数工作所需的数据形状。您为这些变量创建占位符(容器)。在执行函数之前,这些值将替换为包含要计算的值的变量。
replacements = { dh: h.output, dc: c.output }
f_x_h_c.replace_placeholders(replacements)