Я обучил сиамца net на наборе данных изображения и получил несколько ошибок, которые приведены ниже.
a = Input(shape=(256,256,3))
b = Input(shape=(256,256,3))
#create model
model = Sequential()
#add model layers
model.add(Conv2D(64, kernel_size=10, activation='relu', input_shape=(256,256,3),strides=(1,1)))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(128, kernel_size=7, activation='relu',strides=(1,1)))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(128, kernel_size=4, activation='relu',strides=(1,1)))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(256, kernel_size=4, activation='relu',strides=(1,1)))
model.add(Flatten())
model.add(Dense(7, activation='sigmoid'))
encoded_l = model(a)
encoded_r = model(b)
L1_layer = Lambda(lambda tensors:K.abs(tensors[0] - tensors[1]))
L1_distance = L1_layer([encoded_l, encoded_r])
prediction = Dense(4096,activation='sigmoid')(L1_distance)
# Connect the inputs with the outputs
model = Model(inputs=[a,b],outputs=prediction)
# plot graph
keras.utils.plot_model(model, show_shapes=True)
Я обучил модель на наборе данных изображения:
train_data_path = '/content/drive/My Drive/jaffe augmented/train'
validation_data_path = '/content/drive/My Drive/jaffe augmented/validation'
test_data_path = '/content/drive/My Drive/jaffe augmented/test'
img_rows = 256
img_cols = 256
epochs = 2
batch_size = 32
num_of_train_samples = 1026
num_of_validation_samples =126
num_of_test_samples =21
train_datagen = ImageDataGenerator(rescale=1. / 255)
validation_datagen = ImageDataGenerator(rescale=1. / 255)
test_datagen = ImageDataGenerator(rescale=1. / 255)
train_generator = train_datagen.flow_from_directory(train_data_path,
target_size=(img_rows, img_cols),
batch_size=batch_size)
validation_generator = validation_datagen.flow_from_directory(validation_data_path,
target_size=(img_rows, img_cols),
batch_size=batch_size)
test_generator = test_datagen.flow_from_directory(test_data_path,
target_size=(img_rows, img_cols),
batch_size=batch_size)
model.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
history=model.fit_generator(train_generator,
steps_per_epoch=num_of_train_samples // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps=num_of_validation_samples//batch_size)
Я получил следующую ошибку.
ValueError: Ошибка при проверке ввода модели: список Numpy массивов, передаваемых в вашу модель, не соответствует размеру, ожидаемому моделью. Ожидается увидеть 2 массива (ов), но вместо этого получен следующий список из 1 массива: [array ([[[[[. 1, 1., 1.], [1., 1., 1.], [1. , 1., 1.], ..., [1., 1., 1. ...