Comments (6)
Sorry for a delayed response.
would I be correct in interpreting this to mean that the expert will be an instance of the ShortestPathFollower class?
I believe so, but someone like @jacobkrantz can confirm.
The corresponding observations, actions and rewards will be recorded and saved as a dataset (for eg as a .npz file)
Implement a Dataset class and a custom data loader that can read in from this .npz file and convert in into tensors
Unless I'm missing something, this sounds like a bad idea. Writing heavy observations (images, etc) to disk from a simulator feels wrong as a design. Why can't the observation tensors be directly fed from the simulator to the model?
from habitat-lab.
One additional node: "(both the modes: "geodesic" and "greedy")." There isn't a difference in the two modes, both result in an extremely similar expert (the names are just bad, going to change them now).
Unless I'm missing something, this sounds like a bad idea.
There are some caveats with generating the dataset on-the-fly -- namely that there is a cost to switching scenes and therefore your episodes won't really be IID.
For PointNav, I agree that on-the-fly is a must -- train has 5 million episodes and that is just way to large too ever fit on disk (just the images would take over 20 TB even with excellent image compression).
from habitat-lab.
Yeah, collecting some set of trajectories from some set of environments, learn on them, delete and repeat makes sense to me.
from habitat-lab.
Hi
I have been trying to implement an imitation learning baseline (more specifically Behavioral cloning) as detailed in this issue.
First off, just to confirm, when you say "action shortest path", would I be correct in interpreting this to mean that the expert will be an instance of the ShortestPathFollower class?
A really high-level view of what I hope to do is:
- For point goal navigation, I hope to implement an "Expert" class that chooses the best action (both the modes: "geodesic" and "greedy"). The corresponding observations, actions and rewards will be recorded and saved as a dataset (for eg as a .npz file)
- Implement a Dataset class and a custom data loader that can read in from this .npz file and convert in into tensors
- Use this dataloader to feed tensors into a model (some variant of the SimpleCNN model used in the PPO baseline) to predict the action for a particular observation and train the model on the expert trajectories.
Does this seem okay?
from habitat-lab.
The reason behind storing an explicit reference to this "Expert dataset" was to ensure that these episodes could be IID when being fed to train the model, but the memory blowup concern is a more pressing one
Does a strategy of having alternate cycles of training the policy and generating expert trajectories sound good enough? To elaborate, suppose I wish to use 100 expert trajectories to train the model. I could generate 5 expert trajectories at a time, temporarily store these trajectories, train the model on it for some epochs and then generate the next 5 trajectories whilst deleting the previously stored trajectories.
Taking this idea to its logical extreme would be to get an (observation, action) pair from the expert and use this to train the model. However, this would break the IID assumption used in Behavioral Cloning since such pairs would be correlated with each other.
In my opinion, having alternate cycles of training and generating would allow for finding a compromise between both the issues of memory consumption and training episodes being IID.
from habitat-lab.
Thank you @mukulkhanna and @erikwijmans, @Skylion007 for the reviews. Closing the issue and open another one for Dagger baseline.
from habitat-lab.
Related Issues (20)
- How is the instruction flow from High level planner to low level skills (Pick and Place) HOT 1
- Unable to load semantic annotation for Scene HOT 5
- Unable to evaluate the Social Navigate Benchmark in Habitat 3.0 using the social_nav_latest.pth checkpoint. AttributeError: Can't get attribute 'HeadStereoLeftDepthSensorConfig'
- Is there a sensor producing height coordinate of the robot's position?
- How to use Habitat3 to train and evaluate my new transformer based vision language navigation system?
- Add a new robot into one of the habitats scenes HOT 1
- Collision handling between multiple humanoid agents HOT 2
- Is there any community for habitat-lab discussions? HOT 2
- DISPLAY not detected. For headless systems, compile with --headless for EGL support HOT 4
- Is there a way to improve the quality of rendered image of hm3d inside the habitat-lab? HOT 1
- Is it possible to upload gaussian splatting-based 3D world to Habitat simulator?
- Questions on Adding Humanoids in PointNav/ObjNav tasks in Habitat Environment HOT 4
- Not able to run examples.py
- data/humanoids/humanoid_data/walking_motion_processed.pkl not exist HOT 4
- chunk = read(handle, remaining) ConnectionResetError: [Errno 104] Connection reset by peer
- Question of TopDown Map with HSSD dataset
- Strange black patches in rendering observations in hm3d v1 scenes HOT 3
- How to use the provided auxiliary tasks in the codebase
- Error in generation of semantic datasets
- Platform::WindowlessEglApplication::tryCreateContext(): unable to find CUDA device 0 among 1 EGL devices in total WindowlessContext: Unable to create windowless context HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from habitat-lab.