def randomly_project_gradients_and_hessians(self, gradients, hessians, y, random_state=None): # gradients = fillnan(gradients) try: proj_g = SparseRandomProjection( n_components=1, random_state=random_state, dense_output=True, ).fit_transform(X=gradients, y=y) except ValueError: warnings.warn('Couldn\'t project the gradients so applied fillnan') gradients = np.nan_to_num(gradients) proj_g = SparseRandomProjection( n_components=1, random_state=random.randint(1, 1000), dense_output=True, ).fit_transform(X=gradients, y=y) proj_h = hessians #SparseRandomProjection(n_components=1, random_state=self.random_state).fit_transform(X=hessians) return proj_g.ravel().astype(np.float32), proj_h.astype(np.float32)
def randomly_project_gradients_and_hessians(self, gradients, hessians): proj_g = SparseRandomProjection( n_components=1, random_state=self.random_state).fit_transform(X=gradients) proj_h = hessians #SparseRandomProjection(n_components=1, random_state=self.random_state).fit_transform(X=hessians) return proj_g.ravel().astype(np.float32), proj_h.astype(np.float32)