Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDILab开源决策智能平台
DI-engine
提交
ff0e572e
D
DI-engine
项目概览
OpenDILab开源决策智能平台
/
DI-engine
上一次同步 2 年多
通知
56
Star
321
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DI-engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ff0e572e
编写于
11月 16, 2021
作者:
N
niuyazhe
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optim(nyz): optim ddpg with treetensor
上级
fd46fc1a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
6 deletion
+6
-6
ding/model/template/qac.py
ding/model/template/qac.py
+2
-2
ding/policy/ddpg.py
ding/policy/ddpg.py
+4
-4
未找到文件。
ding/model/template/qac.py
浏览文件 @
ff0e572e
...
...
@@ -249,7 +249,7 @@ class QAC(nn.Module):
"""
if
self
.
actor_head_type
==
'regression'
:
x
=
self
.
actor
(
inputs
)
return
ttorch
.
as_t
ensor
({
'action'
:
x
[
'pred'
]})
return
ttorch
.
T
ensor
({
'action'
:
x
[
'pred'
]})
elif
self
.
actor_head_type
==
'reparameterization'
:
x
=
self
.
actor
(
inputs
)
return
{
'logit'
:
[
x
[
'mu'
],
x
[
'sigma'
]]}
...
...
@@ -306,4 +306,4 @@ class QAC(nn.Module):
x
=
[
m
(
x
)[
'pred'
]
for
m
in
self
.
critic
]
else
:
x
=
self
.
critic
(
x
)[
'pred'
]
return
ttorch
.
as_t
ensor
({
'q_value'
:
x
})
return
ttorch
.
T
ensor
({
'q_value'
:
x
})
ding/policy/ddpg.py
浏览文件 @
ff0e572e
...
...
@@ -214,7 +214,7 @@ class DDPGPolicy(Policy):
"""
for
d
in
data
:
d
[
'replay_unique_id'
]
=
0
# TODO
data
=
[
ttorch
.
as_t
ensor
(
d
)
for
d
in
data
]
data
=
[
ttorch
.
T
ensor
(
d
)
for
d
in
data
]
data
=
ttorch
.
stack
(
data
)
data
.
action
=
data
.
action
.
float
()
# TODO
data
.
reward
=
data
.
reward
.
squeeze
(
1
)
...
...
@@ -249,7 +249,7 @@ class DDPGPolicy(Policy):
# target q value.
with
torch
.
no_grad
():
next_actor_action
=
self
.
_target_model
.
forward
(
next_obs
,
mode
=
'compute_actor'
).
action
next_actor_data
=
ttorch
.
as_t
ensor
({
'obs'
:
next_obs
,
'action'
:
next_actor_action
})
next_actor_data
=
ttorch
.
T
ensor
({
'obs'
:
next_obs
,
'action'
:
next_actor_action
})
target_q_value
=
self
.
_target_model
.
forward
(
next_actor_data
,
mode
=
'compute_critic'
).
q_value
if
self
.
_twin_critic
:
# TD3: two critic networks
...
...
@@ -364,7 +364,7 @@ class DDPGPolicy(Policy):
- optional: ``logit``
"""
data_id
=
list
(
data
.
keys
())
data
=
[
ttorch
.
as_t
ensor
(
item
)
for
item
in
data
.
values
()]
data
=
[
ttorch
.
T
ensor
(
item
)
for
item
in
data
.
values
()]
data
=
ttorch
.
stack
(
data
)
if
self
.
_cuda
:
data
=
data
.
cuda
(
self
.
_device
)
...
...
@@ -429,7 +429,7 @@ class DDPGPolicy(Policy):
- optional: ``logit``
"""
data_id
=
list
(
data
.
keys
())
data
=
[
ttorch
.
as_t
ensor
(
item
)
for
item
in
data
.
values
()]
data
=
[
ttorch
.
T
ensor
(
item
)
for
item
in
data
.
values
()]
data
=
ttorch
.
stack
(
data
)
if
self
.
_cuda
:
data
=
data
.
cuda
(
self
.
_device
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录