Почему существует разница в input_shapes плотного слоя при подборе и прогнозировании модели? - PullRequest
1 голос
/ 11 июля 2020

Я изучаю TF и ​​пытаюсь реализовать следующий код

window_size = 4
layer = tf.keras.layers.Dense(1, input_shape=(window_size,))
model = tf.keras.models.Sequential([layer])

model.compile(...)
model.fit(dataset,epochs=100,verbose=0)

Итак, в слое Dense () моя input_shape равна (4,), тогда почему это model.predict(np.array([4,5,3,2])) не работает? А model.predict(np.array([4,5,3,2])[None]) это работает? Если упомянутая input_shape равна (4,), тогда при прогнозировании, зачем ему (1,4)?

Спасибо

1 Ответ

1 голос
/ 11 июля 2020
  • input_shape обозначает количество предварительных выборок функций.
  • Мы используем мини-пакетный градиент для обучения, поэтому мы отправляем партию образцов (обозначенных batch_size) за раз для тренировки . Поскольку этот пакет может варьироваться в зависимости от характеристик машины и набора данных, мы не исправляем это в модели. Более того, архитектура модели не зависит от количества выборок, а скорее зависит от количества входных функций на выборку.
  • model.predict(np.array([4,5,3,2])) не будет работать, потому что вы прогнозируете по 4 образцам одной функции каждая, но ваша input_shape имеет 4 характеристики на образец.
  • Вы можете делать прогнозы на данных размером n X 4, где n - это номер образца, а каждая выборка имеет 4 функций.
...