in src/graph_notebook/notebooks/03-Neptune-ML/03-Sample-Applications/04-Telco-Networks/neptune_ml_utils.py [0:0]
def setup_pretrained_endpoints(self, s3_bucket_uri: str,
setup_node_classification: bool, setup_node_regression: bool,
setup_link_prediction: bool, setup_edge_classification: bool,
setup_edge_regression: bool):
print('Beginning endpoint creation', end='\r')
if setup_node_classification:
# copy model
self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/node-classification/model.tar.gz',
self.PRETRAINED_MODEL['node_classification'])
# create model
classification_output = self.__create_model(
'classifi', f'{s3_bucket_uri}/pretrained-models/node-classification/model.tar.gz')
if setup_node_regression:
# copy model
self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/node-regression/model.tar.gz',
self.PRETRAINED_MODEL['node_regression'])
# create model
regression_output = self.__create_model(
'regressi', f'{s3_bucket_uri}/pretrained-models/node-regression/model.tar.gz')
if setup_link_prediction:
# copy model
self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/link-prediction/model.tar.gz',
self.PRETRAINED_MODEL['link_prediction'])
# create model
prediction_output = self.__create_model(
'linkpred', f'{s3_bucket_uri}/pretrained-models/link-prediction/model.tar.gz')
if setup_edge_classification:
# copy model
self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/edge-classification/model.tar.gz',
self.PRETRAINED_MODEL['edge_classification'])
# create model
edgeclass_output = self.__create_model(
'edgeclass', f'{s3_bucket_uri}/pretrained-models/edge-classification/model.tar.gz')
if setup_edge_regression:
# copy model
self.__copy_s3(f'{s3_bucket_uri}/pretrained-models/edge-regression/model.tar.gz',
self.PRETRAINED_MODEL['edge_regression'])
# create model
edgereg_output = self.__create_model(
'edgereg', f'{s3_bucket_uri}/pretrained-models/edge-regression/model.tar.gz')
sleep(UPDATE_DELAY_SECONDS)
classification_running = setup_node_classification
regression_running = setup_node_regression
prediction_running = setup_link_prediction
edgeclass_running = setup_edge_classification
edgereg_running = setup_edge_regression
classification_endpoint_name = ""
regression_endpoint_name = ""
prediction_endpoint_name = ""
edge_classification_endpoint_name = ""
edge_regression_endpoint_name = ""
sucessful = False
sm = boto3.client("sagemaker")
while classification_running or regression_running or prediction_running or edgeclass_running or edgereg_running:
if classification_running:
response = sm.describe_endpoint(
EndpointName=classification_output
)
if response['EndpointStatus'] in ['InService', 'Failed']:
if response['EndpointStatus'] == 'InService':
classification_endpoint_name = response
classification_running = False
if regression_running:
response = sm.describe_endpoint(
EndpointName=regression_output
)
if response['EndpointStatus'] in ['InService', 'Failed']:
if response['EndpointStatus'] == 'InService':
regression_endpoint_name = response
regression_running = False
if prediction_running:
response = sm.describe_endpoint(
EndpointName=prediction_output
)
if response['EndpointStatus'] in ['InService', 'Failed']:
if response['EndpointStatus'] == 'InService':
prediction_endpoint_name = response
prediction_running = False
if edgeclass_running:
response = sm.describe_endpoint(
EndpointName=edgeclass_output
)
if response['EndpointStatus'] in ['InService', 'Failed']:
if response['EndpointStatus'] == 'InService':
edge_classification_endpoint_name = response
edgeclass_running = False
if edgereg_running:
response = sm.describe_endpoint(
EndpointName=edgereg_output
)
if response['EndpointStatus'] in ['InService', 'Failed']:
if response['EndpointStatus'] == 'InService':
edge_regression_endpoint_name = response
edgereg_running = False
print(
f'Checking Endpoint Creation Statuses at {datetime.now().strftime("%H:%M:%S")}', end='\r')
sleep(UPDATE_DELAY_SECONDS)
print("")
if classification_endpoint_name:
print(
f"Node Classification Endpoint Name: {classification_endpoint_name['EndpointName']}")
if regression_endpoint_name:
print(
f"Node Regression Endpoint Name: {regression_endpoint_name['EndpointName']}")
if prediction_endpoint_name:
print(
f"Link Prediction Endpoint Name: {prediction_endpoint_name['EndpointName']}")
if edge_classification_endpoint_name:
print(
f"Edge Classification Endpoint Name: {edge_classification_endpoint_name['EndpointName']}")
if edge_regression_endpoint_name:
print(
f"Edge Regression Endpoint Name: {edge_regression_endpoint_name['EndpointName']}")
print('Endpoint creation complete', end='\r')
return {
'node_classification_endpoint_name': classification_endpoint_name,
'node_regression_endpoint_name': regression_endpoint_name,
'prediction_endpoint_name': prediction_endpoint_name,
'edge_classification_endpoint_name': edge_classification_endpoint_name,
'edge_regression_endpoint_name': edge_regression_endpoint_name
}