मैं Amazon Sagemaker (xgboost: eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest') का उपयोग करके एक मॉडल को प्रशिक्षित करने का प्रयास कर रहा हूं। लेकिन प्रशिक्षण कार्य शुरू करने के तुरंत बाद मुझे हमेशा वही त्रुटि संदेश मिलता है:

"ClientError: डेटा पथ में छिपी हुई फ़ाइल मिली! प्रशिक्षण से पहले उसे हटा दें।"

S3 कंसोल दिखाता है कि आउटपुट पथ खाली है (मैंने बिना किसी लाभ के एक नई निर्देशिका बनाने का भी प्रयास किया)। बकेट के लिए वर्जनिंग सक्षम नहीं है।

हैरानी की बात है कि इस त्रुटि संदेश के तहत Google को कुछ भी नहीं मिला।

मैंने इनपुट और आउटपुट को निम्नानुसार कॉन्फ़िगर किया है:

   "InputDataConfig": [
        {
            "ChannelName": "train",
            "DataSource": {
                "S3DataSource": {
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://{}/{}-inputdata/train".format(s3_utils.bucket, LABEL)
                }
            },
            "ContentType": "csv",
            "CompressionType": "None"
        },
        {
            "ChannelName": "validation",
            "DataSource": {
                "S3DataSource": {
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://{}/{}-inputdata/validation".format(s3_utils.bucket, LABEL)
                }
            },
            "ContentType": "csv",
            "CompressionType": "None"
        }
    ],
    "OutputDataConfig": {
        "S3OutputPath": "s3://{}/{}-xgboost-output".format(s3_utils.bucket, LABEL)        },

मैदान

    "RoleArn": role,

भूमिका कहाँ से आती है

    from sagemaker import get_execution_role
    role = get_execution_role()

और है

    arn:aws:iam::<ACCOUNT>:role/service-role/AmazonSageMaker-ExecutionRole-<HIDDEN>

यहाँ एक स्क्रीनशॉट है जो डेटा-पथ दिखा रहा है: डेटा-पथ का S3 डैशबोर्ड दृश्य। दो सीएसवी फाइलें बस हैं। विशेष रूप से, कोई खाली "निर्देशिका" नहीं है जो कि "छिपी हुई फ़ाइल" का अर्थ हो सकता है।

2
nabla 11 जुलाई 2018, 23:06

3 जवाब

सबसे बढ़िया उत्तर

ठीक है, आपके द्वारा S3Uri में सेट किया गया उपसर्ग यहां मायने रखता है। आपके स्क्रीनशॉट के आधार पर मुझे लगता है कि आपकी बाल्टी कुछ इस तरह दिखती है (पेड़ के रूप में):

s3://bucket
└── LABEL-inputdata
    ├── train.csv
    └── validation.csv

उपरोक्त आपके InputDataConfig के आधार पर, SageMaker को xgboost प्रशिक्षण एल्गोरिथम चलाने के लिए इसे फाइल सिस्टम पर फ़ोल्डर्स में डाउनलोड करना होगा। यह चैनल के नाम और आपके द्वारा प्रदान किए गए S3Uri उपसर्ग के आधार पर ऐसा करता है। डाउनलोड करने के लिए फ़ोल्डर/फ़ाइल का नाम निर्धारित करने के लिए उपसर्ग को काट दिया जाता है। तो, आपके उदाहरण में, train चैनल इस प्रकार डाउनलोड हो जाता है:

/opt/ml/input/data/train/.csv

अंत में, xgboost कार्यान्वयन .csv फ़ाइल को एक छिपी हुई फ़ाइल के रूप में देखता है और इसके बारे में शिकायत करता है।

इसे काम पर लाने के लिए आप अपने डेटा को s3 में इस तरह पुनर्व्यवस्थित कर सकते हैं ...

s3:bucket
└── LABEL-inputdata
    ├── train
    │   └── data.csv
    └── validation
        └── data.csv

.. और अपना इनपुट डेटा कॉन्फ़िगरेशन यहां बदलें:

   "InputDataConfig": [
        {
            "ChannelName": "train",
            "DataSource": {
                "S3DataSource": {
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://{}/{}-inputdata/train/".format(s3_utils.bucket, LABEL)
                }
            },
            "ContentType": "csv",
            "CompressionType": "None"
        },
        {
            "ChannelName": "validation",
            "DataSource": {
                "S3DataSource": {
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://{}/{}-inputdata/validation/".format(s3_utils.bucket, LABEL)
                }
            },
            "ContentType": "csv",
            "CompressionType": "None"
        }
5
ishaaq 12 जुलाई 2018, 20:48

मुझे लगता है कि मैंने इसे पहले देखा है... क्या आप कृपया S3 प्रशिक्षण और सत्यापन स्थानों की जांच कर सकते हैं? प्रशिक्षण और सत्यापन फाइलों के अलावा वहां कुछ भी नहीं होना चाहिए।

0
Julien Simon 12 जुलाई 2018, 07:56
मेरे पास खाली "निर्देशिका" भी थी (ऐसा नहीं है कि एस 3 के लिए निर्देशिका जैसी कोई चीज है) जो "छिपी हुई फ़ाइल" हो सकती है। लेकिन ऐसा नहीं था। मैंने डेटा पथ की सामग्री दिखाते हुए S3 डैशबोर्ड का एक स्क्रीनशॉट जोड़ा। दो डेटा फ़ाइलें सब कुछ है। मुझे अभी भी वही त्रुटि संदेश मिलता है।
 – 
nabla
12 जुलाई 2018, 20:17

मेरी भी यही समस्या थी और कोई छिपी हुई फ़ाइल नहीं थी।

मैंने प्रशिक्षण के कैस्केड का इस्तेमाल किया। PCA और फिर मैंने XGBoost में PCA से परिणाम का उपयोग किया। मैंने PCA के लिए recordio-protobuf प्रारूप का उपयोग किया और फ़ाइल एक्सटेंशन rio को चुना। पहला प्रशिक्षण (पीसीए) अच्छी तरह से उत्तीर्ण हुआ और दूसरा (एक्सजीबीओस्ट) असफल रहा। फ़ाइल को हटाने के बाद train.rio दूसरा प्रशिक्षण अच्छा रहा। फिर मैंने train.rio फ़ाइल का नाम बदलकर train.bin करने का निर्णय लिया और अब सब कुछ ठीक चल रहा है।

मेरे लिए यह थोड़ा अजीब व्यवहार है। एक्सटेंशन वाली फ़ाइल rio एक *छिपी हुई फ़ाइल** है...

0
Yurii 9 जिंदा 2019, 13:25