অ্যামাজন ই সি 2 তে র্যান্ডম অরণ্য ত্রুটি: 5.4 গিগাবাইট আকারের ভেক্টর বরাদ্দ করতে পারে না


9

আমি randomForest()প্রায় 20 পূর্বাভাসকারী এবং 600 কে সারি সহ 1000 টি গাছ এবং ডেটা ফ্রেম ব্যবহার করে আর এ এলোমেলো বন মডেলগুলি প্রশিক্ষণ দিচ্ছি । আমার ল্যাপটপে সবকিছু ঠিকঠাক কাজ করে, তবে যখন আমি একই জিনিস চালানোর জন্য ই্যাক 2 তে অ্যামাজনে চলে যাই তখন আমি ত্রুটি পেয়েছি:

Error: cannot allocate vector of size 5.4 Gb
Execution halted

আমি c3.4xlargeউদাহরণের ধরনটি ব্যবহার করছি তাই এটি বেশ সুন্দর। এটির উদাহরণস্বরূপ এটি চালানোর জন্য কি কেউ এই বিষয়ে কাজ করতে পারে? আমি মেমরি সূক্ষ্মতাগুলি জানতে চাই যা কেবল আমার ল্যাপটপে নয় কেবল ইএস 2 উদাহরণে এই সমস্যার কারণ হয়ে থাকে (ওএস এক্স 10.9.5 প্রসেসর 2.7 গিগাহার্টজ ইন্টেল কোর আই 7; মেমরি 16 জিবি 1600 মেগাহার্জ ডিডিআর 3)

ধন্যবাদ।

উত্তর:


5

এখানে কিছু পরামর্শ (নিজের ঝুঁকিতে ব্যবহার করুন!):

যদি উপরে উল্লিখিত সরল পদক্ষেপগুলি সহায়তা না করে বা আপনি একটি একক মেশিনে বা একাধিক মেশিনে প্রক্রিয়াটির সমান্তরাল করার ক্ষমতা সহ আরও স্কেলিবিলিটি এবং / বা কার্য সম্পাদন করতে চান , আর প্যাকেজ: http: // cran ব্যবহার বিবেচনা করুন । r-project.org/web/packages/bigrf । এছাড়াও এই আলোচনাটি দেখুন: https://stackoverflow.com/q/1358003/2872891bigrf


2

অন্যান্য ধারণাগুলির সাথে অতিরিক্ত: আপনি অ্যামাজনের উদাহরণে কী চালাতে পারবেন তা নির্ধারণ না করা পর্যন্ত আপনার ডেটা হ্রাস করুন । যদি এটি 100k সারিগুলি না করতে পারে তবে কিছু খুব ভুল, যদি এটি 590k সারিগুলিতে ব্যর্থ হয় তবে এর প্রান্তিক।

সি 3.4 এক্স্লারজ ইনস্ট্যান্সের র‌্যাম 30 জিবি রয়েছে, সুতরাং হ্যাঁ এটি যথেষ্ট হওয়া উচিত।


2

ভেক্টরের আসল স্মৃতির মতো বৈশিষ্ট্যগুলি বাদ দিয়ে আপনি যে সঠিক ত্রুটিটি দেখছেন তা কেবল গুগলের পক্ষে সর্বদা সহায়ক। আমার জন্য, প্রথম হিটটি একটি আকর্ষণীয় ডকুমেন্টেশন ছিল " আর: স্মৃতি সীমাগুলির আর ", যেখানে "ইউনিক্স" এর অধীনে একজন পড়তে পারে:

ঠিকানা-স্থান সীমাটি সিস্টেম-নির্দিষ্ট: 32-বিট ওএসএস 4Gb এর বেশি সীমাবদ্ধতা আরোপ করে না: এটি প্রায়শই 3 জিবি হয়। -৪-বিট ওএসে ৩২-বিট এক্সিকিউটেবল চালনার ক্ষেত্রেও একই সীমা থাকবে: -৪-বিট এক্সিকিউটেবলের একটি অত্যাবশ্যক সিস্টেম-নির্দিষ্ট সীমা থাকবে (যেমন, x86_64 সিপাসে লিনাক্সের জন্য 128Tb))

একটি একক প্রক্রিয়াতে উপলব্ধ সংস্থানগুলিতে সীমাবদ্ধতা আরোপ করতে কীভাবে সীমাবদ্ধতা বা ulimit ইত্যাদি কমান্ডগুলিতে ওএস / শেলের সহায়তা দেখুন। উদাহরণস্বরূপ ব্যাশ ব্যবহারকারী ব্যবহার করতে পারে

ulimit -t 600 -v 4000000

যদিও কোনও সিএসএস ব্যবহারকারী ব্যবহার করতে পারে

limit cputime 10m limit vmemoryuse 4096m

কোনও প্রক্রিয়াটি 10 ​​মিনিটের সিপিইউ সময় এবং (প্রায়) 4 জিবি ভার্চুয়াল মেমরির মধ্যে সীমাবদ্ধ করতে। (র‍্যামটি ব্যবহারের জন্য সেট করার জন্য অন্যান্য বিকল্প রয়েছে তবে তারা সাধারণত সম্মানিত হয় না))

সুতরাং, আপনার চেক করা উচিত

  1. আপনি আপনার ইসি 2 উদাহরণে কী ধরণের ওএস চালাচ্ছেন
  2. আপনি সেই ওএসে কোন ধরণের আর বিল্ড চালাচ্ছেন এবং আপনি একটি 64 বিট সংস্করণ চালাচ্ছেন তা নিশ্চিত করুন
  3. যদি উভয় ইতিমধ্যে 64 বিট হয়, তবে ulimitমেমরিটি উদাহরণস্বরূপ 8 জিবি সেট করতে ব্যবহার করুন :ulimit -v 8000000
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.