থিয়ানো বনাম টেনসরফ্লো: ফ্রেমওয়ার্কের একটি দ্রুত তুলনা



থানো বনাম টেনসরফ্লো সম্পর্কিত এই নিবন্ধটি আপনাকে দুটি ফ্রেমওয়ার্কের মধ্যে একটি সংক্ষিপ্ত এবং খাস্তা হিসাবে তুলনা প্রদান করবে এবং আপনাকে উপযুক্ত যে কোনও একটি চয়ন করতে সহায়তা করবে।

এর যুগ গভীর জ্ঞানার্জন এবং চূড়ান্ত হয়। এটি তৈরি করতে যাচ্ছে 2.3 মিলিয়ন ২০২০ সালের মধ্যে চাকরি every প্রতি মাসে নতুন ফ্রেমওয়ার্ক তৈরি হওয়ার সাথে সাথে টেনসরফ্লো এবং থায়ানো কিছু সময়ের জন্য রয়েছে এবং পাশাপাশি বেশ ভাল পরিমাণে জনপ্রিয়তা অর্জন করেছে। সুতরাং এই থানো বনাম টেনসরফ্লো নিবন্ধে, আমি নিম্নলিখিত বিষয়গুলি নিয়ে আলোচনা করব:

থিয়ানো কী?

থিয়ানো এর জন্য একটি গ্রন্থাগার হিসাবে সংজ্ঞায়িত করা যেতে পারে বৈজ্ঞানিক কম্পিউটিং । এটি ইউনিভার্সিটি ডি মন্ট্রিয়াল দ্বারা বিকাশিত হয়েছিল এবং 2007 সাল থেকে এটি উপলব্ধ।





theano-logo

এটি আপনাকে বহুমাত্রিক অ্যারে দক্ষতার সাথে জড়িত গাণিতিক এক্সপ্রেশনগুলি সংজ্ঞায়িত করতে, অনুকূল করতে এবং মূল্যায়ন করতে দেয়। এটি সিপিইউ এবং জিপিইউ উভয়তেই চলতে পারে।



টেনসরফ্লো কী?

টেনসরফ্লো গুগল মস্তিষ্কের একটি মুক্ত ও উত্স সফ্টওয়্যার লাইব্রেরি যা বিভিন্ন কাজ জুড়ে ডেটাফ্লো প্রোগ্রামিংয়ের জন্য।

এটি একটি প্রতীকী গণিত গ্রন্থাগার যা মেশিন লার্নিং অ্যাপ্লিকেশনগুলির মতো ব্যবহৃত হয় ।



থিয়ানো বনাম টেনসরফ্লো

আমরা নিম্নলিখিত মেট্রিকগুলির উপর ভিত্তি করে থানো বনাম টেনসরফ্লো তুলনা করব:

জনপ্রিয়তা:

থিয়ানো টেনসরফ্লো
থিয়ানো পুরানো ফ্রেমওয়ার্ক হচ্ছে যে জনপ্রিয় না মধ্যে , গবেষকরা। এটা একসময় ছিলটেনসরফ্লো হাতের নিচে সবচেয়ে বিখ্যাত ডিপ লার্নিং ফ্রেমওয়ার্ক এবং প্রচুর গবেষণায় ব্যবহৃত হয়।

কার্যকর করার গতি:

থিয়ানো টেনসরফ্লো
টেনসরফ্লোয়ের চেয়ে দ্রুত কাজ সম্পাদন করে। বিশেষত একক জিপিইউ টাস্ক চলমান, থিয়ানোতে দ্রুত।থেনোর তুলনায় টেনসরফ্লোর এক্সিকিউশন গতি ধীরতর, তবে মাল্টি-জিপিইউ কার্যগুলিতে এটি নেতৃত্ব দেয়।

প্রযুক্তি সুবিধা:

থিয়ানো টেনসরফ্লো
এটি বিস্তৃত অপারেশনগুলিকে সমর্থন করে।

থায়ানো নির্ধারণের সময় গ্রেডিয়েন্টটি গণনা করে ত্রুটি.

আপনার এটি হার্ড কোড করতে হয়েছে বলে অপ্টিমাইজারের উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।

