SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
SageMaker

NOTE: Use the SageMaker SDK to use SageMaker Experiments. This repository will not be up to date with the latest product improvements. Link to developer guide.

SageMaker Experiments Python SDK

Latest VersionSupported Python VersionsLicensePyPI - DownloadsCodeCovPyPI - StatusKit formatGitHub Workflow StatusGithub starsGithub forksContributorsGitHub search hit counterCode style: blackRead the Docs - Sagemaker Experiments

Experiment tracking in SageMaker Training Jobs, Processing Jobs, and Notebooks.

Overview

SageMaker Experiments is an AWS service for tracking machine learning Experiments. The SageMaker Experiments Python SDK is a high-level interface to this service that helps you track Experiment information using Python.

Experiment tracking powers the machine learning integrated development environment Amazon SageMaker Studio.

For detailed API reference please go to: Read the Docs

Concepts

  • Experiment: A collection of related Trials. Add Trials to an Experiment that you wish to compare together.
  • Trial: A description of a multi-step machine learning workflow. Each step in the workflow is described by a Trial Component. There is no relationship between Trial Components such as ordering.
  • Trial Component: A description of a single step in a machine learning workflow. For example data cleaning, feature extraction, model training, model evaluation, etc...
  • Tracker: A Python context-manager for logging information about a single TrialComponent.

For more information see Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings

Using the SDK

You can use this SDK to:

  • Manage Experiments, Trials, and Trial Components within Python scripts, programs, and notebooks.
  • Add tracking information to a SageMaker notebook, allowing you to model your notebook in SageMaker Experiments as a multi-step ML workflow.
  • Record experiment information from inside your running SageMaker Training and Processing Jobs.

Installation

pip install sagemaker-experiments

Examples

importboto3importpickle, gzip, numpy, json, osimportioimportnumpyasnpimportsagemaker.amazon.commonassmacimportsagemakerfromsagemakerimportget_execution_rolefromsagemakerimportanalyticsfromsmexperimentsimportexperiment# Specify training containerfromsagemaker.amazon.amazon_estimatorimportget_image_uricontainer=get_image_uri(boto3.Session().region_name, 'linear-learner')
# Load the datasets3=boto3.client("s3")
s3.download_file("sagemaker-sample-files", "datasets/image/MNIST/mnist.pkl.gz", "mnist.pkl.gz")
withgzip.open('mnist.pkl.gz', 'rb') asf:
train_set, valid_set, test_set=pickle.load(f, encoding='latin1')
vectors=np.array([t.tolist() fortintrain_set[0]]).astype('float32')
labels=np.where(np.array([t.tolist() fortintrain_set[1]]) ==0, 1, 0).astype('float32')
buf=io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, vectors, labels)
buf.seek(0)
key='recordio-pb-data'bucket=sagemaker.session.Session().default_bucket()
prefix='sagemaker/DEMO-linear-mnist'boto3.resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data='s3://{}/{}/train/{}'.format(bucket, prefix, key)
output_location='s3://{}/{}/output'.format(bucket, prefix)
my_experiment=experiment.Experiment.create(experiment_name='MNIST')
my_trial=my_experiment.create_trial(trial_name='linear-learner')
role=get_execution_role()
sess=sagemaker.Session()
linear=sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=784,
predictor_type='binary_classifier',
mini_batch_size=200)
linear.fit(inputs={'train': s3_train_data}, experiment_config={
"ExperimentName": my_experiment.experiment_name,
"TrialName": my_trial.trial_name,
"TrialComponentDisplayName": "MNIST-linear-learner",
},)
trial_component_analytics=analytics.ExperimentAnalytics(experiment_name=my_experiment.experiment_name)
analytic_table=trial_component_analytics.dataframe()
analytic_table

For more examples, check out: sagemaker-experiments in AWS Labs Amazon SageMaker Examples.

License

This library is licensed under the Apache 2.0 License.

Running Tests

Unit Tests

tox tests/unit

Integration Tests

To run the integration tests, the following prerequisites must be met:

  • AWS account credentials are available in the environment for the boto3 client to use.
  • The AWS account has an IAM role with SageMaker permissions.
tox tests/integ
  • Test against different regions
tox -e py39 -- --region cn-north-1

Docker Based Integration Tests

Several integration tests rely on docker to push an image to ECR which is then used for training.

Docker Setup

  1. Install docker
  2. set aws cred helper in docker config (~/.docker/config.json)
# dockerconfigexample{"stackOrchestrator": "swarm","credsStore": "desktop","auths": {"https://index.docker.io/v1/": {}},"credHelpers": {"aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"},"experimental": "disabled"}
# run only docker based tests
tox -e py39 -- tests/integ -m 'docker'# exclude docker based tests
tox -e py39 -- tests/integ -m 'not docker'

Generate Docs

tox -e docs

About

Experiment tracking and metric logging for Amazon SageMaker notebooks and model training.

Resources

Code of conduct

Contributing

Security policy

Stars

129 stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages