首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow-gpu ValueError:未知层:功能

tensorflow-gpu ValueError:未知层:功能
EN

Stack Overflow用户
提问于 2020-10-12 19:48:16
回答 1查看 1K关注 0票数 0

我正在尝试从一个(由mobilenetv2训练的) .h5文件加载一个模型。

代码语言:javascript
复制
from tensorflow.keras import models
class Classifier(object):

    def __init__(self, model_path):
        self.model = models.load_model(model_path)

我的模型代码:

代码语言:javascript
复制
model_pre = keras.applications.MobileNetV2(
    input_shape=(224, 224, 3),
    include_top=False,
)

model_pre.trainable = False

last_output = model_pre.output

x = Flatten()(last_output)
x = Dense(3, activation='softmax')(x) 
model = tf.keras.Model(model_pre.input, x)

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

model.summary()

tensorflow-gpu == 2.2 (具有2.3相同问题) python == 3.8.3

加载后,我得到了这个问题

代码语言:javascript
复制
2020-10-12 21:37:39.500606: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
Traceback (most recent call last):
  File "C:/Users/manos/projects/gesture_recognition/app.py", line 28, in <module>
    classifier = Classifier(CLASSIFIER_MODEL_PATH)
  File "C:\Users\manos\projects\gesture_recognition\classifier\gesture_classifier.py", line 9, in __init__
    self.model = models.load_model(model_path)
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\saving\save.py", line 184, in load_model
    return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile)
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\saving\hdf5_format.py", line 177, in load_model_from_hdf5
    model = model_config_lib.model_from_config(model_config,
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\saving\model_config.py", line 55, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\layers\serialization.py", line 105, in deserialize
    return deserialize_keras_object(
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\utils\generic_utils.py", line 361, in deserialize_keras_object
    (cls, cls_config) = class_and_config_for_serialized_keras_object(
  File "C:\Users\manos\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\keras\utils\generic_utils.py", line 321, in class_and_config_for_serialized_keras_object
    raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
ValueError: Unknown layer: Functional

我到处寻找这个问题的解决方案,他们写了关于升级或降级tensorflow-gpu版本的文章,但没有一个选项对我没有帮助

EN

回答 1

Stack Overflow用户

发布于 2021-03-18 04:28:55

当我使用import:from tensorflow.keras.callbacks import ModelCheckpoint保存模型,但只使用import from keras.models import load_model加载保存的模型时,我遇到了这个问题。一旦我把它改成了from tensorflow.keras.models import load_model,它就工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64317295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档