#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'>