Keras: IndexError: индекс кортежа вне диапазона при загрузке пользовательской модели - PullRequest
0 голосов
/ 20 июня 2019

У меня есть модель .h5 , которая была построена с tensorflow==1.13.1 и Keras==2.2.4 на хосте, к которому у меня нет доступа.Я пытаюсь загрузить эту модель, используя keras.models.load_model следующим образом:

model.py :

from keras.models import load_model
import numpy as np

encoder = load_model('encoder.h5')
encoder.summary()

Это создает трассировку стека, которая указывает на исходный файл(implicit_delta.py) Я не могу открыть:

Duhaime:web doug$ python model.py
Using TensorFlow backend.
WARNING: Logging before flag parsing goes to stderr.
W0620 09:18:29.064763 140735739011968 deprecation_wrapper.py:119] From /Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.

W0620 09:18:29.130089 140735739011968 deprecation_wrapper.py:119] From /Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.

Traceback (most recent call last):
  File "model.py", line 8, in <module>
    encoder = load_model('../pose-enc-raymond.h5')
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/saving.py", line 419, in load_model
    model = _deserialize_model(f, custom_objects, compile)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/saving.py", line 225, in _deserialize_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/saving.py", line 458, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/layers/__init__.py", line 55, in deserialize
    printable_module_name='layer')
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/utils/generic_utils.py", line 145, in deserialize_keras_object
    list(custom_objects.items())))
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/network.py", line 1032, in from_config
    process_node(layer, node_data)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/network.py", line 991, in process_node
    layer(unpack_singleton(input_tensors), **kwargs)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/engine/base_layer.py", line 457, in __call__
    output = self.call(inputs, **kwargs)
  File "/Users/doug/anaconda/envs/3.5/lib/python3.5/site-packages/keras/layers/core.py", line 687, in call
    return self.function(inputs, **arguments)
  File "/home/cshimmin/jupyter/dance/implicit_delta.py", line 95, in <lambda>
IndexError: tuple index out of range

Я пытался установить другие версии tenorflow и keras, но до сих пор не удалось обойти это.Есть ли уловка, которую я могу сделать, чтобы выяснить, как загрузить эту модель?Любые предложения или взломы приветствуются!

1 Ответ

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

Этот поток помог мне понять, что мне нужно загрузить модель, используя версию python, которая использовалась для создания модели:

conda create -n 3.7.3 python=3.7.3
conda activate 3.7.3

Затем установите pip все, и модель будетпридачу!

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