有了解顶会 DeepPath AttnPath minerva 的大佬吗?强化学习知识推理、知识图谱补全方向的
现在卡在 [把 LSTM 加到 DeepPath 里] ,但是加不进去
有没有能解决这个问题的技术大牛,可以有偿 QAQ
1
teemocat OP [这里是不是不能发图片哇?]
Deeppath 是将知识图谱中知识推理过程转化为马尔可夫序列决策过程 agent 和环境交互 接受状态 s (使用 transE ,编码为 et-e0 ,即目标状态的向量表示减去当前状态的向量表示),通过最终是否能成功到达目标给予奖励,使用三层全连接神经网络进行参数更新,其中 agent 每次从一个状态(节点)到达下一个状态时,会通过动作空间选择一个动作,决定下一个动作如何选择 action_prob = tf.nn.softmax(tf.matmul(h2,w3) + b3) 策略网略(即三层全连接神经网络,两层 relu 一层 softmax )是适用参数得出动作概率矩阵的 policy_nm.update(np.reshape(state_batch,(-1,state_dim)),total_reward,action_batch) 这个是每个 episode 之后,根据 agent 是否能到达目标节点,结合系统给出的奖励对参数进行更新的 [我的问题是 现在想将状态空间的编码加一个三层 LSTM 以记忆之前的状态与现在的联系] 输入策略网路的状态编码变为 st=( ht ,wt ) 以下是我定义的 lstm 网络函数 def lstmm(state): cells = [] for _ in range(2): lstm_cell = tf.contrib.rnn.LSTMCell(200, use_peepholes=True, state_is_tuple=True) # 2*50 cells.append(lstm_cell) policy_step = tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True) init_state = policy_step.zero_state(1, dtype=tf.float64) input_lstm = tf.reshape(state, [-1, 1, 200]) outputs, state = tf.nn.dynamic_rnn(policy_step, input_lstm, initial_state=init_state, dtype=tf.float64) h_state = outputs[:, -1, :] return h_state 我想接受到的输入是上一个状态的向量表示 prestate_vec 输出是一个带有之前状态信息的向量表示 但 LSTM 的输出不是很理解 它的两个输出的格式也有点晕..... [我的需求是输出一个可以带有之前每一个状态信息的输出的话,是否应该像这个图的 lstmm 网络定义这样 还是说哪些地方要改] |
2
teemocat OP 有人懂吗……
|
3
teemocat OP 有人懂吗……
|