AI EasyMaker SDK for Python.
Project description
NHN AI EasyMaker SDK
# Initialize EasyMaker SDK
import easymaker
easymaker.init(
appkey='EASYMAKER_APPKEY',
region='kr1',
secret_key='EASYMAKER_SECRET_KEY',
)
# NHN Cloud ObjectStorage upload/download
easymaker.download(
easymaker_obs_uri='obs://api-storage.cloud.toast.com/v1/AUTH_59ed815ebc6b4391802d4848329cebe7/SDK/sample/source_dir',
download_dir_path='./source_dir2',
username='dl_easymaker_alpha@nhn.com',
password='easymaker!@#123'
)
easymaker.upload(
easymaker_obs_uri='obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{upload_path}',
src_dir_path='./local_dir',
username='easymaker@nhn.com',
password='nhn_object_storage_api_password'
)
# Create Experiment
experiment_id = easymaker.Experiment().create(
experiment_name='experiment_name',
experiment_description='experiment_description',
# wait=False
)
# Create Training
training_id = easymaker.Training().run(
experiment_id=experiment_id,
training_name='training_name',
training_description='training_description',
train_image_name='Ubuntu 18.04 CPU TensorFlow Training',
train_instance_name='m2.c4m8',
train_instance_count=1,
data_storage_size=300, # minimum size : 300G
source_dir_uri='obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{soucre_download_path}',
entry_point='training_start.py',
hyperparameter_list=[
{
"hyperparameterKey": "epochs",
"hyperparameterValue": "10",
},
{
"hyperparameterKey": "batch-size",
"hyperparameterValue": "30",
}
],
timeout_hours=100, # 1~720
model_upload_uri='obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{model_upload_path}',
check_point_upload_uri='obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{checkpoint_upload_path}',
dataset_list=[
{
"datasetName": "train",
"dataUri": "obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{train_data_download_path}"
},
{
"datasetName": "test",
"dataUri": "obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{test_data_download_path}"
}
],
tag_list=[ # maximum 10
{
"tagKey": "tag_num",
"tagValue": "test_tag_1",
},
{
"tagKey": "tag2",
"tagValue": "test_tag_2",
}
],
use_log=True,
# wait=False
)
# Create Model
model_id = easymaker.Model().create(
training_id=training_id,
model_name='model_name',
model_description='model_description',
)
model_id2 = easymaker.Model().create_by_model_uri(
framework_code=easymaker.TENSORFLOW,
model_uri='obs://api-storage.cloud.toast.com/v1/AUTH_{tenant_id}/{container_name}/{model_upload_path}',
model_name='model_name',
model_description='model_description',
)
# Create Endpoint
endpoint = easymaker.Endpoint()
endpoint_id = endpoint.create(
model_id=model_id,
endpoint_name='endpoint_name',
endpoint_description='endpoint_description',
endpoint_instance_name='c2.c16m16',
apigw_resource_uri='/api-path',
endpoint_instance_count=1,
use_log=True,
# wait=False,
# autoscaler_enable=True, # default False
# autoscaler_min_node_count=1,
# autoscaler_max_node_count=10,
# autoscaler_scale_down_enable=True,
# autoscaler_scale_down_util_threshold=50,
# autoscaler_scale_down_unneeded_time=10,
# autoscaler_scale_down_delay_after_add=10,
)
# Create Endpoint Stage
stage_id = endpoint.create_stage(
model_id=model_id,
stage_name='stage01',
stage_description='test endpoint',
endpoint_instance_name='c2.c16m16',
apigw_resource_uri='/test-api',
endpoint_instance_count=1,
# wait=False,
# autoscaler_enable=True, # default False
# autoscaler_min_node_count=1,
# autoscaler_max_node_count=10,
# autoscaler_scale_down_enable=True,
# autoscaler_scale_down_util_threshold=50,
# autoscaler_scale_down_unneeded_time=10,
# autoscaler_scale_down_delay_after_add=10,
)
# Get an endpoint that already exists
endpoint = easymaker.Endpoint(endpoint_id)
# get endpoint list
endpoint_stage_info_list = endpoint.get_endpoint_stage_info_list()
# Inference
endpoint.predict(json={'instances': [[6.8, 2.8, 4.8, 1.4]]})
endpoint.predict(endpoint_stage_info=endpoint_stage_info_list[1], # If endpoint_stage_info is not set, use the default endpoint
json={'instances': [[6.8, 2.8, 4.8, 1.4]]})
# Log (Log & Crash)
easymaker_logger = easymaker.logger(logncrash_appkey='log&crash_product_app_key')
easymaker_logger.send('test log meassage') # Output to stdout & send log to log&crash product
easymaker_logger.send(log_message='log meassage',
log_level='INFO', # default: INFO
project_version='1.0.0', # default: 1.0.0
parameters={'serviceType': 'EasyMakerSample'}) # Add custom parameters
CLI Command
- instance type list :
python -m easymaker -instance --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY
- image list :
python -m easymaker -image --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY
- experiment list :
python -m easymaker -experiment --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY
- training list : 'python -m easymaker -training --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY'
- model list : 'python -m easymaker -model --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY'
- endpoint list : 'python -m easymaker -endpoint --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
easymaker-1.0.5-py3-none-any.whl
(21.6 kB
view hashes)
Close
Hashes for easymaker-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed4e82eb9c5a61c7a91e2674961e8d467967db4c41afc3f3dbc221966e31a039 |
|
MD5 | 3321a5ec8bb33a6888f79e35d7e83772 |
|
BLAKE2b-256 | c2ee6ab1ccb2074875bb281f17326042fac68ace64fcb909e2280d62faaccdd2 |