def phi(self, s, a, sparse=False, format="csr"): if sparse: cols = np.array([0] * (self.nrbf + 1)) rows = np.array([a * self.nrbf + i for i in range(self.nrbf)] + [self.feature_cnt - 1]) data = np.hstack([self.rfunc(s),[1.0]]) sparse_features = sp_create_data(data,rows,cols,self.feature_cnt,1,format) return sparse_features else: features = np.zeros(self.feature_cnt) features[a * self.nrbf : a * self.nrbf + self.nrbf] = self.rfunc(s) features[-1] = 1.0 return features
def phi(self, s, a, sparse=False, format="csr"): if sparse: cols = np.array([0] * (self.nrbf + 1)) rows = np.array([a * self.nrbf + i for i in range(self.nrbf)] + [self.feature_cnt - 1]) data = np.array(self.rfunc(s) + [1.0]) sparse_features = sp_create_data(data,rows,cols,self.feature_cnt,1,format) return sparse_features else: features = np.zeros(self.feature_cnt) for i,f in enumerate(self.rfunc(s)): features[a * self.nrbf + i] = f features[-1] = 1.0 return features
def phi(self, s, a, sparse=False, format="csr"): if sparse: cols = np.array([0,0]) rows = np.array([s + (a * self.nstates), self.feature_cnt - 1]) data = np.array([1.0,1.0]) sparse_features = sp_create_data(data,rows,cols,self.feature_cnt,1,format) return sparse_features else: features = np.zeros(self.feature_cnt) features[s + (a * self.nstates)] = 1.0 features[-1] = 1.0 return features
def phi(self, s, a, sparse=False, format="csr"): obs = self.observe(s) # 100 pca weights if not sparse: features = np.zeros(self.nfeatures()) features[-1] = 1.0 indx = self.tile(s,a) features[indx] = 1.0 return features else: cols = np.array([0] * self.nobs + [0]) rows = np.array(self.tile(s,a) + [self.nfeatures() - 1]) data = np.array([1.0] * self.nobs + [1.0]) sparse_features = sp_create_data(data, rows, cols, self.nfeatures(),1,format) return sparse_features