Вход тюнера Keras 0 последовательного слоя несовместим со слоем: : ожидаемый min_ndim=3, найденный ndim=2. Полная форма получена: (Нет, 216)

#python #machine-learning #keras #hyperparameters

Вопрос:

Помогите мне разобраться в ошибке

ошибка входного измерения keras

 def model_builder(hp):
  model = keras.Sequential()
  model.add(keras.layers.Conv1D(256, 5,padding='same',input_shape=(215,1), activation='relu'))    
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))      
  model.add(keras.layers.Dropout(0.1))
  model.add(keras.layers.MaxPooling1D(pool_size=(32)))
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))
  model.add(keras.layers.Dropout(0.2))
  model.add(keras.layers.Conv1D(128, 5,padding='same',activation='relu'))
  model.add(keras.layers.Flatten())
  model.add(keras.layers.Dense(5,kernel_regularizer='l1',activation='softmax'))
 
  opt = keras.optimizers.RMSprop(lr=0.00001, decay=1e-6)
  model.compile(loss='categorical_crossentropy', optimizer=opt,metrics=['accuracy'])
              
  return model

tuner = kt.Hyperband(model_builder,
                     objective='val_accuracy',
                     max_epochs=10,
                     factor=3,
                     directory='my_dir',
                     project_name='intro_to_kt')

stop_early = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=5)

tuner.search(X_train, y_train, epochs=50, validation_split=0.2, callbacks=[stop_early])

# Get the optimal hyperparameters
best_hps=tuner.get_best_hyperparameters(num_trials=215)[0]

print(f"""
The hyperparameter search is complete. The optimal number of units in the 
first densely-connected
layer is {best_hps.get('units')} 
optimal learning rate for the optimizer is {best_hps.get('learning_rate')}. """)
 

Фото ошибки здесь

введите описание изображения здесь

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

1. пожалуйста, добавьте форму входного размера

Ответ №1:

В вашем входном слое вы просто добавляете еще одно измерение

 X_train[:,:,np.newaxis]