@@ -76,14 +76,14 @@ def predict(self, adata):
7676 if adata .uns ["_prediction_mode" ] == "retrain" :
7777 train_idx = adata .obs ["_ref_subsample" ]
7878 train_x = adata [train_idx ].layers [self .layer_key ] if self .layer_key else adata [train_idx ].X
79+ train_x = np .array (train_x .todense ())
7980 train_y = adata .obs .loc [train_idx , self .labels_key ].cat .codes .to_numpy ()
8081 if settings .cuml :
8182 from cuml .svm import LinearSVC
8283 from sklearn .multiclass import OneVsRestClassifier
8384
8485 self .classifier_dict ["probability" ] = self .return_probabilities
8586 clf = OneVsRestClassifier (LinearSVC (** self .classifier_dict ))
86- train_x = train_x .todense ()
8787 clf .fit (train_x , train_y )
8888 joblib .dump (
8989 clf ,
@@ -131,7 +131,7 @@ def predict(self, adata):
131131 for i in range (0 , adata .n_obs , shard_size ):
132132 tmp_x = test_x [i : i + shard_size ]
133133 names_x = adata .obs_names [i : i + shard_size ]
134- tmp_x = tmp_x .todense ()
134+ tmp_x = np . array ( tmp_x .todense () )
135135 result_df .loc [names_x , self .result_key ] = adata .uns ["label_categories" ][clf .predict (tmp_x ).astype (int )]
136136 if self .return_probabilities :
137137 result_df .loc [names_x , f"{ self .result_key } _probabilities" ] = np .max (
0 commit comments