Ali Ahmed55 نشر منذ 11 ساعة أرسل تقرير نشر منذ 11 ساعة السلام عليكم هو انا ازي اقدر استخدم الEmbeddings بستخدم torch ؟ 1 اقتباس
0 Mustafa Suleiman نشر منذ 11 ساعة أرسل تقرير نشر منذ 11 ساعة للتوضيح ببساطة، الـ Embeddings طريقة لتمثيل الكائنات مثل الكلمات، أو العناصر، إلخ، كمتجهات ذات أبعاد منخفضة في فضاء رياضي، الفكرة أننا نريد تمثيل الكائنات بطريقة تصبح بها الكائنات المتشابهة قريبة من بعضها في ذلك الفضاء، والكائنات المختلفة تكون بعيدة. PyTorch توفر طبقة جاهزة torch.nn.Embedding لتنفيذ الـ Embeddings بسهولة. import torch.nn as nn import torch بعد ذلك، إنشاء طبقة الـ Embedding باستخدام الدالة البانية nn.Embedding()، والتي تتطلب مُدخلين رئيسيين: num_embeddings: عدد الـ Embeddings المراد إنشاؤها يمثل حجم المعجم لديك بمعنى عدد الكلمات الفريدة أو عدد العناصر الفريدة. embedding_dim: أبعاد كل Embedding، أي طول المتجه الذي سيمثل كل كائن. للتبسيط لو لديك معجم يحتوي على 10000 كلمة وترغب في تمثيل كل كلمة بمتجه ذي 100 بُعد، نكتب: embedding_layer = nn.Embedding(num_embeddings=10000, embedding_dim=100) ولاستخدامها يجب تمرير مؤشرات indices الكائنات التي تريد الحصول على الـ Embedding الخاصة بها، وتلك المؤشرات عبارة عن موتر Tensor من الأعداد الصحيحة. indices = torch.tensor([5, 100, 500]) embeddings = embedding_layer(indices) print(embeddings.shape) print(embeddings) من الأفضل استخدام Pre-trained Embeddings وهي مدربة مسبقًا مثل Word2Vec أو GloVe أو FastText، فهي تعلمت على كميات هائلة من النصوص، وتعتبر نقطة بداية جيدة للتدريب، خاصة لو كمية البيانات المتوفرة لديك محدودة. 1 اقتباس
0 Ali Ahmed55 نشر منذ 10 ساعة الكاتب أرسل تقرير نشر منذ 10 ساعة بتاريخ 3 دقائق مضت قال Mustafa Suleiman: num_embeddings: عدد الـ Embeddings المراد إنشاؤها يمثل حجم المعجم لديك بمعنى عدد الكلمات الفريدة أو عدد العناصر الفريدة. embedding_dim: أبعاد كل Embedding، أي طول المتجه الذي سيمثل كل كائن. طيب ازي اقدر احديد دول بشكل دقيق ؟ انا عندي بيانات فئوي فا عاوز استخدم التقنيه دي عشان النموذج يتدريب بشكل صحيح ؟ فا انا هتسخدم الكلام ده في الميزات هل الازم كمان اعملو في الY ؟ 1 اقتباس
0 Mustafa Suleiman نشر منذ 10 ساعة أرسل تقرير نشر منذ 10 ساعة أول خطوة هي بناء معجم من بيانات التدريب، أي قم بتحليل بيانات النصوص، واستخرج جميع الكلمات الفريدة، ويوجد أدوات مثل collections.Counter في Python لحساب تردد الكلمات وتحديد الكلمات الفريدة. ثم استبعاد الكلمات النادرة من المعجم، فالكلمات التي تظهر عدد قليل جدًا من المرات ليست مفيدة للتدريب وتزيد من حجم المعجم بلا داعٍ. وnum_embeddings يعني عدد الـ Embeddings حدده بحساب عدد العناصر الفريدة التي تريد تمثيلها، مثلاً الكلمات الفريدة في معجمك أو المستخدمين أو العناصر، ذلك هو حجم قاموسك من الـ Embeddings. والـ embedding_dim هي أبعاد الـ Embedding حددها بالتجربة، ابدأ بقيمة مستخدمة بكثرة مثل 100-300، وجرّب قيمًا مختلفة ولاحظ كيف يؤثر ذلك على أداء النموذج، فالأبعاد الأكبر أفضل للمهام المعقدة والمعاجم الكبيرة، لكنها تستهلك موارد أكثر. وفي حال تستخدم Embeddings مدربة مسبقًا مثل Word2Vec أو GloVe أو FastText، فهي تأتي بأبعاد محددة، حيث GloVe بأبعاد 50، 100، 200، أو 300. بالتالي لو قررت استخدام تلك الـ Embeddings المدربة مسبقًا، فإن embedding_dim يكون بالفعل محددًا مسبقًا. اقتباس
0 Ali Ahmed55 نشر منذ 10 ساعة الكاتب أرسل تقرير نشر منذ 10 ساعة بتاريخ 1 دقيقة مضت قال Mustafa Suleiman: أول خطوة هي بناء معجم من بيانات التدريب، أي قم بتحليل بيانات النصوص، واستخرج جميع الكلمات الفريدة، ويوجد أدوات مثل collections.Counter في Python لحساب تردد الكلمات وتحديد الكلمات الفريدة. ثم استبعاد الكلمات النادرة من المعجم، فالكلمات التي تظهر عدد قليل جدًا من المرات ليست مفيدة للتدريب وتزيد من حجم المعجم بلا داعٍ. الا البيانات مش عبار عن نصوص البيانات عبار عن ارقم زي 1 - 0 - 2 كده و مش هينفع ان استخدم دول كده في النموذج عشان النموذج عاوز الارقم عبار عن Float اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو انا ازي اقدر استخدم الEmbeddings بستخدم torch ؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.