保存/加载 Tensorflow Keras 模型仅用于预测

2023-12-20

我有一个带有自定义损失的张量流 keras 模型。尝试后,我想使用存储模型model.save(path)并在另一个 python 脚本中仅使用以下命令加载模型进行预测model = tf.keras.models.load_model(model_path, compile=False).

Without compile=False,tensorflow会抱怨缺少损失函数。呼唤model.prediction然而会导致Model object has no attribute 'loss'错误信息。我想打电话model.predict无需再次指定损失。

有没有解决方案来保存/加载tf.keras.Model没有使用模型进行预测的自定义损失?

Code

既然被问到了,模型就在多个输出/损失上进行训练,我用 lambda 定义损失来捕获权重等。这看起来像这样:

losses = [lambda y_true, y_pred: util.weighted_mse_loss(y_true, y_pred, tf.square(gain_weight)), 
        lambda y_true, y_pred: util.weighted_mse_loss(y_true, y_pred, tf.square(Rd_weight)), 
        lambda y_true, y_pred: util.pole_zero_loss(y_true, y_pred, r_weight, w_weight),
        lambda y_true, y_pred: util.pole_zero_loss(y_true, y_pred, r_weight, w_weight)]


model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=10E-4),
    loss=losses)

如上所述here https://keras.io/api/models/model_saving_apis/#load_model-function喀拉斯有tf.keras.models.load_model(filepath, custom_objects=None, compile=True)功能。如果您有自定义损失,您可以使用:

model = keras.models.load_model('model.h5', custom_objects={'my_loss': my_loss})

其中“my_loss”是您的损失名称,my_loss 是函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存/加载 Tensorflow Keras 模型仅用于预测 的相关文章

  • 如何在 Tensorflow 对象检测 api 中评估预训练模型

    尝试使用最近发布的 Tensorflow 对象检测 API 并且想知道如何评估他们在模型动物园中提供的预训练模型之一 前任 如何获取该预训练模型的 mAP 值 自从script https github com tensorflow mod
  • TensorFlow.js 调整 3D 张量大小

    我有一个具有以下尺寸的 3D 张量 宽度 x 高度 x 深度 我需要将可变大小的体积调整为特定形状 例如 256 x 256 x 256 不幸的是 在 TensorFlow js 中 他们有一组用于调整大小的方法 例如tf image re
  • 打印出网络架构中每一层的形状

    在 Keras 中 我们可以如下定义网络 有什么办法可以输出每层之后的形状 例如 我想打印出以下形状inputs在定义行之后inputs 然后打印出形状conv1在定义行之后conv1 etc inputs Input 1 img rows
  • 无法从 DenseVariational 获得合理的结果

    我正在尝试使用以下大小的数据集 正弦曲线 进行回归问题500 首先 我尝试使用 2 个密集层 每个层有 10 个单元 model tf keras Sequential tf keras layers Dense 10 activation
  • 监控培训课程如何运作?

    我试图理解使用之间的区别tf Session and tf train MonitoredTrainingSession 以及我可能更喜欢其中之一 似乎当我使用后者时 我可以避免许多 杂务 例如初始化变量 启动队列运行程序或设置文件编写器以
  • keras LSTM 以正确的形状提供输入

    我从具有以下形状的 pandas 数据框中获取一些数据 df head gt gt gt Value USD Drop 7 Up 7 Mean Change 7 Change Predict 0 06480 2 0 4 0 0 000429
  • 使用自定义层运行 Keras 模型时出现问题

    我目前正在攻读学士学位论文FIIT STU https www fiit stuba sk en html page id 749 其主要目标是尝试复制和验证以下结果study http arxiv org abs 2006 00885 这
  • 调用 tf.linalg.inv 时,TensorFlow 崩溃并显示无法创建 cuSolverDN 实例

    我正在运行tensorflow tensoflow latest gpu码头集装箱 我可以运行简单的向量运算 例如 矩阵乘法没有问题 但是 当我运行以下最小示例时 import tensorflow as tf tf linalg inv
  • 如何使用 Keras 中的 Conv2D 在 5D 张量的最后三个维度上应用卷积?

    通常的输入张量Conv2DKeras 中是一个 4D 张量 其维度为batch size n n channel size 现在我有一个 5D 张量 其尺寸为batch size N n n channel size我想对中的每个 i 应用
  • Keras:加载多个模型并在不同线程中进行预测

    我正在使用带有张量流核心的 Keras 我想在构造函数中加载 2 个不同的模型 然后在不同的线程中进行预测 根据请求 我尝试在张量流图上下文中加载这些模型 但它不起作用 我的代码 from keras models import load
  • 支持 Nvidia CUDA 工具包 9.2

    Tensorflow gpu 绑定到 Nvidia CUDA Toolkit 的特定版本的原因是什么 当前版本似乎专门寻找 9 0 并且不适用于任何更高版本 例如 我安装了最新的 Toolkit 9 2 并将其添加到路径中 但 Tensor
  • Tensorflow GPU 设置:PyCharm 上的 CUDA 错误

    我在 Python3 MacOSX El Capitan 上安装了 TF 0 8 当为 TF 运行简单的测试代码时 我收到以下消息 ImportError dlopen Library Frameworks Python framework
  • Tensorboard 和 Dropout 层

    我有一个非常基本的查询 我制作了 4 个几乎相同 差异在于输入形状 的 CNN 并在连接到全连接层的前馈网络时合并了它们 几乎相同的 CNN 的代码 model3 Sequential model3 add Convolution2D 32
  • Tensorflow中的Tensor和Variable有什么区别

    有什么区别Tensor and Variable在张量流中 我注意到在这个 stackoverflow 答案 https stackoverflow com questions 38556078 in tensorflow what is
  • Tensorflow新Op CUDA内核内存管理

    我已经使用 GPU CUDA 内核在 Tensorflow 中实现了一个相当复杂的新 Op 该操作需要大量动态内存分配 这些变量不是张量 并且在操作完成后被释放 更具体地说 它涉及使用哈希表 现在我正在使用cudaMalloc and cu
  • Tensorflow如何生成不平衡组合数据集

    我对新数据集 API tensorflow 1 4 有疑问 我有两个数据集 我需要创建一个组合的不平衡数据集 即 每个批次应包含第一个数据集中一定数量的元素和第二个数据集中一定数量的元素 例如 dataset1 tf data Datase
  • Tensorflow seq2seq 获取序列隐藏状态

    我不久前才开始研究tensorflow 我正在研究 seq2seq 模型 并以某种方式让教程起作用 但我一直坚持获取每个句子的状态 据我了解 seq2seq 模型采用输入序列并通过 RNN 为序列生成隐藏状态 随后 模型使用序列的隐藏状态来
  • Tensorboard——High-level节点的计算时间与其子节点计算时间的总和不同

    继tutorial https www tensorflow org programmers guide graph viz在 TensorFlow 上 我试图使用张量板来理解运行时统计数据 我发现代表名称范围的高级节点的计算时间不等于其子
  • Keras:binary_crossentropy 和 categorical_crossentropy 混淆

    使用 TensorFlow 一段时间后 我阅读了一些 Keras 教程并实现了一些示例 我找到了几个使用卷积自动编码器的教程keras losses binary crossentropy作为损失函数 我想binary crossentro
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp

随机推荐