Как взять 1-мерный(100,1) из 100 списков, взятых в качестве входных данных для keras

#python #pandas #tensorflow-datasets #tf.keras

Вопрос:

Я создаю код шумоподавления, используя модель CNN, в которой 100 точек данных размером (100,1), которые являются массивом,> как всегда, когда я запускаю модель.ошибка подгонки, возникающая при вводе описания изображения здесь

Вот мой код

 #Reshaping the X_datafinal to an numpy array
X_data_final = np.reshape(X_data_final,[100,100,1])
X_data_number = np.hsplit(X_data_final,100)
X_train_data = X_data_final[0:60]
#X_train_data = pd.DataFrame(X_train_data)
X_train_data = np.asarray(X_train_data)
X_test_data = X_data_final[60:80]
#X_test_data = pd.DataFrame(X_test_data)
#X_validation_data = X_data_number[80:100]
X_test_data = np.asarray(X_test_data)
p = np.size(X_train_data[1])

def MMSE_model(input_shape = (100,1)):
    input_ls_est = Input(shape = input_shape,name = 'input layer')
    conv_1 = Conv1D(3,kernel_size = 1 , padding = 'same')(input_ls_est)
    act_1 = Activation('relu')(conv_1)

    #second conv layer
    conv_2 = Conv1D(3, kernel_size= 1 ,padding= 'same')(act_1)
    #batch_normalisation _add
    conv_2_batch = BatchNormalization()(conv_2)
    conv_2_act = Activation('relu')(conv_2_batch)
    
    
    #third conv layer (D =2)
    conv_3 = Conv1D(3, kernel_size= 1 ,padding= 'same')(conv_2_act)
    #batch_normalisation _add
    conv_3_batch = BatchNormalization()(conv_3)
    conv_3_act = Activation('relu')(conv_3_batch)
    
    
    #fourth conv layer (D =3)
    conv_4 = Conv1D(3, kernel_size= 1 ,padding= 'same')(conv_3_act)
    #batch_normalisation _add
    conv_4_batch = BatchNormalization()(conv_4)
    conv_4_act = Activation('relu')(conv_4_batch)
     #fifith conv layer (D =4)
    conv_5 = Conv1D(3, kernel_size= 1 ,padding= 'same')(conv_4_act)
    #batch_normalisation _add
    conv_5_batch = BatchNormalization()(conv_5)
    conv_5_act = Activation('relu')(conv_5_batch)
    #Last hiddhen layer
    conv_6 = Conv1D(1, kernel_size= 1 , padding = 'same')(conv_5_act)
    res = subtract([input_ls_est, conv_6])
    model = Model(inputs = input_ls_est, outputs = res)
    return model




mod= MMSE_model()
mod.summary()
mod.compile(loss = 'MeanSquaredError',optimizer = 'Adam',metrics = ['mse'])
mod.fit(X_train_data, res,epochs = 5)
score = mod.evaluate(X_test_data, X_test_data)
print('test score:',score[0])
print('test accuracy:',score[1])
 

Подгонка функции выдает мне ошибку следующим образом

 ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, <class 'tensorflow.python.keras.engine.functional.Functional'>