jannerm / diffuser Goto Github PK
View Code? Open in Web Editor NEWCode for the paper "Planning with Diffusion for Flexible Behavior Synthesis"
Home Page: https://diffusion-planning.github.io
License: MIT License
Code for the paper "Planning with Diffusion for Flexible Behavior Synthesis"
Home Page: https://diffusion-planning.github.io
License: MIT License
Dear Maintainers,
I was examining the line of code at this location: Link and came across the conditional statement if not is_last:. Given that each block halves the horizon, I'm wondering if this if statement is necessary.
When I attempted to integrate the code with maze2d, it appeared that the code runs only upon removal of this line. Could you provide some insight into its function and why it might be necessary in the current implementation?
I appreciate your guidance on this issue. Thank you.
Best Regards.
Hello,
Thanks for the open sourcing codes!
But I have one question about the implementation of training values. Should the input of this line be x_start instead of x_noisy? Because the target is accumulated return calculated from the expert trajectory of offline data and not the true return of denoising trajectories during the denoising or noisy trajecotories, which means the gradient guide from target is not matching to x_noisy. I don't know whether I am right about this, please take a look and offer me some hints.
diffuser/diffuser/models/diffusion.py
Line 243 in cbcd3fb
I reproduced the results of the original paper on locomotion, but encountered some difficulties on maze2d. I would like to ask:
Thank you for publicizing your code! I have a question regarding two details mentioned in the part below:
In the paper, it mentions "the training of a cumulative reward classifier" and "use the first action in the environment".
It seems these are not present in the current demo code for the hopper experiment. Am I understanding correctly?
Thank you!
Hi,
Thanks for open sourcing your code for the Kuka environment. It seems there might be a version issue in the code and in the conditonal sampling script guided sampling is no longer defined in the Trainer class.
In particular, running the code leads to an error where this function is not defined.
https://github.com/jannerm/diffuser/blob/kuka/scripts/conditional_kuka_planning_eval.py#L154
Hi, I'm new to diffusion models in RL and am trying to figure out how the diffuser works particularly with conditioning and was hoping I can get some guidance. I read the paper and it proposes the idea of
I think I see the Goal-Conditioned RL being implemented with setting the Goal (starting states) in the sampling process, but I can't seem to find how the Guided sampling part is implemented
I was looking through the code for sampling and see that a cond is passed down to the temporal u net, but see that its not used.
Is it implemented elsewhere? or is this just a template of how I could inject my own rewards model into the temporal U net? Thanks in advance
Hi there,
Are the paper reviews also available for open access? I could not find it on openreview.net
Best,
Kagan
Hi there, I checked out the plan_maze2d branch and tried to run "conda env create -f environment.yml" and bump into the following errors. Any guidance on how to solve this issue? Thank you very much!
Collecting dm_control@ git+git://github.com/deepmind/dm_control@41d0c7383153f9ca6c12f8e865ef5e73a98759bd#egg=dm_control
Cloning git://github.com/deepmind/dm_control (to revision 41d0c7383153f9ca6c12f8e865ef5e73a98759bd) to /tmp/pip-install-ncjf6ze3/dm-control_fcf322da5da84fb9a7196336199dff53
Pip subprocess error:
Running command git clone --filter=blob:none --quiet https://github.com/JannerM/d4rl.git /tmp/pip-req-build-tmbo87ge
Running command git rev-parse -q --verify 'sha^13fc08c198d17ac627f528aedc70843e8f86bb71'
Running command git fetch -q https://github.com/JannerM/d4rl.git 13fc08c198d17ac627f528aedc70843e8f86bb71
Running command git checkout -q 13fc08c198d17ac627f528aedc70843e8f86bb71
WARNING: Missing build requirements in pyproject.toml for mujoco-py==2.0.2.13 from https://files.pythonhosted.org/packages/2f/48/b108057c1a23c8da9f4cdc7a7c46ab7cec49c3563c0706d50f2527de6ba0/mujoco-py-2.0.2.13.tar.gz (from -r /home/external/diffuser/condaenv.75wnjbo_.requirements.txt (line 4)).
WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
Running command git clone --filter=blob:none --quiet git://github.com/deepmind/dm_control /tmp/pip-install-ncjf6ze3/dm-control_fcf322da5da84fb9a7196336199dff53
fatal: unable to connect to github.com:
github.com[0: 192.30.255.113]: errno=Connection timed out
error: subprocess-exited-with-error
× git clone --filter=blob:none --quiet git://github.com/deepmind/dm_control /tmp/pip-install-ncjf6ze3/dm-control_fcf322da5da84fb9a7196336199dff53 did not run successfully.
│ exit code: 128
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× git clone --filter=blob:none --quiet git://github.com/deepmind/dm_control /tmp/pip-install-ncjf6ze3/dm-control_fcf322da5da84fb9a7196336199dff53 did not run successfully.
│ exit code: 128
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
failed
CondaEnvException: Pip failed
Hi,
I'm really interested in your work. It's awesome. Do you have any plans to release training/testing codes and configs for Maze the Block stacking datasets? It would be a great help to understand and follow this paper better.
Thanks.
I ran the training steps with Docker
docker build -f azure/Dockerfile . -t diffuser
docker run -it --rm --gpus all \
--mount type=bind,source=$PWD,target=/home/code \
--mount type=bind,source=$HOME/.d4rl,target=/root/.d4rl \
diffuser \
bash -c \
"export PYTHONPATH=$PYTHONPATH:/home/code && \
python /home/code/scripts/train.py --dataset hopper-medium-expert-v2 --logbase logs/docker"
However after 200k+ iterations it did not appear to increase the episode length. Could you provide more details on how you trained your agent and how I can reproduce it?
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /home/lync/.d4rl.
See 'docker run --help'.
Hi.
I found the code's defaults hyperparameters is inconsistent with the paper's such as diffusion steps N=100 in paper but N=20 in code and guide scale, gamma, train step. I wonder how much this will affect performance and if the code's hyperparameters is enough to obtain results reported in paper. Thanks if anyone can give me some helps.
Hi and thank you for sharing the code of this very interesting work!
Do you intend to share the maze2D weights? In the google folder with the trained models there is no trained model for the maze2d. Am I missing something?
Running the plan_maze2d.py
I get the following error:
FileNotFoundError: [Errno 2] No such file or directory: 'logs/maze2d-large-v1/diffusion/H384_T256/model_config.pkl'
My folder structure after running the script:
Any help would be great!
Did you manually created datasets of block stacking task?
Hi,
Thanks for sharing the nice code! There was a minor issue when I trained the model with the script python scripts/train.py --dataset maze2d-umaze-v1 --horizon 512 --n_diffusion_steps 200
:
File ".../diffuser/datasets/buffer.py", line 75, in add_path
self._dict[key][self._count, :path_length] = array
IndexError: index 10000 is out of bounds for axis 0 with size 10000
and I believe the episode number of the maze2d dataset is more than 10000, which caused this error. So I set max_n_episodes=20000
at the line: https://github.com/jannerm/diffuser/blob/main/diffuser/datasets/sequence.py#L18. And it really fixed this issue. Maybe you can update the corresponding code if I'm correct?
BTW, looking forward to seeing your testing/evaluating code :)
Great work and thank you for sharing the code.
I have a question about a possible mismatch in guided sampling between the paper and the code.
In the paper, Algorithm 1: (1) you first compute the reverse transition, (2) afterwards add the gradient of the return, and (3) finally sample.
In the code it appears that operations (1) and (2) are switched, here, is this intended?
Thanks!
In the diffuser-main/diffuser/utils/setup.py, "from tap import Tap", but there is no "Tap" in tap 0.2, only "TAP". And there is no parse_args in TAP. ("args = super().parse_args(known_only=True)")
When I run the command
'python scripts/plan_guided.py --dataset halfcheetah-medium-expert-v2 --logbase logs/pretrained'
there is a BrokenPipeError.
Traceback (most recent call last):
File "~/anaconda3/envs/diffuser/lib/python3.8/site-packages/skvideo/io/abstract.py", line 518, in writeFrame
self._proc.stdin.write(vid.tostring())
BrokenPipeError: [Errno 32] Broken pipe
Can anybody tell me how to fix that problem?
When I try the following command——
python scripts/train.py --dataset halfcheetah-medium-expert-v2
There is an error occurring——
gcc: error: unrecognized command line option ‘-R’
Traceback (most recent call last):
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 204, in link
self.spawn(linker + ld_args)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 910, in spawn
spawn(cmd, dry_run=self.dry_run, **kwargs)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/spawn.py", line 87, in spawn
raise DistutilsExecError(
distutils.errors.DistutilsExecError: command '/usr/bin/gcc' failed with exit code 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "scripts/train.py", line 1, in <module>
import diffuser.utils as utils
File "/home/charlie/PycharmProjects/diffuser/diffuser/utils/__init__.py", line 6, in <module>
from .rendering import *
File "/home/charlie/PycharmProjects/diffuser/diffuser/utils/rendering.py", line 8, in <module>
import mujoco_py as mjc
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/__init__.py", line 3, in <module>
from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 510, in <module>
cymj = load_cython_ext(mujoco_path)
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 105, in load_cython_ext
cext_so_path = builder.build()
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 221, in build
built_so_file_path = self._build_impl()
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 291, in _build_impl
so_file_path = super()._build_impl()
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 244, in _build_impl
dist.run_commands()
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
self.run_command(cmd)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
_build_ext.build_ext.run(self)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 341, in run
self.build_extensions()
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/mujoco_py/builder.py", line 144, in build_extensions
build_ext.build_extensions(self)
File "/home/charlie/anaconda3/envs/diffuser/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
_build_ext.build_ext.build_extensions(self)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 450, in build_extensions
self._build_extensions_serial()
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 475, in _build_extensions_serial
self.build_extension(ext)
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 552, in build_extension
self.compiler.link_shared_object(
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 713, in link_shared_object
self.link(CCompiler.SHARED_OBJECT, objects,
File "/home/charlie/.local/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 206, in link
raise LinkError(msg)
distutils.errors.LinkError: command '/usr/bin/gcc' failed with exit code 1
This seems to be an error about GCC.
Could you tell me the versions of gcc and g++ you used or Do you have other better solutions?
Thanks for any help!
Hi,
I directly clone the repo, then the first step is 'conda env create -f environment.yml'.
However, it stuck at installing pip packages.
Hi,
I was trying to use the weights from #13 but I'm getting the following error when I run python scripts/plan_maze_2d.py
Traceback (most recent call last):
File "scripts/plan_maze2d.py", line 25, in <module>
diffusion_experiment = utils.load_diffusion(args.logbase, args.dataset, args.diffusion_loadpath, epoch=args.diffusion_epoch)
File "/home/karthi43/working/diffuser/diffuser/utils/serialization.py", line 58, in load_diffusion
trainer.load(epoch)
File "/home/karthi43/working/diffuser/diffuser/utils/training.py", line 162, in load
self.model.load_state_dict(data['model'])
File "/home/karthi43/miniconda3/envs/diffuser/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1406, in load_state_dict
raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for GaussianDiffusion:
Missing key(s) in state_dict: "model.downs.0.3.conv.weight", "model.downs.0.3.conv.bias", "model.downs.1.3.conv.weight", "model.downs.1.3.conv.bias", "model.ups.0.3.conv.weight", "model.ups.0.3.conv.bias", "model.ups.1.3.conv.weight", "model.ups.1.3.conv.bias".
Unexpected key(s) in state_dict: "model.downs.0.2.conv.weight", "model.downs.0.2.conv.bias", "model.downs.1.2.conv.weight", "model.downs.1.2.conv.bias", "model.ups.0.2.conv.weight", "model.ups.0.2.conv.bias", "model.ups.1.2.conv.weight", "model.ups.1.2.conv.bias".
I'm on maze_2d
branch, am I missing some configs or something
Thanks you!
Hi, where can I find the datasets for all the environments, esp. Maze2D?
Sorry if I missed this in the readme.
Hi,
Have you tried other network architecture other than UNet such as MLP or TCN. Is network architecture important for performance.
Hello. Excuse me.
I run your codes in kuka branch, but the visualization in OpenGL is totally different from what you report in the paper and website.
Besides, in some visualization scenarios, the kuka end-effect even does not contact the block but pick it up. I wonder whether there is any problem about the code implementation.
Thanks. Looking forward to your reply.
Hi~I found that in cases like Figure 3(a), one policy only applies to one maze, and needs references for reconstruction. Do cases in Figure 3(d) need references, or can be generalized to multiple scenes? By the way, have scripts for Figure 3(d) been released in this repo?
In Usage section of README, it is demonstrated that
python scripts/plan_guided.py --dataset hopper-medium-replay-v2 \
--horizon 512 --n_diffusion_steps 200
but it seems that there are no file corresponding to the scripts/plan_guided.py
.
ERROR: Could not build wheels for gym, which is required to install pyproject.toml-based projects
Hello,
I seem to encounter a bunch of errors running "plan_guided.py" as in readme: python scripts/plan_guided.py --dataset halfcheetah-medium-expert-v2 --logbase logs/pretrained.
Debugging showed error at:
args = Parser().parse_args('plan')
from mc_bin_client.py as below.
python3.8/site-packages/mc_bin_client/mc_bin_client.py", line 305, in _sendMsg
self.s.send(msg)
BrokenPipeError: [Errno 32] Broken pipe
Hi,
It seems that the antmaze_fix_timeouts
function is not used. May I ask where can I find the details of this function?
diffuser/diffuser/datasets/d4rl.py
Line 49 in 7ea4228
Wonderful work! This issue is just a supplement for env form a follower.
numpy should use version 1.21.6, in case of module 'numpy' has no attribute 'int'
error.
use free-mujoco-py
instead of mujoco-py==2.0.2.13
, as is described in the notebook file.
A single sample in the D4RL Maze2D environment is of dimension (384, 6)
Can you please clarify the below 2 questions:
Traceback (most recent call last):
File "scripts/plan_guided.py", line 26, in
diffusion_experiment = utils.load_diffusion(
File "/home/leon/leon_ws/diffuser-main/diffuser/utils/serialization.py", line 47, in load_diffusion
dataset = dataset_config(seed=seed)
File "/home/leon/leon_ws/diffuser-main/diffuser/utils/config.py", line 65, in call
instance = self._class(*args, **kwargs, **self._dict)
File "/home/leon/leon_ws/diffuser-main/diffuser/datasets/sequence.py", line 22, in init
self.env = env = load_environment(env)
File "/home/leon/leon_ws/diffuser-main/diffuser/datasets/d4rl.py", line 36, in load_environment
wrapped_env = gym.make(name)
File "/home/leon/leon_ws/diffuser-main/gym/gym/envs/registration.py", line 145, in make
return registry.make(id, **kwargs)
File "/home/leon/leon_ws/diffuser-main/gym/gym/envs/registration.py", line 89, in make
spec = self.spec(path)
File "/home/leon/leon_ws/diffuser-main/gym/gym/envs/registration.py", line 131, in spec
raise error.UnregisteredEnv('No registered env with id: {}'.format(id))
gym.error.UnregisteredEnv: No registered env with id: halfcheetah-medium-expert-v2
The start location is mentioned and used where in the maze2d branch? I am trying to reproduce diffuser maze2d experiment and I want to fix the start point and the end point during each sample step.
Hi there,
first of all, thanks for making this work available.
I wanted to go through the Colab Notebook provided at the header of the readme file. In the second block of the Setup section, there are some errors that block us from running the following blocks. Changing it from
%cd /content
!git clone https://github.com/jannerm/diffuser.git
!git checkout 06b8e6a042e6a3312d50ed8048cba14afeab3085
!curl -L -o diffuser-pretrained.tar https://www.dropbox.com/s/1x73p8x66mj7dvk/diffuser-pretrained.tar?dl=1
!tar -xf diffuser-pretrained.tar
!mv diffuser-pretrained/logs diffuser/logs
!rm -r diffuser-pretrained*
%cd diffuser
%pip install -f https://download.pytorch.org/whl/torch_stable.html \
typed-argument-parser \
scikit-image==0.17.2 \
scikit-video==1.1.11 \
gitpython \
einops \
pillow \
free-mujoco-py \
gym \
git+https://github.com/JannerM/d4rl.git@0e84a4d29db3ae501043215ce1d91843929f1949 \
git+https://github.com/aravindr93/mjrl
%pip install -e .
to
%cd /content
!git clone https://github.com/jannerm/diffuser.git
%cd diffuser
!git checkout 06b8e6a042e6a3312d50ed8048cba14afeab3085
%cd /content
!curl -L -o diffuser-pretrained.tar https://www.dropbox.com/s/1x73p8x66mj7dvk/diffuser-pretrained.tar?dl=1
!tar -xf diffuser-pretrained.tar
!mv diffuser-pretrained/logs diffuser/logs
!rm -r diffuser-pretrained*
%cd diffuser
%pip install -f https://download.pytorch.org/whl/torch_stable.html \
typed-argument-parser \
scikit-image==0.17.2 \
scikit-video==1.1.11 \
gitpython \
einops \
pillow \
free-mujoco-py \
gym==0.18.0 \
git+https://github.com/JannerM/d4rl.git@0e84a4d29db3ae501043215ce1d91843929f1949 \
git+https://github.com/aravindr93/mjrl
%pip install -e .
solves the issue. Maybe you might want to change the corresponding part of ./scripts/diffuser_sample.ipynb
as well :)
Best,
Kagan
Hi,
It's unclear how to reproduce the Diffuser column in Table 3 of the paper. For example, for the unconditional stacking experiment the report table number is 58.7 +/- 2.5
. When I try the provided script with the pretrained weights I get a reward mean of 1.6 +/- 0.067
. How can I get roughly the same numbers as reported in the table? I'm sorry if I'm missing something obvious.
Firstly, I want to express my admiration for the outstanding work you've done on this project. It truly showcases the attention to detail and dedication put into it.
I am particularly intrigued by the 3D plot illustrating a robot arm stacking towers. It adds a visual dimension to the project that significantly aids in comprehension. I am interested in learning more about the tool or tools you used to create this visualization.
Could you kindly share information on the software, libraries, or methods employed to generate such a detailed 3D plot? Any pointers or references you could provide would be greatly appreciated, as they would greatly help me in furthering my own work in this domain.
Thank you in advance for your time and assistance!
It seems that condition was not used in DDPM, in models.temporal.py. Function "apply_conditioning" only replaces the initial state.
Hi,
Thanks very much for open-sourcing this great work . I have a minor question about implementation details:
In Section 5.4 of the paper, it is mentioned that warm-starting the diffusion from a previous time-step's plan can reduce the number of diffusion steps necessary. In this case, how do you configure the diffusion process to use fewer timesteps? Do you simply use the last 100 values of the original alphas and betas, or do you initialize new alphas/betas for fewer timesteps, or something else?
Thanks!
It is a wonderful work to reproduce! However, when I try Maze2d environments, sampling pictures in 'logs' directory are always in a flat view that I can't see the real situation of the maze, while other environments seem normal. How can I fix it?
Hi,
I tried to create a conda virtual environment but failed. So I turn to create a docker, but it fails at the same place, in creating the virtual environment.
#19 484.3 subprocess.CalledProcessError: Command '['/opt/conda/envs/diffuser/bin/python', 'dm_control/autowrap/autowrap.py', '--header_paths=/root/.mujoco/mujoco200_linux/include/mjdata.h /root/.mujoco/mujoco200_linux/include/mjmodel.h /root/.mujoco/mujoco200_linux/include/mjrender.h /root/.mujoco/mujoco200_linux/include/mjui.h /root/.mujoco/mujoco200_linux/include/mjvisualize.h /root/.mujoco/mujoco200_linux/include/mjxmacro.h /root/.mujoco/mujoco200_linux/include/mujoco.h', '--output_dir=/tmp/pip-install-alxuyfnp/dm-control_837352932d0a4468a1a9f22aec04744b/build/lib/dm_control/mujoco/wrapper/mjbindings']' returned non-zero exit status 1.
#19 484.3 ----------------------------------------
#19 484.3 ERROR: Failed building wheel for dm-control
#19 484.3 ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly
I guess the problem is related to dm-control. Do you have any suggestion to fix it? Thanks.
Hi, great work! However, I have a problem running it. I hope you can give me some suggestions.
When I ran the command python scripts/plan_maze2d.py --config config.maze2d --dataset maze2d-large-v1
, it says I don't have module tap
. So I install tap==0.2
and mc-bin-client==1.0.1
. But it seems just support Python 2, so there are many errors.
When I debug code to get dataset for maze2d:
dataset = SequenceDataset()
batch = batchify(dataset[0])
Goal state in first sample of maze2d dataset =
tensor([[ 0.3114, 0.6512, 0.0737, -0.8078]], device='cuda:0')
Can you please clarify why the state is not just 2 dimensional (x, y), why is it 4 dimensional?
Thanks
I cannot get the "conda env create -f environment.yml" command to work on my machine. I keep receiving the following errors:
Using cached gym-0.18.0.tar.gz (1.6 MB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'error'
Pip subprocess error:
Running command git clone --filter=blob:none --quiet https://github.com/JannerM/doodad.git /tmp/pip-req-build-926mvkq8
Running command git checkout -b janner --track origin/janner
Switched to a new branch 'janner'
Branch 'janner' set up to track remote branch 'janner' from 'origin'.
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
error in gym setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
[end of output]
I have tried manually installing every dependency instead of using the .yml file but still have run into issues. Anyone have any fixes?
Hi,
Thanks for the wonderful work! Just for confirmation,which group of parameters should be used for training and planning? The parameters in the loaded pretrained weight seem different from the default parameters in the scripts and the parameters listed in the last page of your paper. For example, your paper suggests 100 diffusion steps while it is only 20 in your pretrained weight.
Thanks!
It writes "The horizon can be updated after training by changing the dimensionality of the input noise" in the essay. I am wondering how to flexibly change the horizon of a plan after training a Diffuser with horizon of a fixed number such as 256?
Hi,
Thanks for sharing your code and the implementation details. I was trying to reproduce the stacking experiments but I wasn't able to find the exact training scripts or code for this. I'm terribly sorry if I missed this in the repo. Would it be possible to release this env/code for these experiments. Many thanks in advance.
Hi.
I am using the kuka branch and downloaded the dataset from this link https://www.dropbox.com/s/zofqvtkwpmp4v44/metainfo.tar.gz?dl=0
I added the following line to the script to see the visualization of the datasets: ( more specifically, I added them in the line 71 https://github.com/jannerm/diffuser/blob/kuka/scripts/kuka.py#L71)
tmp = np.load("kuka_dataset/data_897.npy")
renderer.renders(tmp)
And the visualization is the following video
As seen in the video, the robot has already picked up and placed the object.
1) My question is:
What is the objective of training after loading the dataset?
Then, I continued training until the timestep is 15000 ( the loss is around 0.16).
I believe you sample the images(trajectories) starting from the this line https://github.com/jannerm/diffuser/blob/kuka/denoising_diffusion_pytorch/denoising_diffusion_pytorch.py#L800
and replay the robot.
I wanted to see what would look like the robot movement after training the neural network. Then I sampled the images from this line and replay the robot. The robot as well as the cube movements can be seen in the following video?
2) My second question is why the behaviour is like that ?
Hi,
Nice paper and code. They're very clear and easy to understand. I have two questions about the code implementation:
Although I've read articles about the background of the Diffusion model, I'm still new to it. I understand the loss function of comparing epsilons and using p process (the U-Net model) to estimate noise, but I'm confused why you set self.predict_epsilon == False in the locomotion example. That's amazing. What's the loss function and logic behind it? Could you briefly explain or refer me to somewhere to read please?
I think we can use the same model for path planning in Maze 2D, but I'm not sure about the code implementation. Please correct me if I'm wrong,
a. At initialization, the points are in order which represent the visiting order, and their 2D positions are random.
b. The constraints are (1) the first/last points should be at the start/end position, (2) the path between consecutive should not hit/cross the walls (I don't know how to implement constraint yet).
c. Both training and testing stage, we use the same function apply_condition
to apply the constraints.
Thanks for your time. Look forward to your response.
Best
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.