我想将tf.data和tf.estimator用作训练RNN(例如LSTM)网络的解决方案的一部分。
RNN将用于预测序列继续。长输入序列X将在单独的示例X(i)中拆分。
输入到网络将是X(i),并且在馈入X(i-1)之后网络将输出隐藏状态。输出将为Y(i)和新的隐藏状态S(i):
Y(i) | S(i-1) -> RNN -> S(i) | X(i)
我想尝试以下设置:
Y(i) S(i-100) | S(i-50) -> E(i)-> -> RNN -> S(i) S(i-1) | X(i)
其中S(i-100),S(i-50),S(i-1)是分别向后退100、50和1个时间的隐藏状态输出。 E(i)是一个学习的嵌入。
现在的问题是:在X(i)上训练时,如何使用tf.data和/或tf.estimator API获得隐藏的先前状态S(i-x)?建议的解决方案应允许进行分布式培训。
在每个训练步骤中是否可以使用tf.Variable并分配输出状态S(i)?分布式训练期间所有训练实例都可以访问变量值吗?