Classifier.validate() got an unexpected keyword argument 'predict'
6 layer Geneformer: https://huggingface.co/ctheodoris/Geneformer/blob/main/model.safetensors
all_metrics = cc.validate(model_directory="/mnt/geneformer-new/models--ctheodoris--Geneformer",
prepared_input_data_file=f"{output_dir}/{output_prefix}_labeled_train.dataset",
id_class_dict_file=f"{output_dir}/{output_prefix}_id_class_dict.pkl",
output_directory=output_dir,
output_prefix=output_prefix,
split_id_dict=train_valid_id_split_dict,
predict=True)
the error occured like this:
TypeError Traceback (most recent call last)
Cell In[11], line 2
1 # 6 layer Geneformer: https://huggingface.co/ctheodoris/Geneformer/blob/main/model.safetensors
----> 2 all_metrics = cc.validate(model_directory="/mnt/geneformer-new/models--ctheodoris--Geneformer",
3 prepared_input_data_file=f"{output_dir}/{output_prefix}_labeled_train.dataset",
4 id_class_dict_file=f"{output_dir}/{output_prefix}_id_class_dict.pkl",
5 output_directory=output_dir,
6 output_prefix=output_prefix,
7 split_id_dict=train_valid_id_split_dict,
8 predict=True)
TypeError: Classifier.validate() got an unexpected keyword argument 'predict'
But the error disappeared when "predict=True" deleted. However, when I run the code:
all_metrics_test = cc.evaluate_saved_model(
model_directory=f"{output_dir}/{datestamp_min}geneformer_cellClassifier{output_prefix}/ksplit1/",
id_class_dict_file=f"{output_dir}/{output_prefix}_id_class_dict.pkl",
test_data_file=f"{output_dir}/{output_prefix}_labeled_test.dataset",
output_directory=output_dir,
output_prefix=output_prefix,
)
Another error occured below:
100%|ββββββββββ| 4/4 [00:11<00:00, 2.92s/it]
TypeError Traceback (most recent call last)
Cell In[10], line 1
----> 1 all_metrics_test = cc.evaluate_saved_model(
2 model_directory=f"{output_dir}/{datestamp_min}geneformer_cellClassifier{output_prefix}/ksplit1/",
3 id_class_dict_file=f"{output_dir}/{output_prefix}_id_class_dict.pkl",
4 test_data_file=f"{output_dir}/{output_prefix}_labeled_test.dataset",
5 output_directory=output_dir,
6 output_prefix=output_prefix,
7 )
File ~/miniconda3/envs/geneformer-python3.10/lib/python3.10/site-packages/geneformer/classifier.py:1038, in Classifier.evaluate_saved_model(self, model_directory, id_class_dict_file, test_data_file, output_directory, output_prefix, predict)
1036 if num_classes == 2:
1037 mean_fpr = np.linspace(0, 1, 100)
-> 1038 all_tpr = [result["roc_metrics"]["interp_tpr"] for result in results]
1039 all_roc_auc = [result["roc_metrics"]["auc"] for result in results]
1040 all_tpr_wt = [result["roc_metrics"]["tpr_wt"] for result in results]
File ~/miniconda3/envs/geneformer-python3.10/lib/python3.10/site-packages/geneformer/classifier.py:1038, in (.0)
1036 if num_classes == 2:
1037 mean_fpr = np.linspace(0, 1, 100)
-> 1038 all_tpr = [result["roc_metrics"]["interp_tpr"] for result in results]
1039 all_roc_auc = [result["roc_metrics"]["auc"] for result in results]
1040 all_tpr_wt = [result["roc_metrics"]["tpr_wt"] for result in results]
TypeError: string indices must be integers
Could you give me some advice? Best wishes!
Thank you for your interest in Geneformer and for letting us know about these! We pushed a change that should fix them. Please pull the updated version.