teemocat 最近的时间轴更新
teemocat

teemocat

V2EX 第 568683 号会员,加入于 2022-01-11 18:25:36 +08:00
teemocat 最近回复了
有人懂吗……
有人懂吗……
[这里是不是不能发图片哇?]

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 网络定义这样 还是说哪些地方要改]
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 14:22 · PVG 22:22 · LAX 07:22 · JFK 10:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.