python - ValueError:未知层:自定义>CTCLayer。请确保将此对象传递给“custom_objects”参数
问题描述
我想在另一个应用程序中使用Keras 的手写识别示例中描述的训练模型,并尝试使用以下内容加载模型;
from keras.models import load_model
from tensorflow import keras
model = keras.models.load_model("test4_20211113.h5", custom_objects={'CTCLayer': CTCLayer})
我收到“ValueError:未知层:自定义>CTCLayer。请确保将此对象传递给custom_objects
参数。”
我添加了 custom_objects 参数并通过在本文后面添加 **kwargs 来修改 CTCLayer 类,“ ValueError: Unknown layer: CapsuleLayer ”。
class CTCLayer(keras.layers.Layer):
def __init__(self, name=None, **kwargs):
self.name = name
super().__init__(**kwargs)
self.loss_fn = keras.backend.ctc_batch_cost
def call(self, y_true, y_pred):
batch_len = tf.cast(tf.shape(y_true)[0], dtype="int64")
input_length = tf.cast(tf.shape(y_pred)[1], dtype="int64")
label_length = tf.cast(tf.shape(y_true)[1], dtype="int64")
input_length = input_length * \
tf.ones(shape=(batch_len, 1), dtype="int64")
label_length = label_length * \
tf.ones(shape=(batch_len, 1), dtype="int64")
loss = self.loss_fn(y_true, y_pred, input_length, label_length)
self.add_loss(loss)
# At test time, just return the computed predictions.
return y_pred
我是 Python 和 Keras 的初学者,如果你让我知道如何解决这个问题,我将不胜感激。
解决方案
推荐阅读
- python - 将二维列表转换为字典
- ruby-on-rails - Rails:无法从 URL 保存文件并将其保存到 Amazon S3 (S3::Error::ResponseError)
- sql - 通过在多个字段上连接两个表来创建类似联合 B 的输出结构
- javascript - 无需物理单击即可打开元素的 contextMenu
- oop - 服务访问实体属性
- javascript - 如何在同名的子类方法中调用父类方法?
- ruby - Nokogiri builder #to_xml,添加文本片段后没有回车
- antlr - 不要在给定点读取特定令牌
- c# - 获取多维数组的一个值并将其放入一维数组中
- opencl - get_local_id(0) 的值