টেনসরফ্লো এখনও থিয়েওনের সমতুল্য আসতে হবে।

এটি টেনসরফ্লোর ক্ষেত্রে নয়

এটি বাক্সের বাইরে প্রচুর ভাল অপ্টিমাইজারকে অ্যাক্সেস দেয়। যা কোডিংকে আরও সহজ করে তোলে

সামঞ্জস্যতা:

থিয়ানো টেনসরফ্লো
কেরাস একটি আশ্চর্যজনক ডিপ লার্নিং লাইব্রেরি থিয়েওনের সাথে সামঞ্জস্যপূর্ণ। এটি ভাল ইন্টিগ্রেটেড।

এটিতে নেটিভ উইন্ডোজ সাপোর্ট রয়েছে।

স্কোপ রেজোলিউশন অপারেটর সি ++

এটি লাসাগেনের মতো উচ্চ-স্তরের র‍্যাপারগুলিকেও সমর্থন করে।

তবে টেনসরফ্লো এর ক্ষেত্রে এটি এখনও যথেষ্ট নেই। যাইহোক, v2.0 এ এটি হবে না।

বর্তমানে, টেনসরফ্লোতে এই সমর্থনটির অভাব রয়েছে।

লাসাগেনের জন্য কোনও সমর্থন নেই।

সম্প্রদায় সমর্থন:

থিয়ানো টেনসরফ্লো
টেনসরফ্লোয়ের আগে যেমন এসেছিল তিওনোর আরও বড় সম্প্রদায় সমর্থন।

এটিতে টেনসরফ্লোয়ের চেয়ে বেশি ডকুমেন্টেশন রয়েছে

টেনসরফ্লো এর অনলাইন সম্প্রদায় সমর্থন এর জনপ্রিয়তার সাথে দ্রুত বাড়ছে।

ডকুমেন্টেশন তুলনামূলকভাবে কম।

কোড পাঠযোগ্যতা:

আসুন তাদের কোডের ভিত্তিতে থানো বনাম টেনসরফ্লো তুলনা করুন। এখানে আমি একটি বেসিক উদাহরণ স্ক্রিপ্ট নিচ্ছি যেখানে আমরা কিছু ফোনি ডেটা নেব এবং সেই ডেটার জন্য সেরা ফিটটি শুরু করব যাতে এটি ভবিষ্যতের ডেটা পয়েন্টগুলি পূর্বাভাস দিতে পারে।

থিয়ানো কোড:

টি ইম্পোর্ট করুন থিয়ানো.টেনসরকে টি হিসাবে আমদানি করুন নম্পি # আবার, 100 টি পয়েন্ট তৈরি করুন নিম্পি x_data = numpy.float32 (numpy.random.rand (2, 100)) y_data = numpy.dot ([0.100, 0.200], x_data) + ০.০ # থিয়ানো মডেলটি X = T.matrix () Y = T.vector () b = theano.shared (numpy.random.uniform (-1, 1), নাম = 'বি') ডাব্লু = theano.shared (ইনওটিয়ালেস থিয়ানো মডেল numpy.random.uniform (-1.0, 1.0, (1, 2)), নাম = 'ডাব্লু') y = W.dot (এক্স) + বি # গ্রেডিয়েন্টগুলি গণনা করুন প্রতিটি প্যারামিটার ব্যয়ের জন্য গড়-বর্গক্ষেত্র-ত্রুটি T.mean (T.sqr (y - Y)) গ্রেডিয়েন্ট W = T.grad (ব্যয় = ব্যয়, আর্ট = ডাব্লু) গ্রেডিয়েন্টবি = T.grad (খরচ = ব্যয়, কব্জি = বি) আপডেট = [[ডব্লু, ডব্লিউ - গ্রেডিয়েন্টডব্লিউ * 0.5], [বি, বি - গ্রেডিয়েন্টবি * 0.5]] ট্রেন = থিয়েওনো ফাংশন (ইনপুট = [এক্স, ওয়াই], আউটপুট = ব্যয়, আপডেট = আপডেট, অনুমতি_ ইনপুট_ডাউনকাস্ট = ট্রু) i ইন এক্সরেঞ্জের জন্য (0, 201): ট্রেন (x_data, y_data) মুদ্রণ W.get_value (), b.get_value ()

