Meezo ML نشر 29 يوليو 2021 أرسل تقرير نشر 29 يوليو 2021 قمت ببناء النموذج البسيط التالي، لكن بظهر لي الخطأ التالي: float validation_split = 2f; Sequential model = new Sequential(); no_noise = no_noise.astype(np.float32); with_noise = with_noise.astype(np.float32); no_noise /= 255; with_noise /= 255; # بناء النموذج model.Add(new Conv2D(128, kernel_size: new Tuple<int, int>(5, 5), activation: "tanh", input_shape: new Shape(45, 45,1))); model.Add(new Conv2D(64, kernel_size: new Tuple<int, int>(3, 3), activation: "tanh")); model.Add(new Conv2DTranspose(64, kernel_size : new Tuple<int,int> (3, 3), kernel_constraint : max_norm, activation: "tanh")); model.Add(new Conv2DTranspose(32, kernel_size : new Tuple<int,int> (3, 3), activation: "relu")); model.Add(new Conv2D(1, kernel_size : new Tuple<int,int>(3, 3), activation: "sigmoid", padding: "same")); model.Compile(optimizer: "rmsprop", loss: "binary_crossentropy"); model.Fit(with_noise, no_noise,epochs: 10,batch_size: 140,steps_per_epoch:2,validation_split: validation_split); ------------------------------------------------------------------------------------------------------------------------- UnboundLocalError : local variable 'logs' referenced before assignment اقتباس
1 Ali Haidar Ahmad نشر 29 يوليو 2021 أرسل تقرير نشر 29 يوليو 2021 عادة ماينتج هذا الخطأ عندما يكون حجم البيانات قليل، وبالتالي ينشأ هذا الخطأ بسبب حجم ال batch_size الذي اخترته حيث لايجب أن يكون حجمه أقل من حجم بيانات التدريب لديك، حيث أنه في معظم الحالات ، يكون سبب هذا الخطأ هو أن حجم بيانات التدريب أقل من حجم الدُفعة، لذا تأكد أولاً من أن with_noise يحتوي على 140 عينة على الأقل أو قم بتقليل حجم الدفعة (batch_size ). أي مثلاً اجعل حجمه 64 أو 32 أو اجعله Batch GD أي 1. float validation_split = 2f; Sequential model = new Sequential(); no_noise = no_noise.astype(np.float32); with_noise = with_noise.astype(np.float32); no_noise /= 255; with_noise /= 255; # بناء النموذج model.Add(new Conv2D(128, kernel_size: new Tuple<int, int>(5, 5), activation: "tanh", input_shape: new Shape(45, 45,1))); model.Add(new Conv2D(64, kernel_size: new Tuple<int, int>(3, 3), activation: "tanh")); model.Add(new Conv2DTranspose(64, kernel_size : new Tuple<int,int> (3, 3), kernel_constraint : max_norm, activation: "tanh")); model.Add(new Conv2DTranspose(32, kernel_size : new Tuple<int,int> (3, 3), activation: "relu")); model.Add(new Conv2D(1, kernel_size : new Tuple<int,int>(3, 3), activation: "sigmoid", padding: "same")); model.Compile(optimizer: "rmsprop", loss: "binary_crossentropy"); model.Fit(with_noise, no_noise,epochs: 10,batch_size: 64,steps_per_epoch:2,validation_split: validation_split); 1 اقتباس
1 Ahmed Sharshar نشر 29 يوليو 2021 أرسل تقرير نشر 29 يوليو 2021 تستخدم ال batch_size من أجل تحديد كمية الداتا التي ستدخل الي الموديل في كل مرة يقوم فيها الموديل بالتدريب. بمعني أنه يقوم بتقسيم الداتا كلها إلى كميات متساوية من البيانات بحيث تدخل تباعا الي الموديل. فمثلا لو أن الداتا تحتوي على 100 صف من البيانات، فيقوم تقسيمها الي 10 أقسام كل واحدة تحتوي على 10 صفوف من البيانات. لكن ماذا يحدث إذا قمنا بتقسيم البيانات بأكثر مما تحتويه الداتا كلها، بمعني أن نحاول تقسيم 5 صفووف الي 10 اقسام؟، حيناها ستظهر رسالة الخطأ التي ظهرت لك والتي تعني أن حجم ال batch_size أكبر من الحجم الكلي للبيانات. ولعلاج تلك المشكلة ما عليك سوى تقليل حجم ال batch_size حتي يستطيع الموديل أن يقسم البيانات كالتالي: model.Fit(with_noise, no_noise,epochs: 10,batch_size: 32,steps_per_epoch:2,validation_split: validation_split); هنا قمنا بتصغير حجم ال batch_size من 140 في الموديل الخاص بك الى 32، جرب هذا وستختفي رسالة الخطأ اقتباس
السؤال
Meezo ML
قمت ببناء النموذج البسيط التالي، لكن بظهر لي الخطأ التالي:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.