Linear Learner Binary Classification - qyjohn/AWS_Tutorials GitHub Wiki
Work in progress.
Setting up input and output
import boto3
import sagemaker
bucket = 'bucket-name'
prefix = 'prefix-name'
s3_training_data = 's3://{}/{}/training/training.csv'.format(bucket, prefix)
s3_validate_data = 's3://{}/{}/validate/validate.csv'.format(bucket, prefix)
output_location = 's3://{}/{}/model-output-3'.format(bucket, prefix)
training_input_config = sagemaker.session.s3_input(s3_data=s3_training_data,content_type="text/csv")
validate_input_config = sagemaker.session.s3_input(s3_data=s3_validate_data,content_type="text/csv")
Linear Learner Image
sess = sagemaker.Session()
from sagemaker import get_execution_role
role = get_execution_role()
from sagemaker.amazon.amazon_estimator import get_image_uri
container = get_image_uri(boto3.Session().region_name, 'linear-learner')
Training with training set and validate set
linear = sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path=output_location,
sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=8,
predictor_type='binary_classifier',
binary_classifier_model_selection_criteria='recall_at_target_precision',
target_precision=0.95,
mini_batch_size=200)
linear.fit({'train': training_input_config, 'validation': validate_input_config})
Deploy an endpoint
linear_predictor = linear.deploy(initial_instance_count=1,
instance_type='ml.m4.xlarge')
Prepare for inference
from sagemaker.predictor import csv_serializer, json_deserializer
linear_predictor.content_type = 'text/csv'
linear_predictor.serializer = csv_serializer
linear_predictor.deserializer = json_deserializer
Actual inference
result = linear_predictor.predict([50,50,12,40,33,36,88,82](/qyjohn/AWS_Tutorials/wiki/50,50,12,40,33,36,88,82))
print(result)