Невозможно загрузить архитектуру модели в керасе из файла json. Функция model_from_json () в керасе выдает ошибку - PullRequest
0 голосов
/ 07 июля 2019

Я попытался загрузить существующую модель глубокого обучения в свой ноутбук Python.Сначала я загружал архитектуру модели из файла «json», а затем загружал вес модели из файла «h5».Файл json читается, но я не могу преобразовать его в модель keras.

Я пытался использовать функцию 'model_from_json' из keras для преобразования загруженного файла json в модель keras, но я получаю, 'NoneType 'объект не имеет атрибута' get ', ошибка.Я попытался распечатать содержимое файла json, но он не пустой.

json_file = open('../input/seresnext-architecture/SEResNeXt.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
print(type(loaded_model_json))
loaded_model = model_from_json(loaded_model_json)

loaded_model.load_weights("../input/resnext/SEResNeXt.h5")
print("Loaded model from disk")

Строка 5, выдает ошибку Объект 'NoneType' не имеет атрибута 'get' , когдапеременная loaded_model_json не является пустой и имеет тип string.Я хочу знать, что может быть причиной ошибки.

AttributeError Traceback (most recent call last)
<ipython-input-22-0557160cb839> in <module>
     13 json_file.close()
     14 #print(type(loaded_model_json))
---> 15 loaded_model = model_from_json(loaded_model_json)
     16 
     17 # load weights into new model

/opt/conda/lib/python3.6/site-packages/keras/engine/saving.py in model_from_json(json_string, custom_objects)
    490     config = json.loads(json_string)
    491     from ..layers import deserialize
--> 492     return deserialize(config, custom_objects=custom_objects)
    493 
    494 

/opt/conda/lib/python3.6/site-packages/keras/layers/__init__.py in deserialize(config, custom_objects)
     53                                     module_objects=globs,
     54                                     custom_objects=custom_objects,
---> 55                                     printable_module_name='layer')

/opt/conda/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    143                     config['config'],
    144                     custom_objects=dict(list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 145                                         list(custom_objects.items())))
    146             with CustomObjectScope(custom_objects):
    147                 return cls.from_config(config['config'])

/opt/conda/lib/python3.6/site-packages/keras/engine/network.py in from_config(cls, config, custom_objects)
   1020         # First, we create all layers and enqueue nodes to be processed
   1021         for layer_data in config['layers']:
-> 1022             process_layer(layer_data)
   1023         # Then we process nodes in order of layer depth.
   1024         # Nodes that cannot yet be processed (if the inbound node

/opt/conda/lib/python3.6/site-packages/keras/engine/network.py in process_layer(layer_data)
   1006 
   1007             layer = deserialize_layer(layer_data,
-> 1008                                       custom_objects=custom_objects)
   1009             created_layers[layer_name] = layer
   1010 

/opt/conda/lib/python3.6/site-packages/keras/layers/__init__.py in deserialize(config, custom_objects)
     53                                     module_objects=globs,
     54                                     custom_objects=custom_objects,
---> 55                                     printable_module_name='layer')

/opt/conda/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    143                     config['config'],
    144                     custom_objects=dict(list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 145                                         list(custom_objects.items())))
    146             with CustomObjectScope(custom_objects):
    147                 return cls.from_config(config['config'])

/opt/conda/lib/python3.6/site-packages/keras/layers/core.py in from_config(cls, config, custom_objects)
    730                 config['function'],
    731                 custom_objects=custom_objects,
--> 732                 printable_module_name='function in Lambda layer')
    733         elif function_type == 'lambda':
    734             # Unsafe deserialization from bytecode

/opt/conda/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    160             fn = _GLOBAL_CUSTOM_OBJECTS[function_name]
    161         else:
--> 162             fn = module_objects.get(function_name)
    163             if fn is None:
    164                 raise ValueError('Unknown ' + printable_module_name +

AttributeError: 'NoneType' object has no attribute 'get'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...