Как задать переменные в тензорном потоке простым сохранением - PullRequest
0 голосов
/ 19 июня 2019

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

Я построил модель с использованием керасов и успешно обучил ее с точностью до 88%.Сейчас я пытаюсь сохранить эту модель, чтобы мы могли ее обслуживать, но нужная мне функция, простое сохранение, не совсем ясна, как указать передаваемые переменные.

Сеанс и экспорткаталог достаточно понятен, но входы и выходы загадочны.Я полагаю, что поскольку я использовал Keras, эти переменные скрыты абстракцией keras, и документация Tensorflow по простому сохранению не дает объяснений.

Как град, я установил Z равным y, чтобычто-то там, но очевидно, что это неправильно.Нужно ли мне устанавливать выходную переменную Z, и если да, то какой это тип?

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

import tensorflow as tf
session =  tf.keras.backend.get_session()
export_dir = "/Users/somedir/"
z = np.array([])
tf.saved_model.simple_save(session,
            export_dir,
            inputs={"x": X, "y": y},
            outputs={"z": z})

X - мой набор данных - массив всех независимых переменных.Y - результат (зависимая переменная).У меня нет другого кандидата на z, поэтому я установил для него пустой массив.

Я получаю AttributeError: у объекта 'numpy.ndarray' нет атрибута 'get_shape'

1 Ответ

0 голосов
/ 25 июня 2019

Оказывается, можно запросить у самой модели о ее входах и выходах.

Не забудьте импортировать нужные библиотеки:

import time
import tensorflow as tf
import tensorflow.python.saved_model

Тогдаустановите переменную пути экспорта, для удобства это отметка времени, поэтому вы можете запускать ее снова и снова:

export_path = "/somedirectory/{}".format(time.strftime("%Y%m%d_%H%M%S"))

Затем внутри блока get_session () будет работать следующее:

with tf.keras.backend.get_session() as sess:
    tf.saved_model.simple_save(
        sess,
        export_path,
        inputs={t.name:t for t in model.inputs},
        outputs={t.name:t for t in model.outputs})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...