Sagemaker 培训工作产生不同的结果然后在本地运行工作

问题描述 投票:0回答:1

这是一个奇怪的错误。我有一个

src.py
文件,基本上运行计算机视觉模型的训练作业。我在本地运行
src.py
文件得到以下结果:

                    precision    recall  f1-score   support

  normal (Class 0)       0.99      0.98      0.98       393
blockage (Class 1)       0.96      0.98      0.97       205

          accuracy                           0.98       598
         macro avg       0.97      0.98      0.97       598
      weighted avg       0.98      0.98      0.98       598

这些结果在 Sagemaker 训练作业上运行

                    precision    recall  f1-score   support
  normal (Class 0)       0.66      1.00      0.79       393
blockage (Class 1)       0.00      0.00      0.00       205

         accuracy                            0.61       598
         macro avg       0.33      0.50      0.40       598
      weighted avg       0.43      0.66      0.52       598

本地运行文件与 sagemaker 的唯一区别是我在 sagemaker 上收到以下错误或警告消息:

 UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.

如果有人遇到类似的问题或有任何建议,我将不胜感激。如果需要的话,很乐意在这篇文章中添加更多代码。

python amazon-web-services machine-learning amazon-sagemaker
1个回答
0
投票

此问题是由于某些tensorflow版本集以及opencv-python包引起的。我解决了这个定义张量流估计器的问题

keras_estimator = TensorFlow(
    entry_point=sm_script,
    role=workflow_execution_role,
    instance_count=1,
    instance_type=training_instance,
    dependencies=[sm_script, 'requirements.txt'],
    sagemaker_session=sm_sess,
    framework_version="2.11",
    base_job_name='{}-training'.format(base_name),
    py_version="py39",
    distribution={"parameter_server": {"enabled": True}},
    metric_definitions=[
        {'Name': 'validation_accuracy', 'Regex': "Belt Vision accuracy = ([0-9.]+)"},
        {'Name': 'validation_f1', 'Regex': "Belt Vision f1 = ([0-9.]+)"}]
)

这确保我使用 python 3.9 (py_version="py39") 和tensorflow框架版本(framework_version="2.11")。这是我用来解决问题的requirements.txt:

sagemaker==2.173.0
scikit-learn==1.3.0
awswrangler==3.2.1
boto3==1.28.1
numpy==1.24.3
opencv-python==4.7.0.72
© www.soinside.com 2019 - 2024. All rights reserved.