اذهب إلى المحتوى

Ali Haidar Ahmad

الأعضاء
  • المساهمات

    1068
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    43

كل منشورات العضو Ali Haidar Ahmad

  1. للقيام بنقل التعلم "Transfer Learning" نقوم بقطع الطبقة الأخيرة من الشبكة المدربة مسبقاً ثم نستبدلها بطبقة أو بعدة طبقات تتناسب مع مشكلتنا وهنا في المقالة التي أشرت إليها هي VGG16 وهي شبكة عصبية مدربة على مجموعة بيانات Imagenet لتصنيف مايقارب ال 1000 فئة، أي أن الطبقة الأخيرة هي softmax والخرج هو توزيع احتمالي على 1000 فئة. لذا نقوم بقطع طبقة ال softmax هذه واستبدالها ب Block يتناسب مع مشكلتنا (المشكلة التي لديك هي تصنيف ثنائي لذا يمكنك استبدالها مثلاً ب Block مكون من طبقتين FC وطبقة خرج مكونة من خلية واحدة بتابع تنشيط Sigmoid) النموذج المقطوع (أي النموذج كله ماعدا الطبقة التي أضفتها) سيكون خرجه هو ال features التي يستخدمها ال Block الذي أضفته، هذه ال features تسمى bottleneck features.
  2. أسئلة الامتحانات لا أحد يجيب عليها ، أما إذا أردت المساعدة في شرح فكرة ما نحن جاهزون وتحت أمرتك
  3. نعم يمكنك ذلك : لتعريف طريقة static في بايثون نكتب قبلها @staticmethod كما في الكود الأول . لتعريف متحول من نوع static لانضعه داخل التابع __init__ و سيعتبره المترجم static كما في الكود الثاني. class gen: def __init__(self, gender): self.gender = gender @staticmethod def isman(gender): if gender=="Male": return True else: return False gen.isman("Male") #True class person: def __init__(self,name): self.name=name age = 25 #static variable p1=person("ali") print(str(p1.age)+" "+p1.name) # output 25 ali p2=person("ahmad") print(str(p2.age)+" "+p2.name) # output 25 ahmad print(person.age) # 25
  4. هناك عدة طرق للقيام بذلك لكن أسهلها أن تقوم بوضع الملفين في نفس المسار (نفس المجلد) ثم ببساطة اكتب من داخل الملف all.py التعليمة * from files import على سبيل المثال هنا لدي ملفين الأول reg والثاني un وفي الملف reg يوجد تابع اسمه sigmoid فقمت باستدعاءه من داخل الملف un بهذه الطريقة. وأنصحك بالتعامل مع محرر الأكواد جوبيتر فهو يجعل كل هذه الأمور أسهل
  5. السؤال هذا سؤال امتحاني لانجيب عليه بكتابة الكود، لكن سأضع لك خطوات الحل : 1.نعرف list ونضع فيها ماهو مطلوب، وهذا أمر بسيط. 2.يمكن استخدام التابع insert للقيام بالمطلوب حيث أنه يأخذ وسيطين الأول هو ال index والثاني هو ال value. 3.طباعة طول اللائحة وهذا يتم عبر التابع (your_list)len. 4.فرز قائمة يتم عن طريق التابع ()your_list.sort . 5. يجب أن تبحثي في القائمة عن اسم جدك ثم تطبعي مكان وجوده (أي ال index) ، وهذا يتم ببساطة عن طريق التابع () your_list.index ويمكنك القيام بذلك دون استخدام التابع (فكري كيف سيكون مفيداً لك). 6.بعد أن عرفتي ال index الذي يوجد فيه اسم جدك ، يجب أن تحذفيه وهنا نستخدم التابع del your_list[iindex] أو (index) your_list.pop 7.نستخدم للإضافة insert ويمكن استخدام append لإضافة عنصر في نهاية القائمة (value)your_list.append. 8. يجب أن يكون سهلاً لك الآن.
  6. هناك عدة مهام يقومان بها .. لكن بشكل رئيسي يخفيان تفاصيل الاتصال عن المطور بحيث أن ال stup هو الصف الذي يحقق الولجهة البعيدة ، ال stup يمثل الغرض البعيد ولكن من جهةالزبون ، ويتواصل مع ال SK عن طريق الشبكة internet ، وال Sk يعرف أين الغرض البعيد الحقيقي ، يأخذ طلب ال stup ويرد response إليه.
  7. عندما يوفر المخدم (Remote Machine) خدمة جديدة ما ، لنعتبر أن هذه الخدمة هي عبارة عن صف ، فإنه يأخذ غرض من هذا الصف ويسجله في ال Registry ، يمكن تخيل ال Registry على أنها دفتر هواتف ،بحيث أننا إذا كنا نريد رقم شخص ما فإننا نبحث عن اسمه في دفتر الهواتف ثم نحصل على رقمه ، وهنا الأمر مشابه قإننا نبحث عن اسم الخدمة في ال Registry ثم نحصل على مرجع هذه الخدمة (الغرض البعيد) لنستخدمه. تسجيل الخدمة (الغرض ) في ال Registry من قبل المخدم تسمى bind (يعطي لكل غرض مسار فريد). البحث عن خدمة ما في ال Registry من قبل الزبون تسمى Lookup . وفي هذه المرحلة بعد حصول الزبون على مرجع الغرض البعيد فإنه يصبح قادر على أن يستدعي هذه الطرائق البعيدة الموجودة في الصف البعيد في النخدم. عندما يستدعي الزبون أي طريقة بعيدة فإن هذا الاستدعاء يحول إلى stup (الوكيل Proxy من طرف الزبون) والذي يقوم بتمريره إلى Skeleton والذي يمرر الاستدعاء إلى المخدم.
  8. لديك 3 قنوات قناة للأحمر وأخرى للأخضر وأخرى للأزرق وبالتالي يجب أن تحسب هستوغرام كل قناة على حدا ثم قم بالرسم كما في الكود التالي. import matplotlib.pyplot as plt import cv2 as cv image=cv.imread("rose.jpg",-1) color = ('b','g','r') for i,col in enumerate(color): histr = cv.calcHist([image],[i],None,[256],[0,256]) plt.plot(histr,color = col) plt.xlim([0,256]) plt.show() الوسيطة الأولى في تابع calcHist هي الصورة المراد حساب الهستوغرام لها ، بينما الوسيطة الثانية هي القناة اللونية التي تريد حساب الهستوغرام لها. لرسم هستوغرام الأزرق نضع 0 والأخضر نضع 1 والأحمر 2.
  9. يمكن أن نساعدها في أن نضعها على المسار الصحيح لتبدأ لكن ما تطلبه غير واضح !
  10. للتنويه :الكلاس الرئيسي هو الكلاس الذي يحوي الطريقة public static void main(String[] args) أي في مثالك هو الكلاس Program يفضل أن تعملي على برنامج Apache NetBeans وهو تطبيق يعمل على الويندوز وبالنسبة لمشكلتك فهي كما قلت لك في اسم الكلاس الرئيسي (ربما قمت أنت بتغييره -ارجعيه لاسمه الأساسي -) أو يمكنك أن تخرجي من المشروع وتفتحي مشروعاً جديداً وتكتبي الكود فيه من جديد لكن لاتغيري اسم الكلاس الرئيسي.
  11. package javaapplication16; import java.util.Scanner; public class JavaApplication16 { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.println("enter user age :"); int e=input.nextInt(); System.out.println("enter user name :"); String name=input.next(); System.out.println("welcome"+" "+name); double m,d,t; m=(e*12); d=(e*12)*(e*4)*(e*7); t=(e*12)*(e*4)*(e*7)*(e*24); System.out.println("Age in month "+m); System.out.println("Age in day "+d); System.out.println("Age in time "+t ); } } البرنامج سليم والخرج كما في الصورة المرفقة المشكلة لديك هي أن اسم الصف الذي قمتي بتعريفه ليس الاسم الصحيح للكلاس الرئيسي لذا يجب أن تتحققي من اسم الصف الرئيسي Program . # للتنويه :اسمه غالباً يتم تحديده عند إنشاء ال project. ماهو ال IDE أو محرر الأكواد الذي تستخدمينه لأعلمك كيف يتم الأمر .. هل هو NetBeans؟
  12. السؤال غير واضح أختي .. هل يمكنك توضيحه أكثر
  13. قبل رفع تطبيقات الويب على سيرفر موصول بشكل دائم بالشبكة ليحصل في النهاية على اسم نطاق مثلاً مثل hsoub.com ، يتم تجريب وتطوير هذه التطبيقات في بيئة محلية معتبرين أن الجهاز نفسه هو سرفر وزبون في نفس الوقت. localhost هو السرفر المحلي الذي نقوم بتجاربنا عليه مبدئياً قبل طرح المنتج البرمجي ليكون قيد التنفيذ الفعلي في سرفر نظامي.
  14. plt.scatter(X[0, :], X[1, :], c=Y.reshape(X[0,:].shape), s=40, cmap=plt.cm.Spectral); #or plt.scatter(X[0, :], X[1, :], c=Y.reshape(X[1,:].shape), s=40, cmap=plt.cm.Spectral); #or plt.scatter(X[0, :], X[1, :], c=Y.reshape(X.shape[0]), s=40, cmap=plt.cm.Spectral); #or plt.scatter(X[0, :], X[1, :], c=Y.reshape(X.shape[1]), s=40, cmap=plt.cm.Spectral); - plt.scatter هو تابع يأخذ مصفوفتين كدخل، الأولى تمثل المحور السيني والثانية تمثل المحور العيني وتمثلهم كنقط بالمستوي الاحداثي. - هذه النقط يمكن أن تلونها باستخدام الخرائط اللونية. - cmap هي خريطة لونية وكل لون فيها له index. -كل نقطة سوف تأخذ لون من الخريطة cmap هذا اللون سوف يكون بناءان على قيمة c مثلاً إذا كانت c=0 هذا يعني أن النقطة ستأخذ اللون المقابل لل index=0 وهكذا .. - لدينا 400 نقطة حسب X لذا يجب أن نسند ل c أربعمئة قيمة، هذه القيم سوف تؤخذ من Y لذا يجب ضبط أبعاد المصفوفة Y بحيث تكون بنفس أبعاد [:,0]X أو X[1,:].
  15. لتحقيق ال Serialization نستخدم الكلاس ObjectOutputStream لإنشاء نسخة من الكائن الموجود في الذاكرة و وضعها في ملف . يجب القيام بالخطوات التالية : 1 - الكائن الذي تريد حفظ حالته يجب أن يكون في الأساس محققا للواجهة Serializable . ( ملاحظة الواجهة Serializable هي واجهة معرفة في الجافا ولاتحوي أي طرائق ومن اجل تحقيقها يجب كتابة تعليمة الاستيراد للصفوف import java.io.Serializable ). 2 - إنشاء ملف إمتداده ser بواسطة الكلاس FileOutputStream. 3 - تجهيز كائن من الكلاس ObjectOutputStream الذي يستخدم لكتابة حالة الكائن في الملف . 4 - نسخ حالة الكائن الموجود في الذاكرة في هذا الملف بواسطة الدالة writeObject() . 5 - عند الإنتهاء من عملية النسخ نقوم بقطع كل إتصال قمنا بإجرائه مع هذا الملف . مثال : ليكن لدينا كلاس يعبر عن طالب حقوله الاسم والرقم والمطلوب القيام ب Serialization. import java.io.Serializable; public class Student implements Serializable { String name; int id; public Student(String name,int id){ this.name=name; this.id=id; } public void printInformation(){ System.out.println("name: "+name+" id: "+id); } } الان في main سوف نعرض باقي خطوات السلسة : import java.io.FileOutputStream; import java.io.ObjectOutputStream; public class Session2 { public static void main(String[] args) { Student st=new Student("Alel",1); try { FileOutputStream fs = new FileOutputStream("teat.ser"); ObjectOutputStream os = new ObjectOutputStream(fs); os.writeObject(st); os.close(); } catch(Exception ex) { ex.printStackTrace(); } } } عند تنفيذ الخطوات السابقة ينشأ ملف بالاسم test.ser
  16. # فقط انسخ والصق هذا الكود import re def get_ID(string): s=re.split(' ',string) ID=[] for i in s: if(i.isnumeric()): if('056' == i[0:3] and len(i)==10): ID.append(i) return ID text =input() get_ID(text)
  17. أخي لديك مشكلة في تحميل الحزمة .. وكونك جربت أن تعيد تنزيلها .. سأقترح عليك أن تثبت ال anaconda وتستخدم محرر اكواد بايثون الشهير جوبيتر وسينجح الأمر لأن المكتبة تكون مضمنة ضمن بيئة anaconda .
  18. class MyClass: def __init__(self): self.lst = [] بايثون تقدم نوعين لل attributes هما : class attributes and instance attributes. ال class attributes تشبه كثيراً ال static attributes في جافا و c++ فهي تتشارك نفس القيمة مع كل ال object التي تؤخذ من هذا الصف، ويتم تعريف ال class attributes في بايثون تماماً كما قمت أنت بتعريف المتغير الذي سميته lst لذا فكانت القيم هي نفسها. أما ال instance attributes فهي متغير ينتمي إلى object واحد فقط أي أن كل متغير تعرفه ك instance attributes سوف تكون قيمه منفصلة في كل object تأخذه من هذا الصف ، ويتم تعريف ال instance attributes تماماً كما عرفتها لك أنا أي ضمن التابع init
  19. السؤال غير واضح تماماً أخي لكن أعتقد أنك تريد إنشاء Object اسمه person ثم تعريف التابع المطلوب وهذا يتم كالتالي: class Person: def __init__(self): self.name = "" self.age = 0 def new_person(self,name,age): self.name=name self.age=age def who(self): print("The name: "+str(self.name)) print("The age: "+str(self.age)) p1 = Person() p1.new_person("Mohamed", 25) p1.who()
  20. # GRADED FUNCTION: forward_propagation_with_dropout def forward_propagation_with_dropout(X, parameters, keep_prob=0.5): np.random.seed(1) # retrieve parameters W1 = parameters["W1"] b1 = parameters["b1"] W2 = parameters["W2"] b2 = parameters["b2"] W3 = parameters["W3"] b3 = parameters["b3"] # LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SIGMOID Z1 = np.dot(W1, X) + b1 A1 = relu(Z1) ### START CODE HERE ### (approx. 4 lines) D1 = np.random.rand(A1.shape[0], A1.shape[1]) # A1 تعريف مصفوفة بقيم عشوائية بين الصفر والواحد وبنفس أبعاد المصفوفة D1 = D1 < keep_prob A1 = A1 * D1 A1 = A1 / keep_prob ### END CODE HERE ### Z2 = np.dot(W2, A1) + b2 A2 = relu(Z2) ### START CODE HERE ### (approx. 4 lines) D2 = np.random.rand(A2.shape[0], A2.shape[1]) D2 = D2 < keep_prob A2 = A2 * D2 A2 = A2 / keep_prob ### END CODE HERE ### Z3 = np.dot(W3, A2) + b3 A3 = sigmoid(Z3) cache = (Z1, D1, A1, W1, b1, Z2, D2, A2, W2, b2, Z3, A3, W3, b3) return A3, cache نعرف مصفوفة بقيم عشوائية بنفس أبعاد المصفوفة A ثم تحويل قيم المصفوفة D1 إلى 0 أو 1 حسب الشرط ( إذا كانت القيمة الأولى في المصفوفة D1 مثلاً 0.2 وهي أقل من العتبة (keep_prob = 0.5) أي سيكون الشرط محقق (D1<keep_porb) وسيقوم بتحويل القيمة إلى 1 , والعكس صحيح وسيقوم بتحويل القيمة إلى 0 ثم ضرب المصفوفة A1 بـ D1 بعد تعديل قيمها إلى 0,1 ثم تقسيم قيم المصفوفة A1 على العتبة....
  21. import java.util.Scanner; public class JavaApplication16 { static void Age(int current_date, int current_month, int current_year, int birth_date, int birth_month, int birth_year) { int month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (birth_date > current_date) { current_month = current_month - 1; current_date = current_date + month[birth_month - 1]; } if (birth_month > current_month) { current_year = current_year - 1; current_month = current_month + 12; } int calculated_date = current_date - birth_date; int calculated_month = current_month - birth_month; int calculated_year = current_year - birth_year; System.out.println("Present Age"); System.out.println("Years: " + calculated_year + " Months: " + calculated_month + " Days: " + calculated_date); } public static void main(String[] args) { Scanner sc=new Scanner(System.in); // إدخال التاريخ الحالي int current_date = sc.nextInt(); int current_month = sc.nextInt(); int current_year = sc.nextInt(); //إدخال تاريخ الميلاد int birth_date = sc.nextInt();; int birth_month = sc.nextInt();; int birth_year = sc.nextInt();; // استدعاء التابع الذي قمنا بتعريفه لكي يطبع لنا العمر Age(current_date, current_month, current_year, birth_date, birth_month, birth_year); } }
  22. using namespace std; int Min(int myarray[], int n) { int res = myarray[0]; for (int i = 1; i < n; i++) res = min(res, myarray[i]); return res; } int main() { int arr[] = { 12, 1234, 45, 67, 1 }; int n = sizeof(arr) / sizeof(arr[0]); cout << "Minimum element of array: " << Min(arr, n); return 0; }
  23. #include using namespace std; long long term(string polyterm, long long val) { //to find the coefficient string coeffStr = ""; int i; for (i = 0; polyterm[i] != 'x'; i++) coeffStr.push_back(polyterm[i]); long long coeff = atol(coeffStr.c_str()); // to get the power value string powStr = ""; for (i = i + 2; i != polyterm.size(); i++) powStr.push_back(polyterm[i]); long long power = atol(powStr.c_str()); // For ax^n, we return a(n-1)x^(n-1) return coeff * power * pow(val, power - 1); } long long value(string& str, int val) { long long ans = 0; // using istringstream to get input in tokens istringstream is(str); string polyterm; while (is >> polyterm) { // check if the token is equal to '+' then // continue with the string if (polyterm == "+") continue; // Otherwise find the derivative of that // particular term else ans = (ans + term(polyterm, val)); } return ans; } // main function int main() { string str = "2x^3 + 1x^1 + 3x^2"; int val = 2; cout << value(str, val); return 0; }
  24. 1.ادخل إلى start menue. 2.اكتب في مربع البحث "registry editor" ثم ادخل إليه. 3. من الواجهة التي تظهر انتقل إلى : "HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell". ملاحظة 1: إذا لم يكن المجلد shell موجوداً، قم بإنشائه عن طريق الضغط بالزر اليميني على Background ثم اختر new ثم key ثم سينشئ لك مجلد ويطلب منك تسميته (قم بتسميته shell). ملاحظة 2: يمكنك تتبع الصور. 4.بعد ذلك انقر بالزر اليميني على shell واختر new ثم key سمي المجلد الذي سينتج Bash. 5.الآن على يمين الشاشة اضغط بالزر اليميني على البيانات التي تسمى "Deafult" (تسمى القيمة value) ثم اختر modify ثم اكتب open in bash (هذا الاسم هو الذي سيظهر على سطح المكتب عندما تضغط على المجلد الذي تريده). 6.اضغط بالزر اليميني على bash واختر new ثم key وسمي المجلد الذي سينتج command. 7.اضغط بالزر اليميني على ال value واختر modify ثم ضع المسار الذي يوجد به التطبيق الخاص بك . 8. الآن اذهب لسطح المكتب واضغط بالزر اليميني على أي مجلد وستراه.
×
×
  • أضف...