Ошибка при добавлении новой функции для прогнозирования с использованием кераса - PullRequest
0 голосов
/ 18 апреля 2020

Я сделал прогноз, используя только количество кроватей (работало нормально), теперь я хотел бы улучшить цены на дома, добавив второй вход (квадратные футы).

Я добавил код как ниже:

import tensorflow as tf
import numpy as np
from tensorflow import keras

model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[2])])
xs = np.stack([[1.0, 2.0, 3.0, 4.0, 5.0, 6.0], [100, 150, 200, 250, 300, 350]], axis=1)
ys = np.array([100000, 150000, 200000, 250000, 300000, 350000], dtype=float)
model.fit(xs, ys, epochs=100)
print(model.predict([[7.0], [400.0]]))  # [7.0] number of beds / [400] square feet 

Но я получаю сообщение об ошибке ниже:

ValueError: Input 0 of layer sequential_57 is incompatible with the layer: expected axis -1 of input shape to have value 2 but received input with shape [None, 1]

Пожалуйста, вам нужна ваша поддержка, чтобы исправить это и заставить его работать.

С уважением,

1 Ответ

1 голос
/ 18 апреля 2020

Я изменил следующие вещи из вашего кода:

  1. Вам нужно скомпилировать вашу модель перед тем, как приступить к ее настройке (см. model.compile('adam', 'mae') в моем коде ниже)
  2. Массив ввода из которых вы хотели предсказать, имели неправильные измерения. У него было измерение (2,1), которое я изменил на измерение (1,2).

Если я изменю эти две вещи, код будет работать для меня.

model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[2])])
xs = np.stack([[1.0, 2.0, 3.0, 4.0, 5.0, 6.0], [100, 150, 200, 250, 300, 350]], axis=1)
ys = np.array([100000, 150000, 200000, 250000, 300000, 350000], dtype = float)
model.compile('adam', 'mae')
model.fit(xs, ys, epochs=100)
print(model.predict(np.array([[7.0, 400.0]]))) # [7.0] number of beds / [400] square feet #
...