Не удается загрузить модель из преобразованной модели керас с квантованием - PullRequest
0 голосов
/ 01 апреля 2019

Мое намерение - уменьшить размер модели с 4.8M до 1.2M.

Версия TensorFlow.js

6.1.0

Версия браузера

Версия Chrome 73.0.3683.86 (Официальная сборка) (64-бит)

Я сделал следующие процедуры:

Step1 преобразование модели keras в модель tfjs.tensorflowjs_converter --quantization_bytes 1 --input_format=keras ./my_model.h5 ./assets

выводит 2 файла group1-shard1of1 и model.json в папке assets

Step2 использовать модель вывода в моемПроект tenorflowjs this.model = await tf.loadModel('/assets/model.json'); выдает ошибки:

core.js:1448 ERROR Error: Uncaught (in promise): RangeError: byte length of Float32Array should be a multiple of 4
RangeError: byte length of Float32Array should be a multiple of 4
    at new Float32Array (<anonymous>)
    at eval (weights_loader.js:134)
    at Array.forEach (<anonymous>)
    at eval (weights_loader.js:130)
    at Array.forEach (<anonymous>)
    at Object.eval (weights_loader.js:115)
    at step (weights_loader.js:32)
    at Object.eval [as next] (weights_loader.js:13)
    at fulfilled (weights_loader.js:4)
    at ZoneDelegate.invoke (zone.js:388)
    at resolvePromise (zone.js:824)
    at eval (zone.js:734)
    at rejected (app.component.ts:14)
    at ZoneDelegate.invoke (zone.js:388)
    at Object.onInvoke (core.js:4749)
    at ZoneDelegate.invoke (zone.js:387)
    at Zone.run (zone.js:138)
    at eval (zone.js:882)
    at ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:4740)

, если без флага quantization_bytes в шаг 1 , выходная модель будет загружена нормально и работает нормально.

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