Загрузка преобразованной модели Keras LSTM в Tensorflow.js приводит к ошибке формы тензора - PullRequest
0 голосов
/ 30 августа 2018

Я определил модель LSTM в Keras и использовал tfjs.converters.save_keras_model для преобразования ее в формат Tensorflow.js. Но при попытке загрузить дружественную к сети модель в JS это приводит к ошибке, говорящей о том, что ожидаются формы, отличные от тех, которые присутствуют в файле весов:

BenchmarkDialog.vue:47 Error: Based on the provided shape, [2,128], the tensor should have 256 values but has 139
at m (tf-core.esm.js:17)
at new t (tf-core.esm.js:17)
at Function.t.make (tf-core.esm.js:17)
at ke (tf-core.esm.js:17)
at i (tf-core.esm.js:17)
at Object.kh [as decodeWeights] (tf-core.esm.js:17)
at tf-layers.esm.js:17
at tf-layers.esm.js:17
at Object.next (tf-layers.esm.js:17)
at o (tf-layers.esm.js:17)

Модель определена:

model = Sequential()

model.add(LSTM(
    32,
    batch_input_shape=(30, 5, 3),
    return_sequences=True,
    stateful=True,
    activation='tanh',
))
model.add(Dropout(0.25))

model.add(LSTM(
    32,
    return_sequences=True,
    stateful=True,
    activation='tanh',
))
model.add(Dropout(0.25))

model.add(LSTM(
    32,
    return_sequences=False,
    stateful=True,
    activation='tanh',
))
model.add(Dropout(0.25))

model.add(Dense(3, activation='tanh', kernel_initializer='lecun_uniform'))

model.compile(loss='mse', optimizer=Adam())

Рассматриваемый тензор принадлежит слоям LSTM в model.json:

{"name": "lstm_1/kernel", "shape": [2, 128], "dtype": "float32"}

Вот model.json , файл весов и оригинальная модель keras на случай, если они будут полезны.

Есть идеи, что я здесь делаю не так?

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