class_docstr: Q-Learning with deep neural network to learn the control policy. 
  Uses a deep neural network model to predict the expected utility (Q-value) of executing an action in a given state. 
  
  Reference: https://arxiv.org/abs/1312.5602
  Parameters:
  -----------
  env_name: string
      The environment that the agent will explore. 
      Check: https://gym.openai.com/envs
  epsilon: float
      The epsilon-greedy value. The probability that the agent should select a random action instead of
      the action that will maximize the expected utility. 
  gamma: float
      Determines how much the agent should consider future rewards. 
  decay_rate: float
      The rate of decay for the epsilon value after each epoch.
  min_epsilon: float
      The value which epsilon will approach as the training progresses.
class_docstr_tok: ["Q-Learning","with","deep","neural","network","to","learn","the","control","policy",".","Uses","a","deep","neural","network","model","to","predict","the","expected","utility","(","Q-value",")","of","executing","an","action","in","a","given","state",".","Reference",":","https",":","\/\/arxiv.org\/abs\/1312.5602","Parameters",":","--","--","--","--","--","-","env_name",":","string","The","environment","that","the","agent","will","explore",".","Check",":","https",":","\/\/gym.openai.com\/envs","epsilon",":","float","The","epsilon-greedy","value",".","The","probability","that","the","agent","should","select","a","random","action","instead","of","the","action","that","will","maximize","the","expected","utility",".","gamma",":","float","Determines","how","much","the","agent","should","consider","future","rewards",".","decay_rate",":","float","The","rate","of","decay","for","the","epsilon","value","after","each","epoch",".","min_epsilon",":","float","The","value","which","epsilon","will","approach","as","the","training","progresses","."]
code: def set_model(self, model):
      self.model = model(
          n_inputs=self.n_states, n_outputs=self.n_actions
      )
  
file_path: ML-From-Scratch/mlfromscratch/reinforcement_learning/deep_q_network.py
imports: from __future__ import print_function, division
  import random
  import numpy
  import gym
  from collections import deque
label_desc: Use image node_id 2 for calling the DeepQNetwork obj's underlying member method code with example usage: obj.set_model(model) without return types