সমতুল্য টেনসরফ্লো কোড:

tp হিসাবে আমদানি টেনস্রফ্লো এনপি হিসাবে নম্পী আমদানি করুন # NumPy এ 100 ফোনে ডেটা পয়েন্ট তৈরি করুন। x_data = np.float32 (np.random.rand (2, 100)) # এলোমেলো ইনপুট y_data = np.dot ([0.100, 0.200], x_data) + 0.300 # একটি রৈখিক মডেল তৈরি করুন। b = tf. পরিবর্তনশীল (tf.zeros ([1])) ডাব্লু = tf. পরিবর্তনশীল (tf.random_uniform ([1, 2], -1.0, 1.0)) y = tf.matmul (ডাব্লু, এক্স_ডেটা) + বি # স্কোয়ার ত্রুটিগুলি হ্রাস করুন। ক্ষতি = tf.reduce_mean (tf.square (y - y_data)) অপটিমাইজার = tf.train. গ্রেডিয়েন্টডেসেন্টঅপটিমাইজার (0.5) ট্রেন = অপ্টিমাইজার.মিনিমাইজ (ক্ষতি) # পরিবর্তনশীল সূচনা করার জন্য। init = tf.initialize_all_variables () # গ্রাফ চালু করুন sess = tf.Session () sess.run (init) # বিমানটি ফিট করুন। এক্সরেঞ্জে পদক্ষেপের জন্য (0, 201): sess.run (ট্রেন) যদি ধাপ% 20 == 0: মুদ্রণ পদক্ষেপ, sess.run (ডাব্লু), sess.run (খ) # সবচেয়ে ভাল ফিটনেস ডাব্লু: [[0.100 ০.২০০]], বি: [০.০০০]

দৈর্ঘ্য বুদ্ধিমান কোড উভয়ই প্রায় অনুরূপ খুব একটা পার্থক্য নেই। দুটি অভিন্নভাবে উত্পন্ন ইনপুট এবং লক্ষ্য আউটপুট বর্ণনা করে অ্যারে। তবে আমাদের যদি মডেল ইনিশিয়ালাইজেশনটিতে নজর থাকে।

মডেল সূচনা:

# টেনসরফ্লো বি = tf. পরিবর্তনশীল (tf.zeros ([1])) ডাব্লু = tf. পরিবর্তনশীল (tf.random_uniform ([1, 2], -1.0, 1.0)) y = tf.matmul (ডাব্লু, এক্স_ডেটা) + খ # থায়ানো এক্স = টি.ম্যাট্রিক্স () ওয়াই = টি.ভেক্টর () বি = থিয়ানো.সারেড (numpy.random.uniform (-1, 1), নাম = 'বি') ডাব্লু = theano.shared (numpy.random .uniform (-1.0, 1.0, (1, 2)), নাম = 'W') y = W.dot (এক্স) + বি

আপনি এখানে দেখতে পারেন যে টেনসরফ্লো এক্স এবং ওয়াই ভেরিয়েবলগুলির কোনও বিশেষ চিকিত্সার প্রয়োজন হয় না। অন্যদিকে, থেরানোটি ভেরিয়েবলগুলি কিনা তা নিশ্চিত করার জন্য একটি অতিরিক্ত প্রচেষ্টা প্রয়োজন প্রতীকী ইনপুট ফাংশন। বি এবং ডাব্লু এর সংজ্ঞা ব্যাখ্যাযোগ্য এবং এছাড়াও ভাল।

শিক্ষা: অপ্টিমাইজেশন

# টেনস্রোফ্লো হ্রাস = tf.reduce_mean (tf.square (y - y_data)) # (1) অপটিমাইজার = tf.train. গ্রেডিয়েন্টডিসেন্টঅপটিমাইজার (0.5) # (2) ট্রেন = অপ্টিমাইজার (ক্ষয়) # (3) # থিয়ানো ব্যয় = টি.মিয়ান (টি.এসকিউআর (y - ওয়াই)) # (1) গ্রেডিয়েন্ট ডাব্লু = টিস্র্যাড (ব্যয় = ব্যয়, কব্জি = ডাব্লু) # (2) গ্রেডিয়েন্টবি = তস্রাদ (ব্যয় = ব্যয়, আর্ট = খ) # (২) আপডেট = [[ডাব্লু, ডাব্লু - গ্রেডিয়েন্ট ডাব্লু ২.০]], [বি, বি - গ্রেডিয়েন্টবি * ০.০]] # (২) ট্রেন = থিয়ানো.ফানশন (ইনপুট = [এক্স, ওয়াই], আউটপুট = ব্যয়, আপডেট = আপডেট, অনুমতি_পিন্ড_ডাউনকাস্ট = সত্য) # (3)

