Skip to content

Question about deploying model #206

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

Closed
mklissa opened this issue May 31, 2018 · 10 comments
Closed

Question about deploying model #206

mklissa opened this issue May 31, 2018 · 10 comments

Comments

@mklissa
Copy link

mklissa commented May 31, 2018

Hi there,

I was wondering if it was possible to send a batch of inputs to predict from the endpoint? In my limited experience I can only send one image at a time, which takes quite some time if I have many images to predict.

@winstonaws
Copy link
Contributor

The SageMaker InvokeEndpoint API allows you to send up to 5MB at a time in one request. As long as the image you are running in your endpoint supports batches, then you can send batches up to that size.

Are you planning on using one of our official images? They should all support batch inputs, but it'd help to know which one.

@mklissa
Copy link
Author

mklissa commented Jun 1, 2018

I am actually using the MxNet Cifar10 example from this repo: https://github.com/awslabs/amazon-sagemaker-examples (exact link: https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/mxnet_gluon_cifar10 ) Maybe I should actually only raise this issue on that repo. I run the code as is, but when the model is deployed I try to predict all the images from "image_data" variable but I only get "8.0" as output. Here is my only change to the code:

image_data=np.array(image_data)
image_data=image_data.reshape(10,3,32,32)
predictor.predict(image_data)

8.0

@yangaws
Copy link
Contributor

yangaws commented Jun 4, 2018

Hi @mklissa ,

The example notebook you refer to defines the transform_fn funtion. (https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/mxnet_gluon_cifar10/cifar10.py#L169) So the process of prediction will be exactly the same as what defines there. From that function I could see it always gets one prediction that returned in the response_body. So if you want multiple predictions to be returned, you could modify this transform_fn to do that.

There seems lack of explanation for this transform_fn in our documentation. The current documentation recommends users to define input_fn, predict_fn and output_fn to control the prediction logic. (https://github.com/aws/sagemaker-python-sdk#model-serving)
If you provide input_fn, predict_fn and output_fn yourself, you don't need to provide a transform_fn and could assume the default transform_fn will just execute input_fn, predict_fn and output_fn in order.
(https://github.com/aws/sagemaker-mxnet-containers/blob/ab0495f7e2f0a7df08b149058fa49b1b859135e6/src/mxnet_container/serve/transformer.py#L129)

For your case, just updating current transform_fn would be a quick solution. But we are still in design process that whether this should be encouraged in the future. I will mark this issue as a 'doc update'. Best practices on this should be recorded in future doc.

Thanks for using sagemaker! If you still have problems, feel free to respond here.

apacker pushed a commit to apacker/sagemaker-python-sdk that referenced this issue Nov 15, 2018
Fixed: Moved to previous version of r-essentials.  Old version broke …
knakad pushed a commit to knakad/sagemaker-python-sdk that referenced this issue Nov 27, 2019
* 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
knakad pushed a commit to knakad/sagemaker-python-sdk that referenced this issue Dec 4, 2019
* 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
knakad pushed a commit that referenced this issue Dec 4, 2019
* 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
@laurenyu
Copy link
Contributor

laurenyu commented May 21, 2020

our MXNet documentation now includes transform_fn: https://sagemaker.readthedocs.io/en/stable/using_mxnet.html#use-transform-fn. (at this time, it is the only one of our frameworks that supports transform_fn)

@aninoy
Copy link

aninoy commented Jun 25, 2020

I'm facing this same problem after migrating my sagemaker keras model from file mode to script mode. Invoking the endpoint with multidimensional array with multiple inputs still only returns a single prediction. Can someone help with what I'm missing here?

@laurenyu
Copy link
Contributor

@aninoy can you open a new issue? (it'll help with our internal tracking)

@aninoy
Copy link

aninoy commented Jun 25, 2020

@laurenyu I actually got it to work by serializing to jsonlines so this is not a bug or issue per se. I was just confused why the default json serialization with say 5 input samples only returns the prediction result for the first input.

@laurenyu
Copy link
Contributor

@aninoy I believe the original expectation was that using an endpoint would be for one input at a time and using batch transform would be for multiple inputs. if you want, you can open an issue over in https://github.com/aws/sagemaker-mxnet-inference-toolkit/issues. if you have any interest in perhaps contributing a change, the relevant code starts at https://github.com/aws/sagemaker-mxnet-inference-toolkit/blob/master/src/sagemaker_mxnet_serving_container/default_inference_handler.py#L148-L149

@aninoy
Copy link

aninoy commented Jun 26, 2020

@laurenyu thanks for the clarification. I'm actually trying to do this for a keras tensorflow model in script mode. If you could point me to the right code for that, I'd be happy see if a change request would make sense.

@laurenyu
Copy link
Contributor

@aninoy for TFS, I believe the relevant code starts here: https://github.com/aws/sagemaker-tensorflow-serving-container/blob/master/docker/build_artifacts/sagemaker/tensorflow-serving.js#L137-L147

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants