MCPcopy Create free account
hub / github.com/lazyprogrammer/machine_learning_examples / Model

Class Model

rl2/cartpole/q_learning.py:69–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67
68# Holds one SGDRegressor for each action
69class Model:
70 def __init__(self, env, feature_transformer):
71 self.env = env
72 self.models = []
73 self.feature_transformer = feature_transformer
74 for i in range(env.action_space.n):
75 model = SGDRegressor(feature_transformer.dimensions)
76 self.models.append(model)
77
78 def predict(self, s):
79 X = self.feature_transformer.transform(np.atleast_2d(s))
80 result = np.stack([m.predict(X) for m in self.models]).T
81 return result
82
83 def update(self, s, a, G):
84 X = self.feature_transformer.transform(np.atleast_2d(s))
85 self.models[a].partial_fit(X, [G])
86
87 def sample_action(self, s, eps):
88 if np.random.random() < eps:
89 return self.env.action_space.sample()
90 else:
91 return np.argmax(self.predict(s))
92
93
94def play_one(env, model, eps, gamma):

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected