Comments (5)
@timmeinhardt - You have to use the Bernoulli Distribution and therefore can't be based off of the Categorical distribution.
You can use this piece of code
You have to add this in the model.py file
from distributions import Bernoulli
...
class Policy(nn.Module):
...
elif action_space.__class__.__name__ == "MultiBinary":
num_outputs = action_space.shape[0]
self.dist = Bernoulli(self.base.output_size, num_outputs)
You have to add this in the distributions.py file
FixedBernoulli = torch.distributions.Bernoulli
log_prob_bernoulli = FixedBernoulli.log_prob
FixedBernoulli.log_probs = lambda self, actions: log_prob_bernoulli(self, actions).sum(-1, keepdim = True)
entropy = FixedBernoulli.entropy
FixedBernoulli.entropy = lambda self: entropy(self).sum(-1)
class Bernoulli(nn.Module):
def __init__(self, num_inputs, num_outputs):
super(Bernoulli, self).__init__()
init_ = lambda m: init(m,
nn.init.orthogonal_,
lambda x: nn.init.constant_(x, 0),
gain=0.01)
self.linear = init_(nn.Linear(num_inputs, num_outputs))
def forward(self, x):
x = self.linear(x)
return FixedBernoulli(logits = x)
from pytorch-a2c-ppo-acktr-gail.
There are no plans currently to add support for MultiDiscrete actions.
But I will gladly accept a PL!
I'm not sure whether there are any blocking factors but MultiDiscrete actions are clearly useful so I can help to fix any problems.
from pytorch-a2c-ppo-acktr-gail.
@codeislife99 Thank you for this!
Do you know how to implement FixedBernoulli.mode
?
from pytorch-a2c-ppo-acktr-gail.
@ShaniGam. For implementing a Bernoulli mode you have to choose your own threshold probability for each action. During testing, it would be better to just sample instead of using mode. If it's a stochastic environment then mode would not even be close to what you want.
from pytorch-a2c-ppo-acktr-gail.
We now implemented a Bernoulli mode in form of a threshold. However, @codeislife99 's concerns should be considerer when using the Bernoulli distribution.
from pytorch-a2c-ppo-acktr-gail.
Related Issues (20)
- does mask introduce bias in the gail implementation ?
- observation reset before insert
- Why acktr algorithm cannot be used in Mujoco settings?
- Can I train in my own game
- Can not run enjoy.py
- Stale hidden states
- Possible bug on the sign of policy log prob. in Fisher computation
- CNN Architecture
- Operations that have no effect
- No softmax before categorical loss?
- object has no attribute 'steps' in acktr
- why PPO needs to store action_log_probs instead of using stop_gradient for better efficiency? HOT 1
- [Question]Can I use Recurrent_policy for GAIL at this implementation?
- question about the recurrent HOT 1
- Oops! wrong repo :-D HOT 1
- setup.py and requirements.py have same dependencies except for h5py
- Where are the experts data for GAIL get from?
- Why is episode_rewards negative when running ant_v3 with PPO?
- Why didn't run to generate log?
- Updates: Support the latest Atari environment and state entropy maximization-based exploration.
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 pytorch-a2c-ppo-acktr-gail.