我在 tensorflow 中建立了一个演员-评论家网络。我有一个关于我的演员网络层设计的问题。参与者网络应该生成 2 个输出。第二个输出依赖于第一个输出,即为了生成第二个输出,我需要将输入状态和第一个输出连接起来并再次通过网络,然后生成第二个输出。
以下是我的设计,但我不确定是否应该为两个输出使用相同的隐藏层或为每个输出创建单独的隐藏层。
def get_actor():
# Initialize weights between -3e-3 and 3-e3
last_init = tf.random_uniform_initializer(minval=-0.003, maxval=0.003)
inputs = layers.Input(shape=(num_states_actor,))
f = layers.Dense(256, activation="relu")(inputs)
out1 = layers.Dense(256, activation="relu")(f)
outputs1 = layers.Dense(4, activation="softmax", kernel_initializer=last_init)(out1)
out2 = layers.Concatenate()([inputs, outputs1])
f = layers.Dense(256, activation="relu")(out2)
out3 = layers.Dense(256, activation="relu")(f)
outputs2 = 1e-4 + layers.Dense(1, activation="relu", kernel_initializer=last_init)(out3)
model = tf.keras.Model(inputs=inputs, outputs=([outputs1, outputs2]))
# print(model.summary())
return model