wire up the time kv cache when interacting with sim / env
This commit is contained in:
parent
d82debb7a6
commit
7ecc5d03e8
@ -1972,7 +1972,8 @@ class DynamicsWorldModel(Module):
|
|||||||
seed = None,
|
seed = None,
|
||||||
agent_index = 0,
|
agent_index = 0,
|
||||||
step_size = 4,
|
step_size = 4,
|
||||||
max_timesteps = 16
|
max_timesteps = 16,
|
||||||
|
use_time_kv_cache = True
|
||||||
):
|
):
|
||||||
assert exists(self.video_tokenizer)
|
assert exists(self.video_tokenizer)
|
||||||
|
|
||||||
@ -1990,22 +1991,34 @@ class DynamicsWorldModel(Module):
|
|||||||
values = None
|
values = None
|
||||||
latents = None
|
latents = None
|
||||||
|
|
||||||
|
# maybe time kv cache
|
||||||
|
|
||||||
|
time_kv_cache = None
|
||||||
|
|
||||||
for _ in range(max_timesteps):
|
for _ in range(max_timesteps):
|
||||||
|
|
||||||
latents = self.video_tokenizer(video, return_latents = True)
|
latents = self.video_tokenizer(video, return_latents = True)
|
||||||
|
|
||||||
_, (agent_embed, _) = self.forward(
|
_, (agent_embed, next_time_kv_cache) = self.forward(
|
||||||
latents = latents,
|
latents = latents,
|
||||||
signal_levels = self.max_steps - 1,
|
signal_levels = self.max_steps - 1,
|
||||||
step_sizes = step_size,
|
step_sizes = step_size,
|
||||||
rewards = rewards,
|
rewards = rewards,
|
||||||
discrete_actions = discrete_actions,
|
discrete_actions = discrete_actions,
|
||||||
continuous_actions = continuous_actions,
|
continuous_actions = continuous_actions,
|
||||||
|
time_kv_cache = time_kv_cache,
|
||||||
latent_is_noised = True,
|
latent_is_noised = True,
|
||||||
return_pred_only = True,
|
return_pred_only = True,
|
||||||
return_intermediates = True
|
return_intermediates = True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# time kv cache
|
||||||
|
|
||||||
|
if use_time_kv_cache:
|
||||||
|
time_kv_cache = next_time_kv_cache
|
||||||
|
|
||||||
|
# get one agent
|
||||||
|
|
||||||
one_agent_embed = agent_embed[..., -1:, agent_index, :]
|
one_agent_embed = agent_embed[..., -1:, agent_index, :]
|
||||||
|
|
||||||
policy_embed = self.policy_head(one_agent_embed)
|
policy_embed = self.policy_head(one_agent_embed)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "dreamer4"
|
name = "dreamer4"
|
||||||
version = "0.0.61"
|
version = "0.0.62"
|
||||||
description = "Dreamer 4"
|
description = "Dreamer 4"
|
||||||
authors = [
|
authors = [
|
||||||
{ name = "Phil Wang", email = "lucidrains@gmail.com" }
|
{ name = "Phil Wang", email = "lucidrains@gmail.com" }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user