টেনসরফ্লো সম্পর্কে উপলব্ধি করার জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল, বেশিরভাগ অংশের জন্য মূলটি পাইথনে লেখা হয়নি : এটি অত্যন্ত-অনুকূলিত সি ++ এবং সিউডিএ (প্রোগ্রামিং জিপিইউগুলির জন্য এনভিডিয়া ভাষা) এর সংমিশ্রণে রচিত। এর বেশিরভাগ ক্ষেত্রে ঘটে যায়, ইগেন (একটি উচ্চ-পারফরম্যান্স সি ++ এবং সিউডিএ সংখ্যাসূচক গ্রন্থাগার) এবং এনভিডিয়া সিউডিএনএন ( এনভিডিয়া জিপিইউগুলির জন্য একটি অনুকূলিত ডিএনএন গ্রন্থাগার , যেমন কনভোলিউশনগুলির জন্য ) ব্যবহার করে।
টেনসরফ্লো এর মডেল হ'ল প্রোগ্রামার মডেলটি প্রকাশ করতে "কিছু ভাষা" (সম্ভবত পাইথন!) ব্যবহার করে। টেনসরফ্লো কনস্ট্রাক্টসগুলিতে লিখিত এই মডেল যেমন:
h1 = tf.nn.relu(tf.matmul(l1, W1) + b1)
h2 = ...
পাইথন চালিত হলে আসলে মৃত্যুদন্ড কার্যকর করা হয় না। পরিবর্তে, আসলে যা তৈরি হয়েছে তা হ'ল একটি ডেটাফ্লো গ্রাফ যা নির্দিষ্ট ইনপুট নিতে, নির্দিষ্ট ক্রিয়াকলাপ প্রয়োগ করতে, ফলাফলকে অন্যান্য ক্রিয়াকলাপের ইনপুট হিসাবে সরবরাহ করে এবং এই জাতীয় কথা বলে। এই মডেলটি দ্রুত সি ++ কোড দ্বারা কার্যকর করা হয় এবং বেশিরভাগ অংশের জন্য, অপারেশনের মধ্যে যাওয়া ডেটা পাইথন কোডে কখনও অনুলিপি করা হয় না ।
তারপরে প্রোগ্রামার নোডগুলিতে টান দিয়ে এই মডেলটির সম্পাদন "চালিত করে" - প্রশিক্ষণের জন্য, সাধারণত পাইথনে এবং পরিবেশন করার জন্য, কখনও কখনও পাইথন এবং কখনও কখনও কাঁচা সি ++ এ:
sess.run(eval_results)
এই একটি পাইথন (বা সি ++ ফাংশন কল) সি ++ তে একটি প্রক্রিয়াকরণ কল ব্যবহার করে বা আরপিসি বিতরণকৃত সংস্করণের জন্য সি ++ টেনসরফ্লো সার্ভারে এটি চালানোর জন্য বলার জন্য, এবং তারপরে ফলাফলগুলি অনুলিপি করে।
সুতরাং, সেই কথার সাথে, আসুন প্রশ্নটির পুনরায় বাক্যটি তৈরি করুন: মডেলগুলির প্রশিক্ষণ প্রকাশ এবং নিয়ন্ত্রণের জন্য টেনসরফ্লো কেন পাইথনকে প্রথম স্বীকৃত ভাষা হিসাবে বেছে নিয়েছিল?
এর উত্তরটি সহজ: পাইথন সম্ভবত বিপুল পরিমাণে ডেটা বিজ্ঞানী এবং মেশিন লার্নিং বিশেষজ্ঞের পক্ষে সবচেয়ে আরামদায়ক ভাষা যা একটি সি ++ ব্যাকএন্ডকে একীভূত করতে এবং নিয়ন্ত্রণ করতেও সহজ, পাশাপাশি সাধারণ এবং অভ্যন্তরীণ এবং বাইরের উভয় ক্ষেত্রেই বহুল ব্যবহৃত গুগল, এবং মুক্ত উত্স। টেনসরফ্লো-এর বেসিক মডেলটি দিয়ে, পাইথনের অভিনয় এতটা গুরুত্বপূর্ণ নয়, এটি ছিল প্রাকৃতিক ফিট। এটি একটি বিশাল প্লাস যে NumPy এটা সহজ পাইথন মধ্যে প্রাক প্রক্রিয়াকরণ করতে তোলে - এছাড়াও উচ্চ কার্যকারিতা সাথে - সত্যিকারের CPU- র ভারী জিনিসের জন্য TensorFlow করার জন্য এটা খাওয়ানোর আগে।
মডেলটি প্রকাশের ক্ষেত্রে এটি ব্যবহার করার সময় ব্যবহৃত হয় না এমন ভাব প্রকাশের ক্ষেত্রেও অনেকগুলি জটিলতা রয়েছে - আকারের অনুমিতি (উদাহরণস্বরূপ, আপনি যদি ম্যাটমুল (এ, বি) করেন তবে ফলাফলের ডেটার আকারটি কী?) এবং স্বয়ংক্রিয় গ্রেডিয়েন্ট গণনা। পাইথনের সেই ব্যক্তিকে প্রকাশ করতে পেরে ভাল লাগল, যদিও আমি মনে করি দীর্ঘমেয়াদে তারা সম্ভবত অন্যান্য ভাষা যুক্ত করার জন্য সি ++ ব্যাকএন্ডে চলে যাবে।
(আশা, অবশ্যই, ভবিষ্যতে মডেলগুলি তৈরি এবং প্রকাশের জন্য অন্যান্য ভাষাগুলিকে সমর্থন করা several এটি বেশ কয়েকটি অন্যান্য ভাষা ব্যবহার করে অনুমান চালানো ইতিমধ্যে সোজা - সি ++ এখন কাজ করে, ফেসবুকের কেউ গো বাঁধাই করেছে যে আমরা এখন পর্যালোচনা করছি ইত্যাদি)