Загрузка кадра данных pandas с помощью тензорного потока и создание прогнозов с помощью одного экземпляра - PullRequest
0 голосов
/ 06 мая 2020

У меня проблемы с пониманием построения модели тензорного потока и предварительной обработки pandas Dataframe.

Я следил за этой документацией: https://www.tensorflow.org/tutorials/load_data/pandas_dataframe

Первый вопрос:

dataset = tf.data.Dataset.from_tensor_slices((df.values, target.values))
train_dataset = dataset.shuffle(len(df)).batch(1)

def get_compiled_model():
  model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(1)
  ])

Поскольку фреймворк данных о сердечных заболеваниях имеет 13 функций, почему документация инициирует только первый плотный слой с 10 единицами? Почему это не выглядело примерно так?

def get_compiled_model():
      model = tf.keras.Sequential([
        tf.keras.layers.InputLayer(input_shape=(13,),
        tf.keras.layers.Dense(10, activation='relu'),
        tf.keras.layers.Dense(10, activation='relu'),
        tf.keras.layers.Dense(1)
      ])

В документации это начинается с плотного слоя из 10 единиц, но есть 13 функций, я не понимаю, как это работает.

Последний вопрос:

После того, как Айв обучил модель

model = get_compiled_model()
model.fit(train_dataset, epochs=15)

Как мне делать прогнозы с одним или несколькими экземплярами / экземплярами обучающих данных с помощью model.predict ()?

Нужно ли мне сначала преобразовать экземпляр в тензор, прежде чем передавать его в метод model.predict? ie

model.predict (tensor(instance))

Спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Существуют разные способы создания модели.

  1. model.build ()
  2. model.fit () с некоторыми данными
  3. Укажите input_shape аргумент в первом слое (ах) для автоматической c сборки.

Даже если вы не укажете входной слой, когда вы поместите данные, он автоматически отрегулирует размер ввода.

В model.predict () должны поступать входные данные, аналогичные обучающим данным. Это может быть один или несколько (пакетных) входов.

...