AutoVision-PerceptionHF / src /pipeline_example.py
AhmedSamir1598's picture
Add AutoVision models and Gradio app
3bce187
Raw
History Blame Contribute Delete
1.28 kB
"""
This file is an example of how the pipeline should be used after assembling the rest of the parts.
"""
from src.preprocessing.feature_extraction import FeatureExtractor
from src.models.baselines import BaselineModels
import numpy as np
from sklearn.model_selection import train_test_split
def demo_with_synthetic_data():
X = np.random.randn(200, 128)
y = np.random.randint(0, 2, size=(200,))
return X, y
def run_pipeline(images=None, labels=None, which_features=('hog', 'hist')):
if images is None:
X, y = demo_with_synthetic_data()
else:
fe = FeatureExtractor(resize=(128, 128))
X = fe.extract_from_list(images, which=which_features)
y = np.asarray(labels)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
model = BaselineModels(knn_k=5, use_scaler=True, use_pca=False)
model.fit(X_train, y_train)
metrics_knn = model.evaluate(X_test, y_test, model='knn')
metrics_nb = model.evaluate(X_test, y_test, model='nb')
print('KNN metrics:')
for k, v in metrics_knn.items():
print(f' {k}: {v}')
print('\nNaive Bayes metrics:')
for k, v in metrics_nb.items():
print(f' {k}: {v}')
if __name__ == '__main__':
run_pipeline()