from zenml import step, save_artifact, link_artifact_to_model, Modelimport pandas as pd@step(model=Model(name="iris_classifier", version="1.0"))def create_and_link_data() -> None: # Create some data df = pd.DataFrame({"feature": range(100), "label": range(100)}) # Save as artifact artifact = save_artifact( data=df, name="validation_data" ) # Link to the model (model inferred from step context) link_artifact_to_model(artifact)
from zenml import save_artifact, link_artifact_to_model, Modelimport numpy as np# Create and save an artifactweights = np.random.rand(10, 10)artifact = save_artifact( data=weights, name="model_weights")# Link to specific modelmodel = Model(name="my_model", version="2.0")link_artifact_to_model( artifact_version=artifact, model=model)
from zenml import pipeline, step, save_artifact, link_artifact_to_model, Modelimport pandas as pdmodel_config = Model(name="recommender", version="1.0")@stepdef create_features() -> pd.DataFrame: features = pd.DataFrame({"user_id": range(100), "feature": range(100)}) return features@step(model=model_config)def save_and_link(features: pd.DataFrame) -> None: # Save the features artifact = save_artifact( data=features, name="user_features" ) # Link to model link_artifact_to_model(artifact)@pipeline(model=model_config)def feature_pipeline(): features = create_features() save_and_link(features)
from zenml import save_artifact, link_artifact_to_model, Modelimport pandas as pd# Create modelmodel = Model(name="experiment", version="2024-01-15")# Save and link training datatrain_data = pd.DataFrame({"x": range(800)})train_artifact = save_artifact( data=train_data, name="experiment_data", version="train")link_artifact_to_model(train_artifact, model)# Save and link test datatest_data = pd.DataFrame({"x": range(200)})test_artifact = save_artifact( data=test_data, name="experiment_data", version="test")link_artifact_to_model(test_artifact, model)
from zenml import pipeline, step, get_step_context, save_artifact, link_artifact_to_modelimport pandas as pd@stepdef process_data() -> None: # Get model from step context context = get_step_context() if context.model: # Create artifact df = pd.DataFrame({"processed": range(50)}) artifact = save_artifact(data=df, name="processed_data") # Link using model from context link_artifact_to_model( artifact_version=artifact, model=context.model ) print(f"Linked to model: {context.model.name}")