«l2» не определен как регуляризатор

#python #tensorflow

Вопрос:

Ниже приведен мой код:

 from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras import layers
from tensorflow.keras import regularizers

model = Sequential()
model.add(Dense(units=10, input_shape=[784], activation='sigmoid', kernal_regularizer=l2(0.01)))
model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()
model.fit(x_train, y_train, batch_size = 256, epochs=100, validation_data=(x_test, y_test))
 

Я продолжаю получать следующую ошибку:

 NameError                                 Traceback (most recent call last)

<ipython-input-23-76c00e884f10> in <module>()
      7 
      8 model = Sequential()
----> 9 model.add(Dense(units=10, input_shape=[784], activation='sigmoid', kernal_regularizer=l2(0.01)))
     10 model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy'])
     11 model.summary()

NameError: name 'l2' is not defined
 

Что происходит? Я был бы признателен за любую помощь.

Комментарии:

1. Ошибка очевидна. Вы не определили l2 функцию. Попробуй вот так: kernal_regularizer=regularizers.L2(0.01)

Ответ №1:

Синтаксис таков

 kernal_regularizer=regularizers.l1_l2(l1=0, l2=0.01)
 

вместо kernal_regularizer=l2(0.01)

Ссылка: https://www.tensorflow.org/api_docs/python/tf/keras/regularizers/l1_l2