(1) এর জন্য এমএসই থানো বনাম টেনসরফ্লো প্রায় একই রকম।

(2) জন্য সংজ্ঞা অপ্টিমাইজার এটি টেনসরফ্লোর ক্ষেত্রে যেমন সহজ ও সহজ, তেমনি থিমনো আপনাকে অপটিমাইজারদের ছাড়িয়ে যাওয়ার জন্য কন্ট্রোলের একটি দুর্দান্ত চুক্তি দেয় যদিও এটি বেশ দীর্ঘ এবং যাচাইকরণের প্রচেষ্টাকে বাড়িয়ে তোলে।

(3) এর জন্য প্রশিক্ষণ ফাংশন কোড প্রায় অনুরূপ

প্রশিক্ষণ সংস্থা:

এক্সরেঞ্জে (0, 201) পদক্ষেপের জন্য # টেনসরফ্লো ইনি = tf.initialize_all_variables () sess = tf.Session () sess.run (init): sess.run (ট্রেন) # আইআরজি ইনজিঞ্জে (0, 201): ট্রেন (x_data, y_data) মুদ্রণ W.get_value (), b.get_value ()

প্রশিক্ষণের কোডটি প্রায় আইডেন্টিকাল, তবে সেশন অবজেক্টে গ্রাফ এক্সিকিউশনটি এনক্যাপসুলেটিং হয় কনসেপ্টিউলি ক্লিনার থিয়ানো চেয়ে।

চূড়ান্ত দণ্ড: থায়ানো বনাম টেনসরফ্লো

একটি সমাপ্ত নোটে, এটি উভয় এপিআই এর একটিতে বলা যেতে পারে অনুরূপ ইন্টারফেস । তবে টেনসরফ্লো তুলনামূলকভাবে সহজ ইয়ো ব্যবহার হিসাবে এটি প্রচুর মনিটরিং এবং ডিবাগিং সরঞ্জাম সরবরাহ করে। থিয়ানো এগিয়ে নিয়ে যায় takes ব্যবহারযোগ্যতা এবং গতি , তবে টেনসরফ্লো ডিপ্লোয়মেন্টের জন্য আরও উপযুক্ত। কাগজপত্র বা ডকুমেন্টেশন থিয়ানো টেনসরফ্লো এবং টেনসরফ্লোয়ের চেয়েও বেশি নতুন ভাষা হওয়ায় লোকদের কাছে শুরু করার মতো অনেক সংস্থান নেই। মুক্ত-উত্স গভীর-গ্রন্থাগার যেমন কেরাস, লাসাগন এবং ব্লকগুলি হয়েছে উপরে নির্মিত থিয়ানো।

আমি আশা করি যে এই কাঠামোটি আপনার জন্য কোন ফ্রেমওয়ার্কটি বেছে নেবেন, তা পরীক্ষা করে দেখার জন্য আপনার পক্ষে যথেষ্ট ছিল এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by এই শংসাপত্র প্রশিক্ষণ শিল্পের প্রয়োজনীয়তা এবং চাহিদা অনুযায়ী শিল্প পেশাদার দ্বারা সংযুক্ত করা হয়। আপনি সফটম্যাক্স ফাংশন, অটোরকোডার নিউরাল নেটওয়ার্কস, সীমাবদ্ধ বল্টজম্যান মেশিন (আরবিএম) এর মত ধারণাগুলিতে দক্ষতা অর্জন করবেন এবং কেরাস এবং টিএফলায়ারের মতো লাইব্রেরিগুলিতে কাজ করবেন।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এটি 'থায়ানো বনাম টেনসরফ্লো' এর মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।