Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,90 @@

### Breaking Changes

* merge v2 changes into master
* rename s3_input to TrainingInput
* Move _NumpyDeserializer to sagemaker.deserializers.NumpyDeserializer
* rename numpy_to_record_serializer to RecordSerializer
* Move _CsvDeserializer to sagemaker.deserializers and rename to CSVDeserializer
* Move _JsonSerializer to sagemaker.serializers.JSONSerializer
* Move _NPYSerializer to sagemaker.serializers and rename to NumpySerializer
* Move _JsonDeserializer to sagemaker.deserializers.JSONDeserializer
* Move _CsvSerializer to sagemaker.serializers.CSVSerializer
* preserve script path when S3 source_dir is provided
* use image_uris.retrieve() for XGBoost URIs
* deprecate sagemaker.amazon.amazon_estimator.get_image_uri()
* deprecate fw_registry module and use image_uris.retrieve() for SparkML
* deprecate Python SDK CLI
* Remove the content_types module
* deprecate unused parameters
* deprecate fw_utils.create_image_uri()
* use images_uris.retrieve() for Debugger
* deprecate fw_utils.parse_s3_url in favor of s3.parse_s3_url
* deprecate unused functions from utils and fw_utils
* Remove content_type and accept parameters from Predictor
* Add parameters to deploy and remove parameters from create_model
* Add LibSVM serializer for XGBoost predictor
* move ShuffleConfig from sagemaker.session to sagemaker.inputs
* deprecate get_ecr_image_uri_prefix
* rename estimator.train_image() to estimator.training_image_uri()
* deprecate is_version_equal_or_higher and is_version_equal_or_lower
* default wait=True for HyperparameterTuner.fit() and Transformer.transform()
* remove unused bin/sagemaker-submit file

### Features

* start new module for retrieving prebuilt SageMaker image URIs
* handle separate training/inference images and EI in image_uris.retrieve
* add support for Amazon algorithms in image_uris.retrieve()
* Add pandas deserializer
* Remove LegacySerializer and LegacyDeserializer
* Add sparse matrix serializer
* Add v2 SerDe compatability
* Add JSON Lines serializer
* add framework upgrade tool
* add 1p algorithm image_uris migration tool
* Update migration tool to support breaking changes to create_model
* support PyTorch 1.6 training

### Bug Fixes and Other Changes

* handle named variables in v2 migration tool
* add modifier for s3_input class
* add XGBoost support to image_uris.retrieve()
* add MXNet configuration to image_uris.retrieve()
* add remaining Amazon algorithms for image_uris.retrieve()
* add PyTorch configuration for image_uris.retrieve()
* make image_scope optional for some images in image_uris.retrieve()
* separate logs() from attach()
* use image_uris.retrieve instead of fw_utils.create_image_uri for DLC frameworks
* use images_uris.retrieve() for scikit-learn classes
* use image_uris.retrieve() for RL images
* Rename BaseDeserializer.deserialize data parameter
* Add allow_pickle parameter to NumpyDeserializer
* Fix scipy.sparse imports
* Improve code style of SerDe compatibility
* use image_uris.retrieve for Neo and Inferentia images
* use generated RL version fixtures and update Ray version
* use image_uris.retrieve() for ModelMonitor default image
* use _framework_name for 'protected' attribute
* Fix JSONLinesDeserializer
* upgrade TFS version and fix py_versions KeyError
* Fix PandasDeserializer tests to more accurately mock response
* don't require instance_type for image_uris.retrieve() if only one option
* ignore code cells with shell commands in v2 migration tool
* Support multiple Accept types

### Documentation Changes

* fix pip install command
* document name changes for TFS classes
* document v2.0.0 changes
* update KFP full pipeline

### Testing and Release Infrastructure

* generate Chainer latest version fixtures from config
* use generated TensorFlow version fixtures
* use generated MXNet version fixtures

## v1.72.0 (2020-07-29)

Expand Down
5 changes: 0 additions & 5 deletions README.rst
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
+-------------------------------------------------------------------------------------------------+
| **NOTE**: We are working on v2.0.0. See https://github.com/aws/sagemaker-python-sdk/issues/1459 |
| for more info on our plans and to leave feedback! |
+-------------------------------------------------------------------------------------------------+

.. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/branding/icon/sagemaker-banner.png
:height: 100px
:alt: SageMaker
Expand Down