Как посмотреть вес в файле .tflite? - PullRequest
0 голосов
/ 31 августа 2018

Я получаю предварительно обученный файл .pb MobileNet и обнаруживаю, что он не квантуется, а полностью квантованная модель должна быть преобразована в формат .tflite. Поскольку я не знаком с инструментами для разработки мобильных приложений, как я могу получить полностью квантованные веса MobileNet из файла .tflite. Точнее, как я могу извлечь квантованные параметры и просмотреть их числовые значения?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Средство просмотра моделей Netron имеет прекрасный вид и экспорт данных, а также прекрасный вид сетевой диаграммы. https://github.com/lutzroeder/netron

0 голосов
/ 05 сентября 2018

Я также в процессе изучения того, как работает TFLite. То, что я нашел, может быть не лучшим подходом, и я был бы признателен за любые экспертные мнения. Вот что я нашел до сих пор, используя flatbuffer Python API.

Сначала вам нужно скомпилировать схему с помощью flatbuffer. На выходе будет папка с именем tflite.

flatc --python tensorflow/contrib/lite/schema/schema.fbs

Затем вы можете загрузить модель и получить нужный тензор. Tensor имеет метод с именем Buffer(), который, согласно схеме,

Индекс, который ссылается на таблицу буферов в корне модели.

Таким образом, он указывает на местоположение данных.

from tflite import Model
buf = open('/path/to/mode.tflite', 'rb').read()
model = Model.Model.GetRootAsModel(buf, 0)
subgraph = model.Subgraphs(0)
# Check tensor.Name() to find the tensor_idx you want
tensor = subgraph.Tensors(tensor_idx) 
buffer_idx = tensor.Buffer()
buffer = model.Buffers(buffer_idx)

После этого вы сможете прочитать данные, позвонив по номеру buffer.Data()

Ссылка: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/schema/schema.fbs https://github.com/google/flatbuffers/tree/master/samples

...