import boto3
import time
# create CloudWatch client
cloudwatch = boto3.client('cloudwatch')
# send classification accuracy metric to CloudWatch
def send_metric_to_cloudwatch(metric_name, value):
try:
response = cloudwatch.put_metric_data(
Namespace='CUSTOM_CLASSIFICATION_METRICS',
MetricData=[
{
'MetricName': metric_name,
'Dimensions': [
{
'Name': 'UNIQUE_METRIC_ID',
'Value': 'CLASSIFICATION_ACCURACY'
},
],
'Value': value,
'Unit': 'Percent'
},
]
)
print(f"Successfully sent {metric_name} metric to CloudWatch.")
except Exception as e:
print(f"Failed to send {metric_name} metric to CloudWatch. Exception encountered: {e}")
# example classification accuracy metric calculation
def calculate_classification_accuracy(y_true, y_pred):
correct_classifications = 0
total_classifications = len(y_true)
for i, true_class in enumerate(y_true):
predicted_class = y_pred[i]
if predicted_class == true_class:
correct_classifications += 1
return (correct_classifications / total_classifications) * 100
# an example epoch loop
for epoch in range(num_epochs):
# training code here
train_accuracy = calculate_classification_accuracy(y_true_train, y_pred_train)
# validation code here
val_accuracy = calculate_classification_accuracy(y_true_val, y_pred_val)
# send metrics to CloudWatch
send_metric_to_cloudwatch('Training Accuracy', train_accuracy)
send_metric_to_cloudwatch('Validation Accuracy', val_accuracy)
# sleep for 10 seconds to avoid API limit exceeding
time.sleep(10)
在“指标”下打开CloudWatch控制台。
单击右上角的“创建指标”。
选择“自定义命名空间”。
输入唯一的与指标相关联的命名空间名称,然后选择“创建命名空间”。
然后,选择创建指标。
输入有意义的度量名称,并选择云度量单位。
在“维度”下,单击“添加维度”。
输入UNIQUE_METRIC_ID和