我在 google colab 上训练了一个 keras 模型.现在无法在我的系统上本地加载它. [英] I trained a keras model on google colab. Now not able to load it locally on my system.

查看:14
本文介绍了我在 google colab 上训练了一个 keras 模型.现在无法在我的系统上本地加载它.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

with open('2model.json','r') as f:
json = f.read()
model = model_from_json(json)
model.load_weights("color_tensorflow_real_mode.h5")

我在 google colab 上训练了一个 keras 模型.现在无法在我的系统上本地加载它.收到此错误:ValueError: Unknown initializer: GlorotUniform

I trained a keras model on google colab. Now not able to load it locally on my system. Getting this error: ValueError: Unknown initializer: GlorotUniform

怎么解决这个问题??每次我在 colab 上制作模型并尝试在本地加载它时,我都无法这样做.收到此错误消息:

How to solve this?? Every time I make a model on colab and try loading it locally I am unable to do so. Getting this error message:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-c3ed162a8277> in <module>()
----> 1 model = model_from_json(json)
      2 model.load_weights("color_tensorflow_real_mode.h5")

~Anaconda3libsite-packages	ensorflowpythonkerasenginesaving.py in model_from_json(json_string, custom_objects)
    349   config = json.loads(json_string)
    350   from tensorflow.python.keras.layers import deserialize  # pylint: disable=g-import-not-at-top
--> 351   return deserialize(config, custom_objects=custom_objects)
    352 
    353 

~Anaconda3libsite-packages	ensorflowpythonkeraslayersserialization.py in deserialize(config, custom_objects)
     62       module_objects=globs,
     63       custom_objects=custom_objects,
---> 64       printable_module_name='layer')

~Anaconda3libsite-packages	ensorflowpythonkerasutilsgeneric_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    171             custom_objects=dict(
    172                 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 173                 list(custom_objects.items())))
    174       with CustomObjectScope(custom_objects):
    175         return cls.from_config(config['config'])

~Anaconda3libsite-packages	ensorflowpythonkerasengine
etwork.py in from_config(cls, config, custom_objects)
   1290     # First, we create all layers and enqueue nodes to be processed
   1291     for layer_data in config['layers']:
-> 1292       process_layer(layer_data)
   1293     # Then we process nodes in order of layer depth.
   1294     # Nodes that cannot yet be processed (if the inbound node

~Anaconda3libsite-packages	ensorflowpythonkerasengine
etwork.py in process_layer(layer_data)
   1276       from tensorflow.python.keras.layers import deserialize as deserialize_layer  # pylint: disable=g-import-not-at-top
   1277 
-> 1278       layer = deserialize_layer(layer_data, custom_objects=custom_objects)
   1279       created_layers[layer_name] = layer
   1280 

~Anaconda3libsite-packages	ensorflowpythonkeraslayersserialization.py in deserialize(config, custom_objects)
     62       module_objects=globs,
     63       custom_objects=custom_objects,
---> 64       printable_module_name='layer')

~Anaconda3libsite-packages	ensorflowpythonkerasutilsgeneric_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    173                 list(custom_objects.items())))
    174       with CustomObjectScope(custom_objects):
--> 175         return cls.from_config(config['config'])
    176     else:
    177       # Then `cls` may be a function returning a class.

~Anaconda3libsite-packages	ensorflowpythonkerasenginease_layer.py in from_config(cls, config)
   1615         A layer instance.
   1616     """
-> 1617     return cls(**config)
   1618 
   1619 

~Anaconda3libsite-packages	ensorflowpythonkeraslayersconvolutional.py in __init__(self, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
    464         activation=activations.get(activation),
    465         use_bias=use_bias,
--> 466         kernel_initializer=initializers.get(kernel_initializer),
    467         bias_initializer=initializers.get(bias_initializer),
    468         kernel_regularizer=regularizers.get(kernel_regularizer),

~Anaconda3libsite-packages	ensorflowpythonkerasinitializers.py in get(identifier)
    153     return None
    154   if isinstance(identifier, dict):
--> 155     return deserialize(identifier)
    156   elif isinstance(identifier, six.string_types):
    157     config = {'class_name': str(identifier), 'config': {}}

~Anaconda3libsite-packages	ensorflowpythonkerasinitializers.py in deserialize(config, custom_objects)
    145       module_objects=globals(),
    146       custom_objects=custom_objects,
--> 147       printable_module_name='initializer')
    148 
    149 

~Anaconda3libsite-packages	ensorflowpythonkerasutilsgeneric_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
    161       cls = module_objects.get(class_name)
    162       if cls is None:
--> 163         raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
    164     if hasattr(cls, 'from_config'):
    165       arg_spec = tf_inspect.getfullargspec(cls.from_config)

ValueError: Unknown initializer: GlorotUniform

Stackoverflow 要求我添加详细信息,而我没有要添加的内容.或者我不确定要添加什么.请帮忙.

Stackoverflow is asking me to add details while I have none to add. Or I am not sure what to add. Please help.

推荐答案

  1. 确保您拥有最新版本的 Kerastensorflow(分别是 2.4.41.11.0) 通过运行 pip install keras tensorflowconda install keras tensorflow.

  1. Make sure you have the newest version of Keras and tensorflow (which are 2.4.4 and 1.11.0) by running either pip install keras tensorflow or conda install keras tensorflow.

如果 Google Colab 使用已弃用的对象,您可能需要使用自定义对象:

In case it is Google Colab that uses deprecated objects, you may need to use custom objects:

from keras.utils import CustomObjectScope
from keras.initializers import glorot_uniform

with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
    model = load_model('my_model.h5')

不过不确定这是否是您的情况.

Not sure if this is your case though.

这篇关于我在 google colab 上训练了一个 keras 模型.现在无法在我的系统上本地加载它.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