我有一个包含2列数据的CSV文件。我建立了一个回归方法模型来进行预测。但是目前,我只能获得1个预测,我该怎么做才能获得2个预测。我以前使用了以下模型
def build_model():
model = keras.Sequential([
layers.Dense(64, activation=tf.nn.relu, input_shape=[len(train_dataset.keys())]),
layers.Dense(64, activation=tf.nn.relu),
layers.Dense(1)
])
但是我找到了一个新模型,所以我使用了如下所示的模型。
这就是我加载数据的方式
column_names = ['longitude', 'Latitude']
raw_dataset = pd.read_csv('loglat.csv', names=column_names)
train_dataset = dataset.sample(random_state=0)
test_dataset = dataset.drop(train_dataset.index)
train_stats = train_dataset.describe()
train_stats = train_stats.transpose()
train_stats
train_labels = train_dataset.pop('longitude')
test_labels = test_dataset.pop('longitude')
normed_train_data = train_dataset
normed_test_data = test_dataset
from tf.keras.layers import Input, Dense
from tf.keras.models import Model
def build_model():
X = Input(shape=[len(train_dataset.keys())])
hidden_1 = Dense(64, activation=tf.nn.relu)(X)
hidden_2 = Dense(64, activation=tf.nn.relu)(hidden_1)
out_1 = Dense(1)(hidden_2)
out_2 = Dense(1)(hidden_2)
model = Model(inputs=[X], outputs=[out_1, out_2])
optimizer = tf.keras.optimizers.RMSprop(0.001)
model.compile(loss='mean_squared_error',
optimizer=optimizer,
metrics=['mean_absolute_error', 'mean_squared_error'])
return model
model = build_model()
linreg = model.fit(normed_train_data, train_labels, epochs=1000, verbose=0)
test_predictions = model.predict(normed_test_data).flatten()
与此有关的错误是:
ValueError:检查模型目标时出错:传递给模型的Numpy数组列表不是模型预期的大小。预计会看到2个数组,但得到了以下1个数组的列表:[array([[[130.4998]])] ...