Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
actual_train_args = sagemaker_session.method_calls[0][2]
assert actual_train_args == expected_train_args
model = tf.create_model()
environment = {
"Environment": {
"SAGEMAKER_SUBMIT_DIRECTORY": "s3://mybucket/sagemaker-tensorflow-2017-11-06-14:14:15.673/source/sourcedir.tar.gz", # noqa: E501
"SAGEMAKER_PROGRAM": "dummy_script.py",
"SAGEMAKER_REQUIREMENTS": "dummy_requirements.txt",
"SAGEMAKER_ENABLE_CLOUDWATCH_METRICS": "false",
"SAGEMAKER_REGION": "us-west-2",
"SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
},
"Image": create_image_uri("us-west-2", "tensorflow", INSTANCE_TYPE, tf_version, "py2"),
"ModelDataUrl": "s3://m/m.tar.gz",
}
assert environment == model.prepare_container_def(INSTANCE_TYPE)
assert "cpu" in model.prepare_container_def(INSTANCE_TYPE)["Image"]
predictor = tf.deploy(1, INSTANCE_TYPE)
assert isinstance(predictor, TensorFlowPredictor)
def test_create_image_uri_bad_python():
with pytest.raises(ValueError):
fw_utils.create_image_uri(MOCK_REGION, MOCK_FRAMEWORK, "ml.c4.large", "1.0rc", "py0")
"us-iso-east-1", "tensorflow-scriptmode", "ml.m4.xlarge", "1.13.1", "py3"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.13.1-cpu-py3"
)
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-scriptmode", "ml.p3.2xlarge", "1.14", "py2"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.14-gpu-py2"
)
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-serving", "ml.m4.xlarge", "1.13.0"
)
assert (
image_uri == "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-inference:1.13.0-cpu"
)
image_uri = fw_utils.create_image_uri("us-iso-east-1", "mxnet", "ml.p3.2xlarge", "1.4.1", "py3")
assert image_uri == "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/mxnet-training:1.4.1-gpu-py3"
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "mxnet-serving", "ml.c4.2xlarge", "1.4.1", "py3"
)
assert (
image_uri == "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/mxnet-inference:1.4.1-cpu-py3"
)
def test_create_image_uri_bah():
image_uri = fw_utils.create_image_uri(
MOCK_BAH_REGION, MOCK_FRAMEWORK, "ml.p3.2xlarge", "1.0rc", "py3"
)
assert {
image_uri == "217643126080.dkr.ecr.me-south-1.amazonaws.com/sagemaker-mlfw:1.0rc-gpu-py3"
}
def test_optimized_family():
image_uri = fw_utils.create_image_uri(
MOCK_REGION,
MOCK_FRAMEWORK,
"ml.p3.2xlarge",
"1.0.0",
"py3",
optimized_families=["c5", "p3"],
)
assert (
image_uri == "520713654638.dkr.ecr.mars-south-3.amazonaws.com/sagemaker-mlfw:1.0.0-p3-py3"
)
def test_create_image_uri_merged_gov_regions():
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-scriptmode", "ml.m4.xlarge", "1.13.1", "py3"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.13.1-cpu-py3"
)
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-scriptmode", "ml.p3.2xlarge", "1.14", "py2"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.14-gpu-py2"
)
image_uri = fw_utils.create_image_uri(
def test_create_image_uri_merged_gov_regions():
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-scriptmode", "ml.m4.xlarge", "1.13.1", "py3"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.13.1-cpu-py3"
)
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-scriptmode", "ml.p3.2xlarge", "1.14", "py2"
)
assert (
image_uri
== "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-training:1.14-gpu-py2"
)
image_uri = fw_utils.create_image_uri(
"us-iso-east-1", "tensorflow-serving", "ml.m4.xlarge", "1.13.0"
)
assert (
image_uri == "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/tensorflow-inference:1.13.0-cpu"
)
image_uri = fw_utils.create_image_uri("us-iso-east-1", "mxnet", "ml.p3.2xlarge", "1.4.1", "py3")
assert image_uri == "886529160074.dkr.ecr.us-iso-east-1.c2s.ic.gov/mxnet-training:1.4.1-gpu-py3"
operations for Airflow to perform. (Upload `source_dir` )
Args:
model (sagemaker.model.FrameworkModel): The framework model
instance_type (str): The EC2 instance type to deploy this Model to. For
example, 'ml.p2.xlarge'.
s3_operations (dict): The dict to specify S3 operations (upload
`source_dir` ).
Returns:
dict: The container information of this framework model.
"""
deploy_image = model.image
if not deploy_image:
region_name = model.sagemaker_session.boto_session.region_name
deploy_image = fw_utils.create_image_uri(
region_name,
model.__framework_name__,
instance_type,
model.framework_version,
model.py_version,
)
base_name = utils.base_name_from_image(deploy_image)
model.name = model.name or utils.name_from_base(base_name)
bucket = model.bucket or model.sagemaker_session._default_bucket
script = os.path.basename(model.entry_point)
key = "{}/source/sourcedir.tar.gz".format(model.name)
if model.source_dir and model.source_dir.lower().startswith("s3://"):
code_dir = model.source_dir
def _neo_image(self, region, target_instance_type, framework, framework_version):
"""
Args:
region:
target_instance_type:
framework:
framework_version:
"""
return fw_utils.create_image_uri(
region,
"neo-" + framework.lower(),
target_instance_type.replace("_", "."),
framework_version,
py_version="py3",
account=self._neo_image_account(region),
)
def train_image(self):
"""Return the Docker image to use for training.
The :meth:`~sagemaker.estimator.EstimatorBase.fit` method, which does
the model training, calls this method to find the image to use for model
training.
Returns:
str: The URI of the Docker image.
"""
if self.image_name:
return self.image_name
return create_image_uri(
self.sagemaker_session.boto_region_name,
self.__framework_name__,
self.train_instance_type,
self.framework_version, # pylint: disable=no-member
py_version=self.py_version, # pylint: disable=no-member
)