-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feature: support Endpoint_type for TF transform #881
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good! just a few small comments
return super(TensorFlow, self).transformer(instance_count, instance_type, strategy, assemble_with, output_path, | ||
output_kms_key, accept, env, max_concurrent_transforms, max_payload, | ||
tags, role, model_server_workers, volume_kms_key | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sure the args line up:
return super(TensorFlow, self).transformer(instance_count, instance_type, strategy, assemble_with, output_path,
output_kms_key, accept, env, max_concurrent_transforms, max_payload,
tags, role, model_server_workers, volume_kms_key)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure
tests/unit/test_tf_estimator.py
Outdated
@@ -23,7 +23,9 @@ | |||
from sagemaker.model import MODEL_SERVER_WORKERS_PARAM_NAME | |||
from sagemaker.session import s3_input | |||
from sagemaker.tensorflow import defaults, TensorFlow, TensorFlowModel, TensorFlowPredictor | |||
from sagemaker.estimator import _TrainingJob |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
keep imports in alphabetical order
If None, server will use one worker per vCPU. | ||
volume_kms_key (str): Optional. KMS key ID for encrypting the volume attached to the ML | ||
compute instance (default: None). | ||
endpoint_type: Optional. Selects the software stack used by the inference server. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add the type here - i.e. endpoint_type (str):
volume_kms_key (str): Optional. KMS key ID for encrypting the volume attached to the ML | ||
compute instance (default: None). | ||
endpoint_type: Optional. Selects the software stack used by the inference server. | ||
If not specified, the model will be configured to use the default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: there's an extra space after "If" (yeah, I realize you copied it from above 😂)
tests/unit/test_tf_estimator.py
Outdated
container_log_level = '"logging.INFO"' | ||
source_dir = 's3://mybucket/source' | ||
enable_cloudwatch_metrics = 'true' | ||
base_name = 'flo' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if these aren't being checked later, then there's no need to define them. I'd recommend specifying only the required args for TensorFlow
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make sure that you at least once manually tested your transformer in SageMaker. Ideally, you should have at least one integration or local mode test for your transformer.
tests/unit/test_tf_estimator.py
Outdated
@@ -305,6 +308,49 @@ def test_create_model_with_optional_params(sagemaker_session): | |||
assert model.vpc_config == vpc_config | |||
|
|||
|
|||
@patch("sagemaker.tensorflow.estimator.TensorFlow._create_tfs_model") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should avoid patching a private method from within the class that you are testing to not lock the method signature. You can mock using:
sagemaker.tensorflow.estimator.TensorFlow.create_model
instead.
tests/unit/test_tf_estimator.py
Outdated
assert transformer.instance_type == INSTANCE_TYPE | ||
assert tf.script_mode is True | ||
assert tf._script_mode_enabled() is True | ||
create_tfs_model.assert_called_once() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can do:
create_model.assert_called_with(endpoint_type="tensorflow-serving")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this approach, we added transformer() function with endpoint_type parameter at TF estimator class. If endpoint_type=="tensorflow-serving", we change var script_mode to True which will return TF script mode + TF Serving. Otherwise, it will use TF legacy/framework mode.
Thus, we don't actually pass endpoint_type parameter to transformer() in the Framework base class: https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/estimator.py#L1030 in which create_model(role=role, model_server_workers=model_server_workers) is called with only two fixed parameters. So the assertion create_model.assert_called_with(endpoint_type="tensorflow-serving") is failed.
If we really need to avoid patching a private method, i can override transformer() method from Framework base class to make endpoint_type parameter available.
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
env=env, | ||
max_concurrent_transforms=max_concurrent_transforms, | ||
max_payload=max_payload, | ||
tags=None, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's pass tags
here rather than None
tests/unit/test_tf_estimator.py
Outdated
train_instance_count=INSTANCE_COUNT, | ||
train_instance_type=INSTANCE_TYPE, | ||
) | ||
tf.latest_training_job = _TrainingJob(sagemaker_session, JOB_NAME) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's the purpose of this line?
tests/unit/test_tf_estimator.py
Outdated
create_model.assert_called_with( | ||
endpoint_type="tensorflow-serving", | ||
model_server_workers=2, | ||
role="Dummy", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use ROLE
so that way if someone were to change what that variable was, they wouldn't have to search through the tests to find this hardcoded string
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
tests/unit/test_tf_estimator.py
Outdated
@@ -305,6 +306,68 @@ def test_create_model_with_optional_params(sagemaker_session): | |||
assert model.vpc_config == vpc_config | |||
|
|||
|
|||
@patch("sagemaker.tensorflow.serving.Model.transformer") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry, I think I explained this incorrectly last time...
- You should still mock
create_model
because you want to assert if that is called withendpoint_type
set correctly, and you don't actually care about what that method is doing (since presumably there will be unit tests for that method). - You also want to make sure
transformer()
isn't called for real, since again, it's beyond the scope of this unit test. - Lastly, you do want to still check that
transformer()
was called with the correct args, since that's part of the logic of the method you wrote.
so keep the patch on create_model
, and make sure it's return_value
is a Mock
object that you can reference later:
# create_model is the patched method
model = Mock()
create_model.return_value = model
# your existing test code
create_model.assert_called_with(...)
model.transformer.assert_called_with(...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
* Set eureka VERSION file * Eureka master (aws#145) * Eureka trial tracking interface * Add experiments developer guides (aws#147) * Add experiments developer guides * Eureka master (aws#148) * Add experiments developer guides * Move to new experiment / trial / trial run data model. Add TrialRun class. * Eureka master (aws#149) * Add Trial class * Experiment class (aws#151) * Introduce active-record design, include first concrete type - Experiment. * Add Trial and TrialRun active record classes (aws#152) * Add Trial and TrialRun active records. Add common created_time / last_modified_time to Record * List method (aws#153) * Add general list classmethod to Record. Add concrete impl to experiment.Experiment * Eureka master (aws#154) * Use general list method in all list* methods in experiment, trial, trial_run * Add Trial Run Tracker (aws#156) * Add Trial Run Tracker * Add helper methods to Experiment and Trial for fast-creating Trials and TrialRunTrackers * Set Eureka build to just run linters, doc build, and unit tests * Add integration tests (aws#159) * Add experiment and trial integegration tests * TrialRun bug fixes (aws#160) Introduce UpdatedData property on TrialRun * Adapt Python SDK to Experiments Api changes (aws#164) * Move experiment to new api * Pin pytest version to 4.4.1 * Fix list trials by experiment without passing experiment name. (aws#166) * Pass experiment name for list trial api call. * Eureka master (aws#167) Flatten trial name input for create_trial * Make providing the step name optional when creating a trial tracker (aws#169) * Make step name optional when creating tracker * Make create tracker obtain TRAINING_JOB_ARN from the environment. (aws#186) * Make create tracker obtain TRAINING_JOB_ARN from the environment. * when trial creates a tracker, the training_job_arn can be automatically set as source arn when creating the trial stage. * correpsonding unit test. * Add source_arn back as optional param for create_tracker * make source_arn an optional param for create_tracker function. * Resolving source arn skeleton for jobs. * Changing _resolve_job_arn to _resolve_source_arn. * Using generator to resolve source arn from the environment. * TrialAnalytics class to convert trial step data to pandas dataframe (aws#188) * TrialAnalytics class to convert trial stage data to pandas data frame * pin version flake8-future-import to 0.4.5 to avoid build failure on import annotations missing * pandas column ordering is different in py27 and py37. Sorting columns to make the order deterministic * * Rename step to component (aws#194) * Use new TrialComponent API structure for metrics, artifacts and parameters * Improve documentation (aws#199) * Improve documentation and remove unsupported parameters to list_trial_components * minor doc update * remove hardcoded alpha endpoint for experiments (aws#201) * Generate sphinx docs for experiment classes (aws#204) * Update Sphinx RST files to generate documentation for experiment classes * Merging master branch in to eureka-master (aws#206) * prepare release v1.18.16 * update development version to v1.18.17.dev0 * fix: use unique names for test training jobs (aws#765) * prepare release v1.18.17 * update development version to v1.18.18.dev0 * change: add automatic model tuning integ test for TF script mode (aws#766) * prepare release v1.18.18 * update development version to v1.18.19.dev0 * change: skip p2/p3 tests in eu-central-1 (aws#769) * prepare release v1.18.19 * update development version to v1.18.20.dev0 * feature: add document embedding support to Object2Vec algorithm (aws#772) * prepare release v1.19.0 * update development version to v1.19.1.dev0 * change: add py2 deprecation message for the deep learning framework images (aws#768) * prepare release v1.19.1 * update development version to v1.19.2.dev0 * feature: add RL Ray 0.6.5 support (aws#779) * fix: adjust Ray test script for Ray 0.6.5 (aws#781) * fix: prevent false positive PR test results (aws#783) * prepare release v1.20.0 * update development version to v1.20.1.dev0 * fix: update TrainingInputMode with s3_input InputMode (aws#776) * prepare release v1.20.1 * update development version to v1.20.2.dev0 * fix: pin pytest version to 4.4.1 to avoid pluggy version conflict (aws#788) * prepare release v1.20.2 * update development version to v1.20.3.dev0 * documentation: fix docs in regards to transform_fn for mxnet (aws#790) * fix: skip local file check for TF requirements file when source_dir is an S3 URI (aws#798) * fix: run tests if buildspec.yml has been modified (aws#786) * prepare release v1.20.3 * update development version to v1.20.4.dev0 * feature: Support for TFS preprocessing (aws#797) * prepare release v1.21.0 * update development version to v1.21.1.dev0 * fix: repack model function works without source directory (aws#804) * prepare release v1.21.1 * update development version to v1.21.2.dev0 * fix: emit training jobs tags to estimator (aws#803) * fix: set _current_job_name in attach() (aws#808) * prepare release v1.21.2 * update development version to v1.21.3.dev0 * fix: honor source_dir from S3 (aws#811) * feature: add encryption option to "record_set" (aws#794) * feature: add encryption option to "record_set" * prepare release v1.22.0 * update development version to v1.22.1.dev0 * documentation: update using_sklearn.rst parameter name (aws#814) Incorrect parameter name in docs. Updated to match what is implemented in the method and what is used in other estimators. * feature: support MXNet 1.4 with MMS (aws#812) * prepare release v1.23.0 * update development version to v1.23.1.dev0 * feature: add region check for Neo service (aws#806) * prepare release v1.24.0 * update development version to v1.24.1.dev0 * fix: add better default transform job name handling within Transformer (aws#822) * feature: repack_model support dependencies and code location (aws#821) * documentation: TFS support for pre/processing functions (aws#807) * change: skip p2 tests in ap-south-east (aws#823) * prepare release v1.25.0 * update development version to v1.25.1.dev0 * fix: use unique job name in hyperparameter tuning test (aws#829) * prepare release v1.25.1 * update development version to v1.25.2.dev0 * feature: Add extra_args to enable encrypted objects upload (aws#836) * change: downgrade c5 in integ tests and test all TF Script Mode images (aws#840) * feature: emit estimator transformer tags to model (aws#815) * doc: include FrameworkModel and ModelPackage in API docs (aws#833) * prepare release v1.26.0 * update development version to v1.26.1.dev0 * fix: fix logger creation in Chainer integ test script (aws#843) only one test failed due to a timeout. (the corresponding test failed with the other Python version.) talked to Rui offline. * feature: add wait argument to estimator deploy (aws#842) * prepare release v1.27.0 * update development version to v1.27.1.dev0 * feature: Add DataProcessing Fields for Batch Transform (aws#827) * prepare release v1.28.0 * update development version to v1.28.1.dev0 * Update setup.py (aws#859) * prepare release v1.28.1 * update development version to v1.28.2.dev0 * fix: prevent race condition in vpc tests (aws#863) * prepare release v1.28.2 * update development version to v1.28.3.dev0 * doc: clean up MXNet and TF documentation (aws#865) * doc: fix punctuation in MXNet version list (aws#866) * change: update Sagemaker Neo regions and instance families (aws#862) * prepare release v1.28.3 * update development version to v1.28.4.dev0 * feature: network isolation mode in training (aws#791) * feature: network isolation mode in training * feature: network isolation mode in tar support training * change: documentation and check describe training job network isolation * doc update * doc update, remove inference section * sourcedir * type error fix * change: moving not canary TFS tests to local mode (aws#870) * Integrate black into development process (aws#873) * change: Add Black formatting tool as dependency As of this commit, Black formatting tool can be run with 'tox -e black-format'. Black does not run as part of any automated process, yet. Black is pulled in as a test dependency only if the Python version is greater than 3.6, as the tool is not vended as part of any earlier Python version. * change: Resolve Black formatting failures Black is unable to handle trailing 'L' or 'l' which is no longer supported as of python 3.8. This commit removes those unnecessary 'long' identifiers. https://www.python.org/dev/peps/pep-0237/ * change: Format all files using Black This commit contains no functional changes. * change: Manually resolve flake8 violations after formatting * change: Manually resolve pylint violations after formatting * change: Enable black locally and in automated build. This commit enables black-format as part of "tox tests/unit", in order to format all files. It also enables black-check as part of the remote builds, in order to verify that all files are properly formatted. * prepare release v1.29.0 * update development version to v1.29.1.dev0 * feature: add git_config and git_clone, validate method (aws#832) * fix: add pytest.mark.local_mode annotation to broken tests (aws#876) * fix: add pytest.mark.local_mode annotation to tests * feature: add TensorFlow 1.13 support (aws#860) * prepare release v1.30.0 * update development version to v1.30.1.dev0 * fix: add pytest.mark.local_mode annotation to broken tests (aws#884) * change: remove unnecessary P3 tests from TFS integration tests (aws#885) * change: allow only one integration test run per time (aws#880) * change: Update buildspec.yml (aws#887) * feature: use deep learning images (aws#883) * prepare release v1.31.0 * update development version to v1.31.1.dev0 * change: build spec improvements. (aws#888) * fix: remove unnecessary failure case tests (aws#892) * change: print build execution time (aws#890) * prepare release v1.31.1 * update development version to v1.31.2.dev0 * fix git test in test_estimator.py (aws#894) * feature: support Endpoint_type for TF transform (aws#881) * prepare release v1.32.0 * update development version to v1.32.1.dev0 * change: separate unit, local mode, and notebook tests in different buildspecs (aws#898) * change: fix notebook tests (aws#900) * Update displaytime.sh (aws#901) * doc: refactor the overview topic in the sphinx project (aws#877) * change: tighten pylint config and expand C and R exceptions (aws#899) This commit tightens the pylint config with inspiration from several of Google's pylint configs. This commit also expands the C and R exceptions and disables the specific rules that cause issues in this package. * change: correct code per len-as-condition Pylint check (aws#902) The Pylint check is not actually enabled in this commit as it conflicts directly with NumPy. Pylint has corrected this, and it will be included in their next release (2.4.0): pylint-dev/pylint#2684 Once Pylint 2.4.0 is released, we can consume it and remove this check. A summary of this information is included in a TODO near the relevant Pylint disable rule (len-as-condition). * prepare release v1.32.1 * update development version to v1.32.2.dev0 * change: remove superfluous parens per Pylint rule (aws#903) * change: enable logging-format-interpolation pylint check (aws#904) * documentation: add pypi, rtd, black badges to readme (aws#910) * prepare release v1.32.2 * update development version to v1.32.3.dev0 * feature: allow custom model name during deploy (aws#792) * feature: allow custom model name during deploy * black check * feature: git support for hosting models (aws#878) * git integration for serving * fix: Add ap-northeast-1 to Neo algorithms region map (aws#897) * fix: reset default output path in Transformer.transform (aws#905) * fix: reset default output path on create transform job * Unit and integration tests * change: enable logging-not-lazy pylint check (aws#909) * change: enable wrong-import-position pylint check (aws#907) * change: enable wrong-import-position pylint check * change: updating import pattern for sagemaker.tensorflow * fix: fixing integration tests * change: reformatting * change: enable signature-differs pylint check (aws#915) * Revert "change: enable wrong-import-position pylint check (aws#907)" (aws#916) This reverts commit 8489f86. * change: enable wrong-import-position pylint check (aws#917) * change: remove TODO comment on import-error Pylint check (aws#918) By running Pylint before any of the unit tests (and dependency installs), the import-error check will always fail since the dependencies are not yet installed. We could move Pylint to a later stage to resolve this, but there's value in this quick check occurring before the unit tests. As a result, this Pylint check is being disabled. * prepare release v1.33.0 * update development version to v1.33.1.dev0 * change: enable unidiomatic-typecheck pylint check (aws#921) * change: enable no-else-return and no-else-raise pylint checks (aws#925) * change: fix list serialization for 1P algos (aws#922) * change: enable simplifiable-if-expression pylint checks (aws#926) * feature: deal with credentials for Git support for GitHub (aws#914) add authentication info * feature: Git integration for CodeCommit (aws#927) * add functions, tests and doc for CodeCommit * change: enable inconsistent-return-statements Pylint check (aws#930) Note that this commit also raises ValueErrors in situations that would previously have returned None. Per PEP8: Be consistent in return statements. Either all return statements in a function should return an expression, or none of them should. If any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None, and an explicit return statement should be present at the end of the function (if reachable). * change: enable consider-merging-isinstance Pylint check (aws#932) Note that this commit will also enable simplifiable-if-statement, as there are no code changes needed for it. * change: enable attribute-defined-outside-init Pylint check (aws#933) The logic behind this rule is to improve readability by defining all the attributes of a class inside the init function, even if it simply sets them to None. * change: enable wrong-import-order Pylint check (aws#935) Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: enable ungrouped-imports Pylint check (aws#936) * change: enable wrong-import-order Pylint check Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: fix attach for 1P algorithm estimators (aws#931) * change: set num_processes_per_host only if provided by user (aws#928) * change: enable consider-using-in Pylint check (aws#938) * change: enable consider-using-in Pylint check * change: enable too-many-public-methods Pylint check (aws#939) * change: enable too-many-public-methods Pylint check This is a useful check to have, but is a lot of work to retroactively enforce. Enabling it while ignoring the single violation allows the validation to run for future code. * change: enable chained-comparison Pylint check (aws#940) * change: enable consider-using-ternary Pylint check (aws#942) This commit will add an exclusion for all auto-generated files. I chose to ignore the single violation, because the alternative is confusingly convoluted: `(hasattr(obj, '__getitem__') if hasattr(obj, '__iter__') else isinstance(obj, str))` * change: modify TODO on disabled Pylint check (aws#943) The check recommendations are only valid for packages that exclusively support Python 3. The changes cannot be made in Python 2. The TODO was updated to clarify this. * prepare release v1.34.0 * update development version to v1.34.1.dev0 * change: add MXNet 1.4.1 support (aws#886) * change: format and add missing docstring placeholders (aws#945) This commit will format all existing docstring to follow Google style: https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html This commit will also add docstring placeholders to any class or method previously missing it. An ideal approach would be to take the time to include meaningful docstrings in every file. However, since that is not a task that will be prioritized, I've declared docstring bankruptcy on this package, in order to enforce docstring on all future code changes to this package. * change: allow serving script to be defined for deploy() and transformer() with frameworks (aws#944) * change: update PyTorch version (aws#947) * change: improve documentation of some functions (aws#864) [pr-827][followups] Improve documentation of some functions. Also some unit test fixes. See comments from marcio in aws#827 * doc: update using_tensorflow topic (aws#946) * fix: update TensorFlow script mode dependency list (aws#869) * change: improving Chainer integ tests (aws#872) * change: enable line-too-long Pylint check (aws#948) * doc: add instructions for setting up Cloud9 environment. (aws#949) Added instructions that allow for a low-cost ~10min environment setup. * prepare release v1.34.1 * update development version to v1.34.2.dev0 * change: Replaced generic ValueError with custom subclass when reporting unexpected resource status (aws#919) * doc: correct wording for Cloud9 environment setup instructions (aws#952) package => repo * change: removing unnecessary tests cases (aws#951) * prepare release v1.34.2 * update development version to v1.34.3.dev0 * change: waiting for training tags to propagate in the test (aws#955) * prepare release v1.34.3 * update development version to v1.34.4.dev0 * feature: allow serving image to be specified when calling MXNet.deploy (aws#959) * prepare release v1.35.0 * update development version to v1.35.1.dev0 * doc: refactor and edit using_mxnet topic (aws#956) * doc: refactor overview section per improvement plan * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * doc: made changes per feedback comments * doc: remove duplicate faq section and fixed heading * doc: fix heading levels in overview.rst * doc: update TensorFlow using topic * doc: Update using_tf.rst to address feedback * doc: fix comment in conf.py per build log * doc: add newline to conf.py to fix error * doc: addressed feedback for PR * doc: update conf.py * doc: remove duplicate byom section in overview.rst * doc: remove duplicate headings in several rst files * doc: Restructure and update Using MXNet topic * doc: fix link * doc: add link to mxnet readme container section in using_mxnet.rst topic * fix: update sklearn document to include 3p dependency installation (aws#960) * prepare release v1.35.1 * update development version to v1.35.2.dev0 * fix: allow Airflow enabled estimators to use absolute path entry_point (aws#965) * change: ignore FI18 flake8 rule (aws#969) * feature: support for TensorFlow 1.14 (aws#967) * flake8 fixes * black reformat * Revert "Merging master branch in to eureka-master (aws#206)" This reverts commit 080d06d561aa88a177c67f08114902ab292f3883. * Black + Pylint fixes * add latest api service model * skip eureka integ tests temporarily * Fix integ tests to work with preview SDK model (aws#215) * Fix integ tests to work with preview SDK model. * Use search to find trial components for analytics dataframe (aws#219) * move boto client arg to end of the arg list for all eureka APIs * Use search to find trial components in TrialAnalytics * add test to verify value error is thrown if no component filter specified * drop trial name from analytics frame as trial components wont have trial name in them in the future * remove trial name column for analytics frame * Eureka master (aws#236) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Eureka master (aws#237) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Fix analytics component and search functionality * Delete all experiments related classes and their tests. * Change TrialAnalytics to ExperimentAnalytics. * Fix ExperimentAnalytics for m-n model change. * Fix/Modify Search functionality * Fix Docs * Remove exp management doc from index * Fix pass None type ExperimentConfig to transform request. * Fix formatting in test_session.py * Do not build empty filters list when experiment name is not given * Add DisplayName to analytics table * Fix formatting. * Add sortBy and sortOrder for ExperimentAnalytics * Eureka master (aws#259) Fix bad merge * Add ExperimentConfig to Processor (aws#260) * Add ExperimentConfig to Processor * Remove broken experiment config from processor test (aws#261) * Add ExperimentConfig to Processor * Eureka master (aws#262) * Remove old setup file and Eureka specific files. * Eureka master (aws#264) * Add back missing factorization machines integration test * Minor style fixes (aws#265) * Minor style fixes * Fix broken SageMaker Experiments analytics integration tests (aws#267) * Fix broken experiments_analytics integration tests * Eureka master (aws#270) * Remove experiment_config from analytics test
* Set eureka VERSION file * Eureka master (aws#145) * Eureka trial tracking interface * Add experiments developer guides (aws#147) * Add experiments developer guides * Eureka master (aws#148) * Add experiments developer guides * Move to new experiment / trial / trial run data model. Add TrialRun class. * Eureka master (aws#149) * Add Trial class * Experiment class (aws#151) * Introduce active-record design, include first concrete type - Experiment. * Add Trial and TrialRun active record classes (aws#152) * Add Trial and TrialRun active records. Add common created_time / last_modified_time to Record * List method (aws#153) * Add general list classmethod to Record. Add concrete impl to experiment.Experiment * Eureka master (aws#154) * Use general list method in all list* methods in experiment, trial, trial_run * Add Trial Run Tracker (aws#156) * Add Trial Run Tracker * Add helper methods to Experiment and Trial for fast-creating Trials and TrialRunTrackers * Set Eureka build to just run linters, doc build, and unit tests * Add integration tests (aws#159) * Add experiment and trial integegration tests * TrialRun bug fixes (aws#160) Introduce UpdatedData property on TrialRun * Adapt Python SDK to Experiments Api changes (aws#164) * Move experiment to new api * Pin pytest version to 4.4.1 * Fix list trials by experiment without passing experiment name. (aws#166) * Pass experiment name for list trial api call. * Eureka master (aws#167) Flatten trial name input for create_trial * Make providing the step name optional when creating a trial tracker (aws#169) * Make step name optional when creating tracker * Make create tracker obtain TRAINING_JOB_ARN from the environment. (aws#186) * Make create tracker obtain TRAINING_JOB_ARN from the environment. * when trial creates a tracker, the training_job_arn can be automatically set as source arn when creating the trial stage. * correpsonding unit test. * Add source_arn back as optional param for create_tracker * make source_arn an optional param for create_tracker function. * Resolving source arn skeleton for jobs. * Changing _resolve_job_arn to _resolve_source_arn. * Using generator to resolve source arn from the environment. * TrialAnalytics class to convert trial step data to pandas dataframe (aws#188) * TrialAnalytics class to convert trial stage data to pandas data frame * pin version flake8-future-import to 0.4.5 to avoid build failure on import annotations missing * pandas column ordering is different in py27 and py37. Sorting columns to make the order deterministic * * Rename step to component (aws#194) * Use new TrialComponent API structure for metrics, artifacts and parameters * Improve documentation (aws#199) * Improve documentation and remove unsupported parameters to list_trial_components * minor doc update * remove hardcoded alpha endpoint for experiments (aws#201) * Generate sphinx docs for experiment classes (aws#204) * Update Sphinx RST files to generate documentation for experiment classes * Merging master branch in to eureka-master (aws#206) * prepare release v1.18.16 * update development version to v1.18.17.dev0 * fix: use unique names for test training jobs (aws#765) * prepare release v1.18.17 * update development version to v1.18.18.dev0 * change: add automatic model tuning integ test for TF script mode (aws#766) * prepare release v1.18.18 * update development version to v1.18.19.dev0 * change: skip p2/p3 tests in eu-central-1 (aws#769) * prepare release v1.18.19 * update development version to v1.18.20.dev0 * feature: add document embedding support to Object2Vec algorithm (aws#772) * prepare release v1.19.0 * update development version to v1.19.1.dev0 * change: add py2 deprecation message for the deep learning framework images (aws#768) * prepare release v1.19.1 * update development version to v1.19.2.dev0 * feature: add RL Ray 0.6.5 support (aws#779) * fix: adjust Ray test script for Ray 0.6.5 (aws#781) * fix: prevent false positive PR test results (aws#783) * prepare release v1.20.0 * update development version to v1.20.1.dev0 * fix: update TrainingInputMode with s3_input InputMode (aws#776) * prepare release v1.20.1 * update development version to v1.20.2.dev0 * fix: pin pytest version to 4.4.1 to avoid pluggy version conflict (aws#788) * prepare release v1.20.2 * update development version to v1.20.3.dev0 * documentation: fix docs in regards to transform_fn for mxnet (aws#790) * fix: skip local file check for TF requirements file when source_dir is an S3 URI (aws#798) * fix: run tests if buildspec.yml has been modified (aws#786) * prepare release v1.20.3 * update development version to v1.20.4.dev0 * feature: Support for TFS preprocessing (aws#797) * prepare release v1.21.0 * update development version to v1.21.1.dev0 * fix: repack model function works without source directory (aws#804) * prepare release v1.21.1 * update development version to v1.21.2.dev0 * fix: emit training jobs tags to estimator (aws#803) * fix: set _current_job_name in attach() (aws#808) * prepare release v1.21.2 * update development version to v1.21.3.dev0 * fix: honor source_dir from S3 (aws#811) * feature: add encryption option to "record_set" (aws#794) * feature: add encryption option to "record_set" * prepare release v1.22.0 * update development version to v1.22.1.dev0 * documentation: update using_sklearn.rst parameter name (aws#814) Incorrect parameter name in docs. Updated to match what is implemented in the method and what is used in other estimators. * feature: support MXNet 1.4 with MMS (aws#812) * prepare release v1.23.0 * update development version to v1.23.1.dev0 * feature: add region check for Neo service (aws#806) * prepare release v1.24.0 * update development version to v1.24.1.dev0 * fix: add better default transform job name handling within Transformer (aws#822) * feature: repack_model support dependencies and code location (aws#821) * documentation: TFS support for pre/processing functions (aws#807) * change: skip p2 tests in ap-south-east (aws#823) * prepare release v1.25.0 * update development version to v1.25.1.dev0 * fix: use unique job name in hyperparameter tuning test (aws#829) * prepare release v1.25.1 * update development version to v1.25.2.dev0 * feature: Add extra_args to enable encrypted objects upload (aws#836) * change: downgrade c5 in integ tests and test all TF Script Mode images (aws#840) * feature: emit estimator transformer tags to model (aws#815) * doc: include FrameworkModel and ModelPackage in API docs (aws#833) * prepare release v1.26.0 * update development version to v1.26.1.dev0 * fix: fix logger creation in Chainer integ test script (aws#843) only one test failed due to a timeout. (the corresponding test failed with the other Python version.) talked to Rui offline. * feature: add wait argument to estimator deploy (aws#842) * prepare release v1.27.0 * update development version to v1.27.1.dev0 * feature: Add DataProcessing Fields for Batch Transform (aws#827) * prepare release v1.28.0 * update development version to v1.28.1.dev0 * Update setup.py (aws#859) * prepare release v1.28.1 * update development version to v1.28.2.dev0 * fix: prevent race condition in vpc tests (aws#863) * prepare release v1.28.2 * update development version to v1.28.3.dev0 * doc: clean up MXNet and TF documentation (aws#865) * doc: fix punctuation in MXNet version list (aws#866) * change: update Sagemaker Neo regions and instance families (aws#862) * prepare release v1.28.3 * update development version to v1.28.4.dev0 * feature: network isolation mode in training (aws#791) * feature: network isolation mode in training * feature: network isolation mode in tar support training * change: documentation and check describe training job network isolation * doc update * doc update, remove inference section * sourcedir * type error fix * change: moving not canary TFS tests to local mode (aws#870) * Integrate black into development process (aws#873) * change: Add Black formatting tool as dependency As of this commit, Black formatting tool can be run with 'tox -e black-format'. Black does not run as part of any automated process, yet. Black is pulled in as a test dependency only if the Python version is greater than 3.6, as the tool is not vended as part of any earlier Python version. * change: Resolve Black formatting failures Black is unable to handle trailing 'L' or 'l' which is no longer supported as of python 3.8. This commit removes those unnecessary 'long' identifiers. https://www.python.org/dev/peps/pep-0237/ * change: Format all files using Black This commit contains no functional changes. * change: Manually resolve flake8 violations after formatting * change: Manually resolve pylint violations after formatting * change: Enable black locally and in automated build. This commit enables black-format as part of "tox tests/unit", in order to format all files. It also enables black-check as part of the remote builds, in order to verify that all files are properly formatted. * prepare release v1.29.0 * update development version to v1.29.1.dev0 * feature: add git_config and git_clone, validate method (aws#832) * fix: add pytest.mark.local_mode annotation to broken tests (aws#876) * fix: add pytest.mark.local_mode annotation to tests * feature: add TensorFlow 1.13 support (aws#860) * prepare release v1.30.0 * update development version to v1.30.1.dev0 * fix: add pytest.mark.local_mode annotation to broken tests (aws#884) * change: remove unnecessary P3 tests from TFS integration tests (aws#885) * change: allow only one integration test run per time (aws#880) * change: Update buildspec.yml (aws#887) * feature: use deep learning images (aws#883) * prepare release v1.31.0 * update development version to v1.31.1.dev0 * change: build spec improvements. (aws#888) * fix: remove unnecessary failure case tests (aws#892) * change: print build execution time (aws#890) * prepare release v1.31.1 * update development version to v1.31.2.dev0 * fix git test in test_estimator.py (aws#894) * feature: support Endpoint_type for TF transform (aws#881) * prepare release v1.32.0 * update development version to v1.32.1.dev0 * change: separate unit, local mode, and notebook tests in different buildspecs (aws#898) * change: fix notebook tests (aws#900) * Update displaytime.sh (aws#901) * doc: refactor the overview topic in the sphinx project (aws#877) * change: tighten pylint config and expand C and R exceptions (aws#899) This commit tightens the pylint config with inspiration from several of Google's pylint configs. This commit also expands the C and R exceptions and disables the specific rules that cause issues in this package. * change: correct code per len-as-condition Pylint check (aws#902) The Pylint check is not actually enabled in this commit as it conflicts directly with NumPy. Pylint has corrected this, and it will be included in their next release (2.4.0): pylint-dev/pylint#2684 Once Pylint 2.4.0 is released, we can consume it and remove this check. A summary of this information is included in a TODO near the relevant Pylint disable rule (len-as-condition). * prepare release v1.32.1 * update development version to v1.32.2.dev0 * change: remove superfluous parens per Pylint rule (aws#903) * change: enable logging-format-interpolation pylint check (aws#904) * documentation: add pypi, rtd, black badges to readme (aws#910) * prepare release v1.32.2 * update development version to v1.32.3.dev0 * feature: allow custom model name during deploy (aws#792) * feature: allow custom model name during deploy * black check * feature: git support for hosting models (aws#878) * git integration for serving * fix: Add ap-northeast-1 to Neo algorithms region map (aws#897) * fix: reset default output path in Transformer.transform (aws#905) * fix: reset default output path on create transform job * Unit and integration tests * change: enable logging-not-lazy pylint check (aws#909) * change: enable wrong-import-position pylint check (aws#907) * change: enable wrong-import-position pylint check * change: updating import pattern for sagemaker.tensorflow * fix: fixing integration tests * change: reformatting * change: enable signature-differs pylint check (aws#915) * Revert "change: enable wrong-import-position pylint check (aws#907)" (aws#916) This reverts commit 8489f86. * change: enable wrong-import-position pylint check (aws#917) * change: remove TODO comment on import-error Pylint check (aws#918) By running Pylint before any of the unit tests (and dependency installs), the import-error check will always fail since the dependencies are not yet installed. We could move Pylint to a later stage to resolve this, but there's value in this quick check occurring before the unit tests. As a result, this Pylint check is being disabled. * prepare release v1.33.0 * update development version to v1.33.1.dev0 * change: enable unidiomatic-typecheck pylint check (aws#921) * change: enable no-else-return and no-else-raise pylint checks (aws#925) * change: fix list serialization for 1P algos (aws#922) * change: enable simplifiable-if-expression pylint checks (aws#926) * feature: deal with credentials for Git support for GitHub (aws#914) add authentication info * feature: Git integration for CodeCommit (aws#927) * add functions, tests and doc for CodeCommit * change: enable inconsistent-return-statements Pylint check (aws#930) Note that this commit also raises ValueErrors in situations that would previously have returned None. Per PEP8: Be consistent in return statements. Either all return statements in a function should return an expression, or none of them should. If any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None, and an explicit return statement should be present at the end of the function (if reachable). * change: enable consider-merging-isinstance Pylint check (aws#932) Note that this commit will also enable simplifiable-if-statement, as there are no code changes needed for it. * change: enable attribute-defined-outside-init Pylint check (aws#933) The logic behind this rule is to improve readability by defining all the attributes of a class inside the init function, even if it simply sets them to None. * change: enable wrong-import-order Pylint check (aws#935) Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: enable ungrouped-imports Pylint check (aws#936) * change: enable wrong-import-order Pylint check Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: fix attach for 1P algorithm estimators (aws#931) * change: set num_processes_per_host only if provided by user (aws#928) * change: enable consider-using-in Pylint check (aws#938) * change: enable consider-using-in Pylint check * change: enable too-many-public-methods Pylint check (aws#939) * change: enable too-many-public-methods Pylint check This is a useful check to have, but is a lot of work to retroactively enforce. Enabling it while ignoring the single violation allows the validation to run for future code. * change: enable chained-comparison Pylint check (aws#940) * change: enable consider-using-ternary Pylint check (aws#942) This commit will add an exclusion for all auto-generated files. I chose to ignore the single violation, because the alternative is confusingly convoluted: `(hasattr(obj, '__getitem__') if hasattr(obj, '__iter__') else isinstance(obj, str))` * change: modify TODO on disabled Pylint check (aws#943) The check recommendations are only valid for packages that exclusively support Python 3. The changes cannot be made in Python 2. The TODO was updated to clarify this. * prepare release v1.34.0 * update development version to v1.34.1.dev0 * change: add MXNet 1.4.1 support (aws#886) * change: format and add missing docstring placeholders (aws#945) This commit will format all existing docstring to follow Google style: https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html This commit will also add docstring placeholders to any class or method previously missing it. An ideal approach would be to take the time to include meaningful docstrings in every file. However, since that is not a task that will be prioritized, I've declared docstring bankruptcy on this package, in order to enforce docstring on all future code changes to this package. * change: allow serving script to be defined for deploy() and transformer() with frameworks (aws#944) * change: update PyTorch version (aws#947) * change: improve documentation of some functions (aws#864) [pr-827][followups] Improve documentation of some functions. Also some unit test fixes. See comments from marcio in aws#827 * doc: update using_tensorflow topic (aws#946) * fix: update TensorFlow script mode dependency list (aws#869) * change: improving Chainer integ tests (aws#872) * change: enable line-too-long Pylint check (aws#948) * doc: add instructions for setting up Cloud9 environment. (aws#949) Added instructions that allow for a low-cost ~10min environment setup. * prepare release v1.34.1 * update development version to v1.34.2.dev0 * change: Replaced generic ValueError with custom subclass when reporting unexpected resource status (aws#919) * doc: correct wording for Cloud9 environment setup instructions (aws#952) package => repo * change: removing unnecessary tests cases (aws#951) * prepare release v1.34.2 * update development version to v1.34.3.dev0 * change: waiting for training tags to propagate in the test (aws#955) * prepare release v1.34.3 * update development version to v1.34.4.dev0 * feature: allow serving image to be specified when calling MXNet.deploy (aws#959) * prepare release v1.35.0 * update development version to v1.35.1.dev0 * doc: refactor and edit using_mxnet topic (aws#956) * doc: refactor overview section per improvement plan * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * doc: made changes per feedback comments * doc: remove duplicate faq section and fixed heading * doc: fix heading levels in overview.rst * doc: update TensorFlow using topic * doc: Update using_tf.rst to address feedback * doc: fix comment in conf.py per build log * doc: add newline to conf.py to fix error * doc: addressed feedback for PR * doc: update conf.py * doc: remove duplicate byom section in overview.rst * doc: remove duplicate headings in several rst files * doc: Restructure and update Using MXNet topic * doc: fix link * doc: add link to mxnet readme container section in using_mxnet.rst topic * fix: update sklearn document to include 3p dependency installation (aws#960) * prepare release v1.35.1 * update development version to v1.35.2.dev0 * fix: allow Airflow enabled estimators to use absolute path entry_point (aws#965) * change: ignore FI18 flake8 rule (aws#969) * feature: support for TensorFlow 1.14 (aws#967) * flake8 fixes * black reformat * Revert "Merging master branch in to eureka-master (aws#206)" This reverts commit 080d06d561aa88a177c67f08114902ab292f3883. * Black + Pylint fixes * add latest api service model * skip eureka integ tests temporarily * Fix integ tests to work with preview SDK model (aws#215) * Fix integ tests to work with preview SDK model. * Use search to find trial components for analytics dataframe (aws#219) * move boto client arg to end of the arg list for all eureka APIs * Use search to find trial components in TrialAnalytics * add test to verify value error is thrown if no component filter specified * drop trial name from analytics frame as trial components wont have trial name in them in the future * remove trial name column for analytics frame * Eureka master (aws#236) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Eureka master (aws#237) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Fix analytics component and search functionality * Delete all experiments related classes and their tests. * Change TrialAnalytics to ExperimentAnalytics. * Fix ExperimentAnalytics for m-n model change. * Fix/Modify Search functionality * Fix Docs * Remove exp management doc from index * Fix pass None type ExperimentConfig to transform request. * Fix formatting in test_session.py * Do not build empty filters list when experiment name is not given * Add DisplayName to analytics table * Fix formatting. * Add sortBy and sortOrder for ExperimentAnalytics * Eureka master (aws#259) Fix bad merge * Add ExperimentConfig to Processor (aws#260) * Add ExperimentConfig to Processor * Remove broken experiment config from processor test (aws#261) * Add ExperimentConfig to Processor * Eureka master (aws#262) * Remove old setup file and Eureka specific files. * Eureka master (aws#264) * Add back missing factorization machines integration test * Minor style fixes (aws#265) * Minor style fixes * Fix broken SageMaker Experiments analytics integration tests (aws#267) * Fix broken experiments_analytics integration tests * Eureka master (aws#270) * Remove experiment_config from analytics test
* Set eureka VERSION file * Eureka master (#145) * Eureka trial tracking interface * Add experiments developer guides (#147) * Add experiments developer guides * Eureka master (#148) * Add experiments developer guides * Move to new experiment / trial / trial run data model. Add TrialRun class. * Eureka master (#149) * Add Trial class * Experiment class (#151) * Introduce active-record design, include first concrete type - Experiment. * Add Trial and TrialRun active record classes (#152) * Add Trial and TrialRun active records. Add common created_time / last_modified_time to Record * List method (#153) * Add general list classmethod to Record. Add concrete impl to experiment.Experiment * Eureka master (#154) * Use general list method in all list* methods in experiment, trial, trial_run * Add Trial Run Tracker (#156) * Add Trial Run Tracker * Add helper methods to Experiment and Trial for fast-creating Trials and TrialRunTrackers * Set Eureka build to just run linters, doc build, and unit tests * Add integration tests (#159) * Add experiment and trial integegration tests * TrialRun bug fixes (#160) Introduce UpdatedData property on TrialRun * Adapt Python SDK to Experiments Api changes (#164) * Move experiment to new api * Pin pytest version to 4.4.1 * Fix list trials by experiment without passing experiment name. (#166) * Pass experiment name for list trial api call. * Eureka master (#167) Flatten trial name input for create_trial * Make providing the step name optional when creating a trial tracker (#169) * Make step name optional when creating tracker * Make create tracker obtain TRAINING_JOB_ARN from the environment. (#186) * Make create tracker obtain TRAINING_JOB_ARN from the environment. * when trial creates a tracker, the training_job_arn can be automatically set as source arn when creating the trial stage. * correpsonding unit test. * Add source_arn back as optional param for create_tracker * make source_arn an optional param for create_tracker function. * Resolving source arn skeleton for jobs. * Changing _resolve_job_arn to _resolve_source_arn. * Using generator to resolve source arn from the environment. * TrialAnalytics class to convert trial step data to pandas dataframe (#188) * TrialAnalytics class to convert trial stage data to pandas data frame * pin version flake8-future-import to 0.4.5 to avoid build failure on import annotations missing * pandas column ordering is different in py27 and py37. Sorting columns to make the order deterministic * * Rename step to component (#194) * Use new TrialComponent API structure for metrics, artifacts and parameters * Improve documentation (#199) * Improve documentation and remove unsupported parameters to list_trial_components * minor doc update * remove hardcoded alpha endpoint for experiments (#201) * Generate sphinx docs for experiment classes (#204) * Update Sphinx RST files to generate documentation for experiment classes * Merging master branch in to eureka-master (#206) * prepare release v1.18.16 * update development version to v1.18.17.dev0 * fix: use unique names for test training jobs (#765) * prepare release v1.18.17 * update development version to v1.18.18.dev0 * change: add automatic model tuning integ test for TF script mode (#766) * prepare release v1.18.18 * update development version to v1.18.19.dev0 * change: skip p2/p3 tests in eu-central-1 (#769) * prepare release v1.18.19 * update development version to v1.18.20.dev0 * feature: add document embedding support to Object2Vec algorithm (#772) * prepare release v1.19.0 * update development version to v1.19.1.dev0 * change: add py2 deprecation message for the deep learning framework images (#768) * prepare release v1.19.1 * update development version to v1.19.2.dev0 * feature: add RL Ray 0.6.5 support (#779) * fix: adjust Ray test script for Ray 0.6.5 (#781) * fix: prevent false positive PR test results (#783) * prepare release v1.20.0 * update development version to v1.20.1.dev0 * fix: update TrainingInputMode with s3_input InputMode (#776) * prepare release v1.20.1 * update development version to v1.20.2.dev0 * fix: pin pytest version to 4.4.1 to avoid pluggy version conflict (#788) * prepare release v1.20.2 * update development version to v1.20.3.dev0 * documentation: fix docs in regards to transform_fn for mxnet (#790) * fix: skip local file check for TF requirements file when source_dir is an S3 URI (#798) * fix: run tests if buildspec.yml has been modified (#786) * prepare release v1.20.3 * update development version to v1.20.4.dev0 * feature: Support for TFS preprocessing (#797) * prepare release v1.21.0 * update development version to v1.21.1.dev0 * fix: repack model function works without source directory (#804) * prepare release v1.21.1 * update development version to v1.21.2.dev0 * fix: emit training jobs tags to estimator (#803) * fix: set _current_job_name in attach() (#808) * prepare release v1.21.2 * update development version to v1.21.3.dev0 * fix: honor source_dir from S3 (#811) * feature: add encryption option to "record_set" (#794) * feature: add encryption option to "record_set" * prepare release v1.22.0 * update development version to v1.22.1.dev0 * documentation: update using_sklearn.rst parameter name (#814) Incorrect parameter name in docs. Updated to match what is implemented in the method and what is used in other estimators. * feature: support MXNet 1.4 with MMS (#812) * prepare release v1.23.0 * update development version to v1.23.1.dev0 * feature: add region check for Neo service (#806) * prepare release v1.24.0 * update development version to v1.24.1.dev0 * fix: add better default transform job name handling within Transformer (#822) * feature: repack_model support dependencies and code location (#821) * documentation: TFS support for pre/processing functions (#807) * change: skip p2 tests in ap-south-east (#823) * prepare release v1.25.0 * update development version to v1.25.1.dev0 * fix: use unique job name in hyperparameter tuning test (#829) * prepare release v1.25.1 * update development version to v1.25.2.dev0 * feature: Add extra_args to enable encrypted objects upload (#836) * change: downgrade c5 in integ tests and test all TF Script Mode images (#840) * feature: emit estimator transformer tags to model (#815) * doc: include FrameworkModel and ModelPackage in API docs (#833) * prepare release v1.26.0 * update development version to v1.26.1.dev0 * fix: fix logger creation in Chainer integ test script (#843) only one test failed due to a timeout. (the corresponding test failed with the other Python version.) talked to Rui offline. * feature: add wait argument to estimator deploy (#842) * prepare release v1.27.0 * update development version to v1.27.1.dev0 * feature: Add DataProcessing Fields for Batch Transform (#827) * prepare release v1.28.0 * update development version to v1.28.1.dev0 * Update setup.py (#859) * prepare release v1.28.1 * update development version to v1.28.2.dev0 * fix: prevent race condition in vpc tests (#863) * prepare release v1.28.2 * update development version to v1.28.3.dev0 * doc: clean up MXNet and TF documentation (#865) * doc: fix punctuation in MXNet version list (#866) * change: update Sagemaker Neo regions and instance families (#862) * prepare release v1.28.3 * update development version to v1.28.4.dev0 * feature: network isolation mode in training (#791) * feature: network isolation mode in training * feature: network isolation mode in tar support training * change: documentation and check describe training job network isolation * doc update * doc update, remove inference section * sourcedir * type error fix * change: moving not canary TFS tests to local mode (#870) * Integrate black into development process (#873) * change: Add Black formatting tool as dependency As of this commit, Black formatting tool can be run with 'tox -e black-format'. Black does not run as part of any automated process, yet. Black is pulled in as a test dependency only if the Python version is greater than 3.6, as the tool is not vended as part of any earlier Python version. * change: Resolve Black formatting failures Black is unable to handle trailing 'L' or 'l' which is no longer supported as of python 3.8. This commit removes those unnecessary 'long' identifiers. https://www.python.org/dev/peps/pep-0237/ * change: Format all files using Black This commit contains no functional changes. * change: Manually resolve flake8 violations after formatting * change: Manually resolve pylint violations after formatting * change: Enable black locally and in automated build. This commit enables black-format as part of "tox tests/unit", in order to format all files. It also enables black-check as part of the remote builds, in order to verify that all files are properly formatted. * prepare release v1.29.0 * update development version to v1.29.1.dev0 * feature: add git_config and git_clone, validate method (#832) * fix: add pytest.mark.local_mode annotation to broken tests (#876) * fix: add pytest.mark.local_mode annotation to tests * feature: add TensorFlow 1.13 support (#860) * prepare release v1.30.0 * update development version to v1.30.1.dev0 * fix: add pytest.mark.local_mode annotation to broken tests (#884) * change: remove unnecessary P3 tests from TFS integration tests (#885) * change: allow only one integration test run per time (#880) * change: Update buildspec.yml (#887) * feature: use deep learning images (#883) * prepare release v1.31.0 * update development version to v1.31.1.dev0 * change: build spec improvements. (#888) * fix: remove unnecessary failure case tests (#892) * change: print build execution time (#890) * prepare release v1.31.1 * update development version to v1.31.2.dev0 * fix git test in test_estimator.py (#894) * feature: support Endpoint_type for TF transform (#881) * prepare release v1.32.0 * update development version to v1.32.1.dev0 * change: separate unit, local mode, and notebook tests in different buildspecs (#898) * change: fix notebook tests (#900) * Update displaytime.sh (#901) * doc: refactor the overview topic in the sphinx project (#877) * change: tighten pylint config and expand C and R exceptions (#899) This commit tightens the pylint config with inspiration from several of Google's pylint configs. This commit also expands the C and R exceptions and disables the specific rules that cause issues in this package. * change: correct code per len-as-condition Pylint check (#902) The Pylint check is not actually enabled in this commit as it conflicts directly with NumPy. Pylint has corrected this, and it will be included in their next release (2.4.0): pylint-dev/pylint#2684 Once Pylint 2.4.0 is released, we can consume it and remove this check. A summary of this information is included in a TODO near the relevant Pylint disable rule (len-as-condition). * prepare release v1.32.1 * update development version to v1.32.2.dev0 * change: remove superfluous parens per Pylint rule (#903) * change: enable logging-format-interpolation pylint check (#904) * documentation: add pypi, rtd, black badges to readme (#910) * prepare release v1.32.2 * update development version to v1.32.3.dev0 * feature: allow custom model name during deploy (#792) * feature: allow custom model name during deploy * black check * feature: git support for hosting models (#878) * git integration for serving * fix: Add ap-northeast-1 to Neo algorithms region map (#897) * fix: reset default output path in Transformer.transform (#905) * fix: reset default output path on create transform job * Unit and integration tests * change: enable logging-not-lazy pylint check (#909) * change: enable wrong-import-position pylint check (#907) * change: enable wrong-import-position pylint check * change: updating import pattern for sagemaker.tensorflow * fix: fixing integration tests * change: reformatting * change: enable signature-differs pylint check (#915) * Revert "change: enable wrong-import-position pylint check (#907)" (#916) This reverts commit 8489f86. * change: enable wrong-import-position pylint check (#917) * change: remove TODO comment on import-error Pylint check (#918) By running Pylint before any of the unit tests (and dependency installs), the import-error check will always fail since the dependencies are not yet installed. We could move Pylint to a later stage to resolve this, but there's value in this quick check occurring before the unit tests. As a result, this Pylint check is being disabled. * prepare release v1.33.0 * update development version to v1.33.1.dev0 * change: enable unidiomatic-typecheck pylint check (#921) * change: enable no-else-return and no-else-raise pylint checks (#925) * change: fix list serialization for 1P algos (#922) * change: enable simplifiable-if-expression pylint checks (#926) * feature: deal with credentials for Git support for GitHub (#914) add authentication info * feature: Git integration for CodeCommit (#927) * add functions, tests and doc for CodeCommit * change: enable inconsistent-return-statements Pylint check (#930) Note that this commit also raises ValueErrors in situations that would previously have returned None. Per PEP8: Be consistent in return statements. Either all return statements in a function should return an expression, or none of them should. If any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None, and an explicit return statement should be present at the end of the function (if reachable). * change: enable consider-merging-isinstance Pylint check (#932) Note that this commit will also enable simplifiable-if-statement, as there are no code changes needed for it. * change: enable attribute-defined-outside-init Pylint check (#933) The logic behind this rule is to improve readability by defining all the attributes of a class inside the init function, even if it simply sets them to None. * change: enable wrong-import-order Pylint check (#935) Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: enable ungrouped-imports Pylint check (#936) * change: enable wrong-import-order Pylint check Per PEP8: Imports should be grouped in the following order: 1- Standard library imports. 2- Related third party imports. 3- Local application/library specific imports. * change: fix attach for 1P algorithm estimators (#931) * change: set num_processes_per_host only if provided by user (#928) * change: enable consider-using-in Pylint check (#938) * change: enable consider-using-in Pylint check * change: enable too-many-public-methods Pylint check (#939) * change: enable too-many-public-methods Pylint check This is a useful check to have, but is a lot of work to retroactively enforce. Enabling it while ignoring the single violation allows the validation to run for future code. * change: enable chained-comparison Pylint check (#940) * change: enable consider-using-ternary Pylint check (#942) This commit will add an exclusion for all auto-generated files. I chose to ignore the single violation, because the alternative is confusingly convoluted: `(hasattr(obj, '__getitem__') if hasattr(obj, '__iter__') else isinstance(obj, str))` * change: modify TODO on disabled Pylint check (#943) The check recommendations are only valid for packages that exclusively support Python 3. The changes cannot be made in Python 2. The TODO was updated to clarify this. * prepare release v1.34.0 * update development version to v1.34.1.dev0 * change: add MXNet 1.4.1 support (#886) * change: format and add missing docstring placeholders (#945) This commit will format all existing docstring to follow Google style: https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html This commit will also add docstring placeholders to any class or method previously missing it. An ideal approach would be to take the time to include meaningful docstrings in every file. However, since that is not a task that will be prioritized, I've declared docstring bankruptcy on this package, in order to enforce docstring on all future code changes to this package. * change: allow serving script to be defined for deploy() and transformer() with frameworks (#944) * change: update PyTorch version (#947) * change: improve documentation of some functions (#864) [pr-827][followups] Improve documentation of some functions. Also some unit test fixes. See comments from marcio in #827 * doc: update using_tensorflow topic (#946) * fix: update TensorFlow script mode dependency list (#869) * change: improving Chainer integ tests (#872) * change: enable line-too-long Pylint check (#948) * doc: add instructions for setting up Cloud9 environment. (#949) Added instructions that allow for a low-cost ~10min environment setup. * prepare release v1.34.1 * update development version to v1.34.2.dev0 * change: Replaced generic ValueError with custom subclass when reporting unexpected resource status (#919) * doc: correct wording for Cloud9 environment setup instructions (#952) package => repo * change: removing unnecessary tests cases (#951) * prepare release v1.34.2 * update development version to v1.34.3.dev0 * change: waiting for training tags to propagate in the test (#955) * prepare release v1.34.3 * update development version to v1.34.4.dev0 * feature: allow serving image to be specified when calling MXNet.deploy (#959) * prepare release v1.35.0 * update development version to v1.35.1.dev0 * doc: refactor and edit using_mxnet topic (#956) * doc: refactor overview section per improvement plan * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * Update doc/overview.rst Co-Authored-By: Marcio Vinicius dos Santos <[email protected]> * doc: made changes per feedback comments * doc: remove duplicate faq section and fixed heading * doc: fix heading levels in overview.rst * doc: update TensorFlow using topic * doc: Update using_tf.rst to address feedback * doc: fix comment in conf.py per build log * doc: add newline to conf.py to fix error * doc: addressed feedback for PR * doc: update conf.py * doc: remove duplicate byom section in overview.rst * doc: remove duplicate headings in several rst files * doc: Restructure and update Using MXNet topic * doc: fix link * doc: add link to mxnet readme container section in using_mxnet.rst topic * fix: update sklearn document to include 3p dependency installation (#960) * prepare release v1.35.1 * update development version to v1.35.2.dev0 * fix: allow Airflow enabled estimators to use absolute path entry_point (#965) * change: ignore FI18 flake8 rule (#969) * feature: support for TensorFlow 1.14 (#967) * flake8 fixes * black reformat * Revert "Merging master branch in to eureka-master (#206)" This reverts commit 080d06d561aa88a177c67f08114902ab292f3883. * Black + Pylint fixes * add latest api service model * skip eureka integ tests temporarily * Fix integ tests to work with preview SDK model (#215) * Fix integ tests to work with preview SDK model. * Use search to find trial components for analytics dataframe (#219) * move boto client arg to end of the arg list for all eureka APIs * Use search to find trial components in TrialAnalytics * add test to verify value error is thrown if no component filter specified * drop trial name from analytics frame as trial components wont have trial name in them in the future * remove trial name column for analytics frame * Eureka master (#236) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Eureka master (#237) * Add ExperimentConfig for estimator.fit and transformer.transform * experiment_config can be passed to estimator.fit * experiment_config can be passed to transformer.transform * unit tests for corresponding changes. * Remove include only experiment integ tests from tox.ini * Delete experiments integ tests * Update the service-2.json. * Bring in latest sagemaker models * Remove internal-only shapes and internal operations * Doc the three optional keys for ExperimentConfig dictionary * Fix analytics component and search functionality * Delete all experiments related classes and their tests. * Change TrialAnalytics to ExperimentAnalytics. * Fix ExperimentAnalytics for m-n model change. * Fix/Modify Search functionality * Fix Docs * Remove exp management doc from index * Fix pass None type ExperimentConfig to transform request. * Fix formatting in test_session.py * Do not build empty filters list when experiment name is not given * Add DisplayName to analytics table * Fix formatting. * Add sortBy and sortOrder for ExperimentAnalytics * Eureka master (#259) Fix bad merge * Add ExperimentConfig to Processor (#260) * Add ExperimentConfig to Processor * Remove broken experiment config from processor test (#261) * Add ExperimentConfig to Processor * Eureka master (#262) * Remove old setup file and Eureka specific files. * Eureka master (#264) * Add back missing factorization machines integration test * Minor style fixes (#265) * Minor style fixes * Fix broken SageMaker Experiments analytics integration tests (#267) * Fix broken experiments_analytics integration tests * Eureka master (#270) * Remove experiment_config from analytics test
Issue #, if available:
Description of changes:
Merge Checklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your pull request.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.