我有3个输入和3个输出。我正在尝试使用KerasRegressor和cross_val_分数来获得我的预测分数
我的代码是:
# Function to create model, required for KerasClassifier
def create_model():
# create model
# #Start defining the input tensor:
input_data = layers.Input(shape=(3,))
#create the layers and pass them the input tensor to get the output tensor:
layer = [2,2]
hidden1Out = Dense(units=layer[0], activation='relu')(input_data)
finalOut = Dense(units=layer[1], activation='relu')(hidden1Out)
u_out = Dense(1, activation='linear', name='u')(finalOut)
v_out = Dense(1, activation='linear', name='v')(finalOut)
p_out = Dense(1, activation='linear', name='p')(finalOut)
#define the model's start and end points
model = Model(input_data,outputs = [u_out, v_out, p_out])
model.compile(loss='mean_squared_error', optimizer='adam')
return model
#load data
...
input_var = np.vstack((AOA, x, y)).T
output_var = np.vstack((u,v,p)).T
# evaluate model
estimator = KerasRegressor(build_fn=create_model, epochs=num_epochs, batch_size=batch_size, verbose=0)
kfold = KFold(n_splits=10)
我试过:
results = cross_val_score(estimator, input_var, [output_var[:,0], output_var[:,1], output_var[:,2]], cv=kfold)
及
results = cross_val_score(estimator, input_var, [output_var[:,0:1], output_var[:,1:2], output_var[:,2:3]], cv=kfold)
及
results = cross_val_score(estimator, input_var, output_var, cv=kfold)
我得到的错误消息如下:
详情: ValueError:检查模型目标时出错:传递给模型的Numpy数组列表的大小不是模型预期的大小。预期会看到3个数组,但得到了以下1个数组的列表:[array([[0.69945297,0.13296847,0.06292328]
或
ValueError:找到样本数不一致的输入变量:[72963,3]
那么我该如何解决这个问题呢
谢谢
我不知道你的数据是什么样子的,但我认为如何将它们叠加在一起是很重要的。 我尝试了以下步骤
我唯一的问题是Tensorlfow抱怨没有使用tensor 我希望这有助于如果不让我知道你的数据的维度看起来像
问题是
Input
层的输入维度不是3
,而是3*feature_dim
。下面是一个工作示例如您所见,由于输入维度是
10
,因此在create_model
内部,我指定了feature_dim
相关问题 更多 >
编程相关推荐