• 0

ظهور الخطأ NameError: name 'Dense' is not defined في كيراس وتنسرفلو

أحاول بناء نموذج في كيراس، لكن يظهر لي الخطأ التالي:

from keras.datasets import imdb
from keras import preprocessing
max_features = 1000
maxlen = 20
(x_train, y_train), (x_test, y_test) = imdb.load_data(
num_words=max_features)
x_train = preprocessing.sequence.pad_sequences(x_train,maxlen=maxlen) 
x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)
from keras.models import Sequential
from keras.layers import Flatten,Embedding
model = Sequential()
model =Sequential()
model.add(Dense(16, activation='relu',input_shape=(20,)))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
history = model.fit(x_train, y_train,
epochs=3,
batch_size=64,
validation_split=0.2)
---------------------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-9e88e2e56b90> in <module>
     11 model = Sequential()
     12 model =Sequential()
---> 13 model.add(Dense(16, activation='relu',input_shape=(20,)))
     14 model.add(Dense(16, activation='relu'))
     15 model.add(Dense(1, activation='sigmoid'))

NameError: name 'Dense' is not defined

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يجب عليك أولاً أن تقوم باستيراد الطبقات قبل استخدامها، ومشكلتك هي أنك لم تقم باستيراد الطبقة Dense. فظهر لك هذا الخطأ، وبالتالي يجب أن تضيف إلى نموذجك السطر التالي، من Keras API حيث أنها موجودة في الموديول:

keras.layers.Dense
# وبالتالي نكتب
from keras.layers import  Dense

أو من تنسرفلو حيث تكون في الموديول التالي:

tensorflow.keras.layers.Dense
from tensorflow.keras.layers import Dense

ويمكنك استيراد أي طبقة أخرى بنفس الطريقة، مثلاً نريد أن نقوم باستيراد  ال'طبقة LSTM أو GRU أو conv..إلخ:

# نكتب
from keras.layers import  Conv2D,LSTM,GRU
# أو 
from tensorflow.layers import  Conv2D,LSTM,GRU
# أو
import tensorflow as tf
from tf.layers import  Conv2D,LSTM,GRU
# أو
import tensorflow.layers as layers
from layers import Conv2D,LSTM,GRU

 

تمّ تعديل بواسطة Ali Haidar Ahmad
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

بوجة عام، ظهور رسالة

 name 'something' is not defined 

يعني أنك قمت باستخدام متغير أو دالة دون تعريفها مسبقا سواء باستدعائها او بتعريف بالمتغير.

هنا ظهور الرسالة:

name 'Dense' is not defined

لانك قمت باستخدام الدالة dense دون استدعائها مسبقا، كل ما عليك هو استدعائها ببساطه كالتالي:

from keras.datasets import imdb
from keras import preprocessing
from keras.layers import  Dense # استدعاء Dense
max_features = 1000
maxlen = 20
(x_train, y_train), (x_test, y_test) = imdb.load_data(
num_words=max_features)
x_train = preprocessing.sequence.pad_sequences(x_train,maxlen=maxlen) 
x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)
from keras.models import Sequential
from keras.layers import Flatten,Embedding
model = Sequential()
model =Sequential()
model.add(Dense(16, activation='relu',input_shape=(20,)))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
history = model.fit(x_train, y_train,
epochs=3,
batch_size=64,
validation_split=0.2

 

تمّ تعديل بواسطة Ahmed Sharshar

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن