Разница между model (x) и model.predict (x) в Keras?

#python #tensorflow #keras

#python #тензорный поток #keras

Вопрос:

В чем разница между использованием model(x) и model.predict(x) для прогнозирования результата модели в Keras?

Ответ №1:

Keras с серверной частью tensorflow использовал базовые объекты tensorflow, но в основном предоставлял высокоуровневые выходные данные, которые могли быть поняты вне среды tensorflow (в качестве примера он мог выводить массивы numpy или списки python).
Сегодня приведена модель в tensorflow 2.0 (созданная с использованием библиотеки keras),

 out_np = model.predict(x)
  

предоставляет массив numpy, который может, в качестве примера, быть напечатан с помощью print(out_np) .

С другой стороны,

 out_tf = model(x)
  

результатом является объект tensorflow, который может быть преобразован в массив numpy с .numpy()

Два результата эквивалентны, в качестве примера мы имеем, что верно следующее,

 out_np.max() == out_tf.numpy().max()
  

Формат может отличаться, но значение model(x) и model.predict(x) одно и то же:
при заданном входном x это значение выходных узлов сети, характеризующееся ее структурой, весами и отклонениями.