In Keras library, what is the meaning of “nb_steps_warmup” in the DQNAgent Object initialization?
$begingroup$
I can't understand the meaning of "nb_steps_warmup", a parameter of the __init__ function of DQNAgent class of the Keras_RL module.
I just know that when I set small value for "nb_steps_warmup" the command line prints: UserWarning: Not enough entries to sample without replacement. Consider increasing your warm-up phase to avoid oversampling!
This is my code:
import numpy as np
import gym
import gym_briscola
import argparse
import os
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
import logging
def getModel(input_shape, nb_actions):
# Next, we build a very simple model.
model = Sequential()
model.add(Flatten(input_shape = input_shape))
model.add(Dense(nb_actions, activation = 'relu'))
for i in range(2):
model.add(Dense(2, activation = 'relu'))
model.add(Dense(nb_actions, activation = 'relu'))
# print(model.summary())
return model
def init():
ENV_NAME = 'Briscola-v0'
# Get the environment and extract the number of actions.
env = gym.make(ENV_NAME)
env.setName("Inteligence")
env.cicle = True
nb_actions = env.action_space.n
window_length = 10
input_shape = (window_length, 5)
# Finally, we configure and compile our agent. You can use every built-in Keras optimizer and
# even the metrics!
memory = SequentialMemory(limit=50000, window_length=window_length)
#Maxwell-boltzmann distribution
policy = BoltzmannQPolicy()
dqn = DQNAgent(model=getModel(input_shape, nb_actions), nb_actions=nb_actions, memory=memory, nb_steps_warmup=11,
target_model_update=1e-5, policy=policy, dueling_type='avg', enable_dueling_network=True)
print("Compila")
dqn.compile(Adam(lr=1e-5), metrics=['mae'])
try:
dqn.load_weights('dqn_{}_weights.h5f'.format(ENV_NAME))
except OSError:
print("File non trovato")
return dqn, env, ENV_NAME
def startTraining():
dqn, env, ENV_NAME = init()
print("Fit")
dqn.fit(env, nb_steps=5E6, visualize=False, verbose=1, log_interval=1000)
# After training is done, we save the final weights.
dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
def startTest():
dqn, env, _ = init()
print("Test")
# Finally, evaluate our algorithm for 5 episodes.
dqn.test(env, nb_episodes=10, visualize=False)
#Log config
def setLogging(show = True):
logging.getLogger("Briscola").propagate = show
logging.getLogger("IA").propagate = True
logging.getLogger("Client").propagate = show
logging.getLogger("Vincitore").propagate = show
logging.basicConfig(level=logging.INFO)
if __name__ == "__main__":
#Parameter settings
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--modality", help="The modality of the program", const="train", nargs='?')
parser.add_argument("-l", "--logging", help="Enable logging", type=bool, const=False, nargs='?')
args = parser.parse_args()
setLogging(True)
print("Avvio modalita' ", args.modality)
if args.modality == "test":
startTest()
else:
startTraining()
print("Fine")
This is the doc of the module: https://keras-rl.readthedocs.io/en/latest/agents/dqn/
I hope I was clear with my English.
machine-learning reinforcement-learning
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
$endgroup$
add a comment |
$begingroup$
I can't understand the meaning of "nb_steps_warmup", a parameter of the __init__ function of DQNAgent class of the Keras_RL module.
I just know that when I set small value for "nb_steps_warmup" the command line prints: UserWarning: Not enough entries to sample without replacement. Consider increasing your warm-up phase to avoid oversampling!
This is my code:
import numpy as np
import gym
import gym_briscola
import argparse
import os
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
import logging
def getModel(input_shape, nb_actions):
# Next, we build a very simple model.
model = Sequential()
model.add(Flatten(input_shape = input_shape))
model.add(Dense(nb_actions, activation = 'relu'))
for i in range(2):
model.add(Dense(2, activation = 'relu'))
model.add(Dense(nb_actions, activation = 'relu'))
# print(model.summary())
return model
def init():
ENV_NAME = 'Briscola-v0'
# Get the environment and extract the number of actions.
env = gym.make(ENV_NAME)
env.setName("Inteligence")
env.cicle = True
nb_actions = env.action_space.n
window_length = 10
input_shape = (window_length, 5)
# Finally, we configure and compile our agent. You can use every built-in Keras optimizer and
# even the metrics!
memory = SequentialMemory(limit=50000, window_length=window_length)
#Maxwell-boltzmann distribution
policy = BoltzmannQPolicy()
dqn = DQNAgent(model=getModel(input_shape, nb_actions), nb_actions=nb_actions, memory=memory, nb_steps_warmup=11,
target_model_update=1e-5, policy=policy, dueling_type='avg', enable_dueling_network=True)
print("Compila")
dqn.compile(Adam(lr=1e-5), metrics=['mae'])
try:
dqn.load_weights('dqn_{}_weights.h5f'.format(ENV_NAME))
except OSError:
print("File non trovato")
return dqn, env, ENV_NAME
def startTraining():
dqn, env, ENV_NAME = init()
print("Fit")
dqn.fit(env, nb_steps=5E6, visualize=False, verbose=1, log_interval=1000)
# After training is done, we save the final weights.
dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
def startTest():
dqn, env, _ = init()
print("Test")
# Finally, evaluate our algorithm for 5 episodes.
dqn.test(env, nb_episodes=10, visualize=False)
#Log config
def setLogging(show = True):
logging.getLogger("Briscola").propagate = show
logging.getLogger("IA").propagate = True
logging.getLogger("Client").propagate = show
logging.getLogger("Vincitore").propagate = show
logging.basicConfig(level=logging.INFO)
if __name__ == "__main__":
#Parameter settings
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--modality", help="The modality of the program", const="train", nargs='?')
parser.add_argument("-l", "--logging", help="Enable logging", type=bool, const=False, nargs='?')
args = parser.parse_args()
setLogging(True)
print("Avvio modalita' ", args.modality)
if args.modality == "test":
startTest()
else:
startTraining()
print("Fine")
This is the doc of the module: https://keras-rl.readthedocs.io/en/latest/agents/dqn/
I hope I was clear with my English.
machine-learning reinforcement-learning
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
$endgroup$
add a comment |
$begingroup$
I can't understand the meaning of "nb_steps_warmup", a parameter of the __init__ function of DQNAgent class of the Keras_RL module.
I just know that when I set small value for "nb_steps_warmup" the command line prints: UserWarning: Not enough entries to sample without replacement. Consider increasing your warm-up phase to avoid oversampling!
This is my code:
import numpy as np
import gym
import gym_briscola
import argparse
import os
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
import logging
def getModel(input_shape, nb_actions):
# Next, we build a very simple model.
model = Sequential()
model.add(Flatten(input_shape = input_shape))
model.add(Dense(nb_actions, activation = 'relu'))
for i in range(2):
model.add(Dense(2, activation = 'relu'))
model.add(Dense(nb_actions, activation = 'relu'))
# print(model.summary())
return model
def init():
ENV_NAME = 'Briscola-v0'
# Get the environment and extract the number of actions.
env = gym.make(ENV_NAME)
env.setName("Inteligence")
env.cicle = True
nb_actions = env.action_space.n
window_length = 10
input_shape = (window_length, 5)
# Finally, we configure and compile our agent. You can use every built-in Keras optimizer and
# even the metrics!
memory = SequentialMemory(limit=50000, window_length=window_length)
#Maxwell-boltzmann distribution
policy = BoltzmannQPolicy()
dqn = DQNAgent(model=getModel(input_shape, nb_actions), nb_actions=nb_actions, memory=memory, nb_steps_warmup=11,
target_model_update=1e-5, policy=policy, dueling_type='avg', enable_dueling_network=True)
print("Compila")
dqn.compile(Adam(lr=1e-5), metrics=['mae'])
try:
dqn.load_weights('dqn_{}_weights.h5f'.format(ENV_NAME))
except OSError:
print("File non trovato")
return dqn, env, ENV_NAME
def startTraining():
dqn, env, ENV_NAME = init()
print("Fit")
dqn.fit(env, nb_steps=5E6, visualize=False, verbose=1, log_interval=1000)
# After training is done, we save the final weights.
dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
def startTest():
dqn, env, _ = init()
print("Test")
# Finally, evaluate our algorithm for 5 episodes.
dqn.test(env, nb_episodes=10, visualize=False)
#Log config
def setLogging(show = True):
logging.getLogger("Briscola").propagate = show
logging.getLogger("IA").propagate = True
logging.getLogger("Client").propagate = show
logging.getLogger("Vincitore").propagate = show
logging.basicConfig(level=logging.INFO)
if __name__ == "__main__":
#Parameter settings
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--modality", help="The modality of the program", const="train", nargs='?')
parser.add_argument("-l", "--logging", help="Enable logging", type=bool, const=False, nargs='?')
args = parser.parse_args()
setLogging(True)
print("Avvio modalita' ", args.modality)
if args.modality == "test":
startTest()
else:
startTraining()
print("Fine")
This is the doc of the module: https://keras-rl.readthedocs.io/en/latest/agents/dqn/
I hope I was clear with my English.
machine-learning reinforcement-learning
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
$endgroup$
I can't understand the meaning of "nb_steps_warmup", a parameter of the __init__ function of DQNAgent class of the Keras_RL module.
I just know that when I set small value for "nb_steps_warmup" the command line prints: UserWarning: Not enough entries to sample without replacement. Consider increasing your warm-up phase to avoid oversampling!
This is my code:
import numpy as np
import gym
import gym_briscola
import argparse
import os
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
import logging
def getModel(input_shape, nb_actions):
# Next, we build a very simple model.
model = Sequential()
model.add(Flatten(input_shape = input_shape))
model.add(Dense(nb_actions, activation = 'relu'))
for i in range(2):
model.add(Dense(2, activation = 'relu'))
model.add(Dense(nb_actions, activation = 'relu'))
# print(model.summary())
return model
def init():
ENV_NAME = 'Briscola-v0'
# Get the environment and extract the number of actions.
env = gym.make(ENV_NAME)
env.setName("Inteligence")
env.cicle = True
nb_actions = env.action_space.n
window_length = 10
input_shape = (window_length, 5)
# Finally, we configure and compile our agent. You can use every built-in Keras optimizer and
# even the metrics!
memory = SequentialMemory(limit=50000, window_length=window_length)
#Maxwell-boltzmann distribution
policy = BoltzmannQPolicy()
dqn = DQNAgent(model=getModel(input_shape, nb_actions), nb_actions=nb_actions, memory=memory, nb_steps_warmup=11,
target_model_update=1e-5, policy=policy, dueling_type='avg', enable_dueling_network=True)
print("Compila")
dqn.compile(Adam(lr=1e-5), metrics=['mae'])
try:
dqn.load_weights('dqn_{}_weights.h5f'.format(ENV_NAME))
except OSError:
print("File non trovato")
return dqn, env, ENV_NAME
def startTraining():
dqn, env, ENV_NAME = init()
print("Fit")
dqn.fit(env, nb_steps=5E6, visualize=False, verbose=1, log_interval=1000)
# After training is done, we save the final weights.
dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
def startTest():
dqn, env, _ = init()
print("Test")
# Finally, evaluate our algorithm for 5 episodes.
dqn.test(env, nb_episodes=10, visualize=False)
#Log config
def setLogging(show = True):
logging.getLogger("Briscola").propagate = show
logging.getLogger("IA").propagate = True
logging.getLogger("Client").propagate = show
logging.getLogger("Vincitore").propagate = show
logging.basicConfig(level=logging.INFO)
if __name__ == "__main__":
#Parameter settings
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--modality", help="The modality of the program", const="train", nargs='?')
parser.add_argument("-l", "--logging", help="Enable logging", type=bool, const=False, nargs='?')
args = parser.parse_args()
setLogging(True)
print("Avvio modalita' ", args.modality)
if args.modality == "test":
startTest()
else:
startTraining()
print("Fine")
This is the doc of the module: https://keras-rl.readthedocs.io/en/latest/agents/dqn/
I hope I was clear with my English.
machine-learning reinforcement-learning
machine-learning reinforcement-learning
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited 6 mins ago
Wes
42812
42812
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 10 hours ago
Daniele TrDaniele Tr
62
62
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Daniele Tr is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Daniele Tr is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f46056%2fin-keras-library-what-is-the-meaning-of-nb-steps-warmup-in-the-dqnagent-objec%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Daniele Tr is a new contributor. Be nice, and check out our Code of Conduct.
Daniele Tr is a new contributor. Be nice, and check out our Code of Conduct.
Daniele Tr is a new contributor. Be nice, and check out our Code of Conduct.
Daniele Tr is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Data Science Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f46056%2fin-keras-library-what-is-the-meaning-of-nb-steps-warmup-in-the-dqnagent-objec%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown