【问题标题】:How to load the Keras model?如何加载 Keras 模型?
【发布时间】:2020-06-04 20:17:50
【问题描述】:

您好,我正在尝试加载在 Keras 中创建的 keras 模型:2.2.4 版本,我正在尝试加载低于指定版本。

  • ubuntu : 18.04
  • 蟒蛇:3.6.9
  • 张量流版本:1.13.1
  • Keras 版本:2.3.1

我尝试加载模型,如下所述。

import tensorflow as tf

classifierLoad = tf.keras.models.load_model('w.hdf5')

在加载时显示这样的错误。

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' 作为类型的同义词已被弃用;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 _np_qint8 = np.dtype([("qint8", np.int8, 1)]) /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:527:FutureWarning:不推荐将(type,1)或'1type'作为类型的同义词传递;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:528:FutureWarning:不推荐将(type,1)或'1type'作为类型的同义词传递;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 _np_qint16 = np.dtype([("qint16", np.int16, 1)]) /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:529:FutureWarning:不推荐将(type,1)或'1type'作为类型的同义词传递;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:530:FutureWarning:不推荐将(type,1)或'1type'作为类型的同义词传递;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 _np_qint32 = np.dtype([("qint32", np.int32, 1)]) /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:535:FutureWarning:不推荐将(type,1)或'1type'作为类型的同义词传递;在 numpy 的未来版本中,它将被理解为 (type, (1,)) / '(1,)type'。 np_resource = np.dtype([("资源", np.ubyte, 1)]) 警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:435:colocate_with(来自 tensorflow.python.framework.ops)已弃用,将在未来的版本。 更新说明: 由 placer 自动处理的托管。 2020-02-20 18:17:45.291135:W tensorflow/core/platform/profile_utils/cpu_utils.cc:98] 未能在 /proc/cpuinfo 中找到 bogomips;无法确定 CPU 频率 2020-02-20 18:17:45.292283:我 tensorflow/compiler/xla/service/service.cc:161] XLA 服务 0x27584260 在平台主机上执行计算。设备: 2020-02-20 18:17:45.292367: I tensorflow/compiler/xla/service/service.cc:168] StreamExecutor 设备 (0): , 2020-02-20 18:17:45.438308: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:965] ARM64 不支持 NUMA - 返回 NUMA 节点零 2020-02-20 18:17:45.438696:我 tensorflow/compiler/xla/service/service.cc:161] XLA 服务 0x237da820 在平台 CUDA 上执行计算。设备: 2020-02-20 18:17:45.438755:I tensorflow/compiler/xla/service/service.cc:168] StreamExecutor 设备 (0):NVIDIA Tegra X1,计算能力 5.3 2020-02-20 18:17:45.439077:我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] 找到具有属性的设备 0: 名称:NVIDIA Tegra X1 主要:5 次要:3 memoryClockRate(GHz):0.9216 pciBusID: 0000:00:00.0 总内存:3.87GiB 免费内存:569.37MiB 2020-02-20 18:17:45.439136: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] 添加可见 gpu 设备:0 2020-02-20 18:17:50.292455: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 设备互连 StreamExecutor 与强度 1 边缘矩阵: 2020-02-20 18:17:50.295363:我 tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 0 2020-02-20 18:17:50.295391: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0: N 2020-02-20 18:17:50.295579:我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 创建了 TensorFlow 设备(/job:localhost/replica:0/task:0/device:GPU:0 和 105 MB 内存)-> 物理 GPU(设备:0,名称:NVIDIA Tegra X1,pci 总线 ID:0000:00:00.0,计算能力:5.3) 回溯(最近一次通话最后): 文件“conversion_keras_to_trt.py”,第 32 行,在 模型 = load_model(model_fname, custom_objects={'Adam': lambda **kwargs: hvd.DistributedOptimizer(keras.optimizers.Adam(**kwargs))} 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/saving.py”,第 249 行,在 load_model 优化器配置,custom_objects=custom_objects) 反序列化中的文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizers.py”,第 838 行 printable_module_name='优化器') 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/generic_utils.py”,第 194 行,在 deserialize_keras_object 返回 cls.from_config(cls_config) 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizers.py”,第 159 行,在 from_config 返回 cls(**配置) init 中的文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizers.py”,第 471 行 超级(亚当,自我)。init(**kwargs) init 中的文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizers.py”,第 68 行 '传递给优化器:' + str(k)) TypeError:传递给优化器的意外关键字参数:名称

任何建议

【问题讨论】:

标签: python-3.x tensorflow keras tf.keras


【解决方案1】:

您的问题源于您混合了普通的kerastensorflow.keras 版本。

它们不兼容。将来,如果您想训练模型,请确保在 tensorflow.keras 中训练模型,然后在测试时从 tensorflow.keras 加载。

【讨论】:

  • 是的,我明白了!感谢您的解释!@Timbus Calin
【解决方案2】:

我已经找到了一种加载模型的方法,我认为它不是一个正确的方法,但我所做的是,我开始在模型加载的 keras 2.3.1 版本和 tensorflow 1.14.1 版本上进行训练。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多