Я строю архитектуру CNN для распознавания лиц на собственном наборе данных. Сначала вот мой код:
classifier = keras.Sequential()
classifier.add(keras.layers.Convolution2D(16,kernel_size=(3,3),input_shape = (256,256,3),activation = swish,padding='same',kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(16,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.2))
classifier.add(keras.layers.Convolution2D(32,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(32,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.3))
classifier.add(keras.layers.Convolution2D(64,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(64,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.4))
classifier.add(keras.layers.Flatten())
#classifier.add(keras.layers.Dropout(0.5))
classifier.add(keras.layers.Dense(128,activation = swish))
classifier.add(keras.layers.Dropout(0.5))
classifier.add(keras.layers.Dense( 4, activation = 'softmax'))
print(classifier.summary())
# Compiling the CNN
classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
Ошибка появляется в строке:
classifier.add(keras.layers.Convolution2D(16,kernel_size=(3,3),input_shape = (256,256,3),activation = swish,padding='same',kernel_regularizer=regularizers.l2))
Я запускаю файл со следующим кодом:
import keras
import matplotlib.pyplot as plt
from numpy import set_printoptions
from keras import callbacks,regularizers,Sequential
from keras.layers import Input, Lambda, Dense, Flatten,Dropout,Input,Conv2D, MaxPool2D,BatchNormalization
from keras.callbacks import EarlyStopping
set_printoptions(precision=4,suppress=True)
ошибка начала появляться, когда я добавил регуляризатор L2, до этого он работал нормально.
`