Доступ к промежуточным слоям из загруженной сохраненной модели в Tensorflow 2.0 - PullRequest
2 голосов
/ 23 октября 2019

При использовании SavedModels в Tensorflow 2.0 возможно ли получить доступ к активациям из промежуточных слоев? Например, с одной из моделей здесь: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md, Я могу запустить, например,

model = tf.saved_model.load('faster_rcnn_inception_v2_coco_2018_01_28/saved_model').signatures['serving_default']
outputs = model(input_tensor)

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

1 Ответ

1 голос
/ 23 октября 2019

Если вы генерируете сохраненные модели с использованием TensorFlow 2.0, можно извлечь отдельные слои. Но модель, на которую вы ссылаетесь, была сохранена в TensorFlow 1.x. С сохраненными моделями TF 1.x вы не можете по отдельности извлекать слои.

Вот пример того, как вы можете извлечь слои из сохраненной модели в TensorFlow 2.0

import tensorflow as tf
import numpy as np

model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(100,)),
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

# Compile and fit the model

model.save('save_model', save_format='tf')

Затем загрузить моделькак показано.

model = tf.keras.models.load_model('save_model')
layer1 = model.get_layer(index=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...