অনেক নিউরাল নেটওয়ার্ক লাইব্রেরিতে কেরাস বা লাসাগেনের মতো 'এম্বেডিং স্তর' রয়েছে ।
ডকুমেন্টেশন পড়েও আমি এর ফাংশনটি বুঝতে পেরেছি তা নিশ্চিত নই। উদাহরণস্বরূপ, কেরাস ডকুমেন্টেশনে এটি বলে:
ধনাত্মক পূর্ণসংখ্যার (সূচকগুলি) স্থির আকারের ঘন ভেক্টরগুলিতে পরিণত করুন, যেমন। [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
কোনও জ্ঞানী ব্যক্তি কী এটি ব্যাখ্যা করতে পারে এবং আপনি কখন এটি ব্যবহার করবেন?
সম্পাদনা: ডকুমেন্টেশনে আটকানোর বিষয়ে, ডকুমেন্টেশন থেকে পেস্ট করার মতো অনেক কিছুই নেই, তাই আমার প্রশ্ন। আমি এটি রূপান্তর বুঝতে পারি না, কেন এটি ব্যবহার করা উচিত।
যাইহোক, কেরাসে এটি এভাবে ব্যাখ্যা করা হয়েছে:
এম্বেডিং
keras.layers.e એમ્બેડdings. এমবেডিং (ইনপুট_ডিম, আউটপুট_ডিম, init = 'ইউনিফর্ম', ইনপুট_লেন্থ = কিছুই নয়, ওজন = কিছুই নয়, W_regularizer = কিছুই নয়, W_constraint = কোনও নয়, মাস্ক_জারো = মিথ্যা) ধনাত্মক পূর্ণসংখ্যা (সূচী) নির্দিষ্ট আকারের ডেস্ক ভেক্টরে রূপান্তর করুন , যেমন। [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
ইনপুট শেপ: শেপ সহ 2 ডি টেনসর: (এনবি_সাম্পল, সিকোয়েন্স_ লেন্থ)। আউটপুট শেপ: শেপযুক্ত থ্রিডি টেনসর: (এনবি_সাম্পল, সিকোয়েন্স_ লেন্থ, আউটপুট_ডিম)। যুক্তি:
ইনপুট_ডিম: ইন>> ০. শব্দভান্ডারটির আকার, যেমন। ইনপুট ডেটাতে 1 + সর্বাধিক পূর্ণসংখ্যার সূচক। আউটপুট_ডিম: ইন্ট> = 0. ঘন এমবেডিংয়ের মাত্রা
এবং এখানে এটি কীভাবে লাসাগনে ব্যাখ্যা করা হয়েছে:
শব্দ এম্বেডিংয়ের জন্য একটি স্তর। ইনপুটটি একটি পূর্ণসংখ্যার ধরণের টেনসর ভেরিয়েবল হওয়া উচিত।
পরামিতি: আগত: একটি স্তর উদাহরণ বা একটি tuple
এই স্তরটিতে স্তরটি খাওয়ানো হচ্ছে, বা প্রত্যাশিত ইনপুট আকার।
ইনপুট_সাইজ: ইনট
বিভিন্ন এম্বেডিংয়ের সংখ্যা। শেষ এম্বেডিংয়ে সূচি ইনপুট_সাইজ থাকবে - 1।
আউটপুট_সাইজ: ইনট
প্রতিটি এম্বেডিংয়ের আকার।
ডাব্লু: থায়ানো ভেরিয়েবল, এক্সপ্রেশন, নম্পি অ্যারে বা কলযোগ্য শেয়ার করেছেন
এম্বেডিং ম্যাট্রিক্সের জন্য প্রাথমিক মান, অভিব্যক্তি বা আরম্ভকারী এটি আকার (ইনপুট_সাইজ, আউটপুট_সাইজ) সহ একটি ম্যাট্রিক্স হওয়া উচিত। আরও তথ্যের জন্য দেখুন Lasagne.utils.create_param ()।
উদাহরণ
>>> from lasagne.layers import EmbeddingLayer, InputLayer, get_output >>> import theano >>> x = T.imatrix() >>> l_in = InputLayer((3, )) >>> W = np.arange(3*5).reshape((3, 5)).astype('float32') >>> l1 = EmbeddingLayer(l_in, input_size=3, output_size=5, W=W) >>> output = get_output(l1, x) >>> f = theano.function([x], output) >>> x_test = np.array([[0, 2], [1, 2]]).astype('int32') >>> f(x_test) array([[[ 0., 1., 2., 3., 4.], [ 10., 11., 12., 13., 14.]], [[ 5., 6., 7., 8., 9.], [ 10., 11., 12., 13., 14.]]], dtype=float32)