Pixels Predictions
Why SageMaker?
Before diving into actual project, it’s worth spending why I choose AWS SageMaker is the backbone of this project - Obviously Sagemaker been whole product compose other AWS service Glue together & Market Demand 😂
SageMaker is AWS’s fully managed machine learning platform — it handles the undifferentiated heavy lifting of ML infra
FYI, plain boto3+EC2 can do that too.The value is in what SageMaker automates around training: distributed data loading, experiment tracking, hyperparameter tuning jobs, and one-command deployment to a real-time inference endpoint.
Problem Statement.
I started as a weekend project, with 10-5 class subset, on the company I worked with given an opportunity to classify 50 different types of furniture on the high level, and it passes to specific model ( I always relies on ensambling btw ) to achieve good results.
A 10–15 class subset (like just the starters) trains fast and hits high accuracy easily — it doesn’t stress-test the pipeline or justify a managed platform like SageMaker. Going with the full 150-class Gen 1 Pokédex introduces real inter-class similarity, class imbalance, and a large enough dataset that distributed training, hyperparameter tuning, and hosted endpoints actually earn their place.
| Criteria | SageMaker Studio (UI) | boto3 (General-Purpose SDK) | SageMaker Python SDK (sagemaker lib) |
|---|---|---|---|
| What it is | Web-based IDE for notebooks, pipelines, experiments | Low-level AWS SDK — same one used for S3, EC2, Lambda, etc. | High-level, ML-specific SDK built on top of boto3 |
| Best for | Exploration, visual debugging, one-off experiments, demoing to non-engineers | Fine-grained control, scripting infrastructure alongside other AWS services | Actual training/deployment workflows — the “SageMaker way” |
| Learning curve | Low — click-and-run | Medium–high — raw API calls such as create_training_job() with verbose JSON configs | Low–medium — purpose-built abstractions such as Estimator, .fit(), .deploy() |
| Reproducibility | Poor — clicks aren’t code and are hard to version | Good — scriptable, but verbose and brittle | Good — scriptable and concise; designed for source control |
| Automation-friendly | No — manual by nature | Yes, but you rebuild ML-specific conveniences yourself | Yes — designed for CI/CD and SageMaker Pipelines |
| Abstraction level | Highest — little/no code required | Lowest — raw AWS API surface | Middle — hides boilerplate while keeping control of ML logic |