分布式Q学习:Dist-DQN的实现与应用
1. Dist-DQN的实现
Dist-DQN接收一个128元素的状态向量,将其通过几个密集前馈层,然后使用for循环将最后一层与3个单独的矩阵相乘,得到3个单独的分布向量。最后应用softmax函数确保其为有效的概率分布。结果是一个具有3个不同输出“头”的神经网络,将这3个输出分布收集到一个3×51的矩阵中作为最终输出。
以下是Dist-DQN的代码实现:
def dist_dqn(x,theta,aspace=3):
dim0,dim1,dim2,dim3 = 128,100,25,51
t1 = dim0*dim1
t2 = dim2*dim1
theta1 = theta[0:t1].reshape(dim0,dim1)
theta2 = theta[t1:t1 + t2].reshape(dim1,dim2)
l1 = x @ theta1
l1 = torch.selu(l1)
l2 = l1 @ theta2
l2 = torch.selu(l2)
l3 = []
for i in range(aspace):
step = dim2*dim3
theta5_dim = t1 + t2 + i * step
theta5 = theta[theta5_dim:theta5_dim+step].reshape(dim2,dim3)
l3_ = l2
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



