我已经使用 TF2 构建了一个演员评论家网络。我在以下代码部分中不断收到错误消息:
with tf.GradientTape() as tape:
actions = actor_model(state_batch, training=True)
new_actions2 = mapp_raw_batch_actions(actions)
critic_value = critic_model([state_batch, new_actions2], training=True)
# Used `-value` as we want to maximize the value given
# by the critic for our actions
actor_loss = -tf.math.reduce_mean(critic_value)
actor_grad = tape.gradient(actor_loss, actor_model.trainable_variables)
actor_optimizer.apply_gradients(
zip(actor_grad, actor_model.trainable_variables)
)
该错误actor_grad
专门[None, None, None, None, None, None]
针对actor_grad
. 当我使用该mapp_raw_batch_actions
函数将参与者网络中的原始操作映射到策略中的合法操作时,会出现此错误。但是,当我没有将参与者的原始行为映射到法律行为时,我不会遇到这个错误,但它会影响我的最终结果。任何人都知道如何解决这个问题?
PS我的法律行动比演员网络的原始行动要大得多。我的原始动作是由tanh
.