连接或级联多个预训练的 keras 模型

2024-04-02

我正在尝试构建一组串联或级联(实际上甚至不知道这是否是正确的定义)的模型。 为了简单起见,我的基本模型如下所示。

                              ----Input----
                                    |
                                  L1-1
                                    |  
                                  L1-2
                                    |
                                  Dense
                                    |
                                 Softmax

我对其中 7 个模型进行了交叉验证训练,并尝试以级联方式包装它们,例如:

            -----------------------Input---------------------
            |       |       |       |       |       |       |       
          L1-1    L1-2    L1-3    L1-4     L1-5   L1-6    L1-7
            |       |       |       |       |       |       |
          L2-1    L2-2    L2-3    L2-4     L2-5   L2-6    L2-7
            |       |       |       |       |       |       |
            |_______|_______|_______|_______|_______|_______|
            |                  Concatenated                 |
            |___________________Dense Layer_________________|
                                    |
                                 SoftMax

每一层都有512神经元,所以最终连接的密集层总共有7*512=3584神经元。

我所做的是:

  • 训练所有模型并将它们保存在名为的列表中models[].
  • 弹出所有模型中的底部 Softmax 层。

然后我尝试连接它们但收到错误:

Layer merge was called with an input that isn't a symbolic tensor. 

形成级联后我要做的就是冻结所有中间层,除了Concatenated Dense Layer并稍微调整一下。但我被困在所有细节中所解释的地方。


为此,您需要使用函数式 API 模型。这种模型适用于张量。

首先定义一个公共输入张量:

inputTensor = Input(inputShape)

然后,您使用此输入调用每个模型以获取输出张量:

outputTensors = [m(inputTensor) for m in models]

然后将这些张量传递到连接层:

output = Concatenate()(outputTensors) 
output = Dense(...)(output)    
#you might want to use an Average layer instead of these two....

output = Activation('softmax')(output)

最后,定义从起始张量到结束张量的完整模型:

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

连接或级联多个预训练的 keras 模型 的相关文章

  • Keras:嵌入 LSTM

    在 LSTM 的 keras 示例中 用于对 IMDB 序列数据进行建模 https github com fchollet keras blob master examples imdb lstm py https github com
  • Keras 使用 mask 冻结特定权重

    我是 Keras 的新人 我想实现一个并非所有权重都会更新的层 例如 在下面的代码中 我想要dilation图层将以某些中心权重永远不会更新的方式进行更新 例如 每个特征矩阵 共 1024 个 的形状dilation层是448 448和一块
  • Keras TimeDistributed Conv1D 错误

    这是我的代码 cnn input Input shape cnn max length emb output Embedding num chars 1 output dim 32 input length cnn max length t
  • 连接字符串:两个字符串列表的“乘法”[重复]

    这个问题在这里已经有答案了 对于字符串列表 将乘法运算定义为连接 l1 aa bb cc l2 11 22 l3 l1 op l2 预期输出 l3 aa11 aa22 bb11 bb22 cc11 cc22 我们可以简单地使用 for l
  • Keras 自定义损失函数:访问当前输入模式

    在 Keras 带有 Tensorflow 后端 中 当前输入模式可用于我的自定义损失函数吗 当前输入模式被定义为用于产生预测的输入向量 例如 请考虑以下情况 X train X test y train y test train test
  • 合并 Pandas Dataframe:如何添加列和替换值

    我有一个数据帧 df1 并想要合并其他 许多 数据帧 df2 以便 合并发生在匹配的 多 索引上 如果缺失 将创建新列 如果列已存在 则替换值 正确的 pandas 操作是什么以及使用什么参数 我查看了 concat join merge
  • 如何将所有批量数据加载到 Keras(Theano 后端)的 GPU 内存中?

    Keras将数据批量加载到GPU上 作者注here https github com fchollet keras issues 249 对于小型数据集 这是非常低效的 有没有办法修改 Keras 或直接调用 Theano 函数 在 Ker
  • 为 Keras 编写自定义数据生成器

    我将每个数据点存储在 npy 文件中 其中shape 1024 7 8 我想通过类似的方式将它们加载到 Keras 模型中ImageDataGenerator 所以我编写并尝试了不同的自定义生成器 但它们都不起作用 这是我改编的一个this
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File
  • 使用基于 ConvLSTM2D 的 Keras 模型从较低分辨率图像估计高分辨率图像

    我正在尝试使用以下内容ConvLSTM2D从低分辨率图像序列估计高分辨率图像序列的架构 import numpy as np scipy ndimage matplotlib pyplot as plt from keras models
  • 使用 Keras 的 ImageDataGenerator 预测单个图像

    我对深度学习很陌生 所以请原谅我这个可能很简单的问题 我训练了一个网络来分类positive and negative 为了简化图像生成和拟合过程 我使用了ImageDataGenerator和fit generator函数 如下图 imp
  • Keras 获取中间层的输出

    what my model looks like defining the model archictecture model Sequential 1st conv layer model add Conv2D 32 5 5 activa
  • Fitnesse Slim:如何连接符号

    如何将符号与两侧的文本连接起来 例如 Prefix GAR 多变的 todayDate Suffix 1 GAR todayDate 1 这将评估为 GAR 07202012 1 在 Fitnesse 中运行测试时 似乎串联正在起作用 GA
  • Tensorflow:logits 和标签必须具有相同的第一维

    我是张量流新手 我想改编 MNIST 教程https www tensorflow org tutorials layers https www tensorflow org tutorials layers用我自己的数据 40x40 的图
  • ValueError:“连接”层需要具有匹配形状的输入(连接轴除外)

    我正在尝试为我的项目构建 Pix2Pix 并收到错误 值错误 Concatenate层需要具有匹配形状的输入 除了连接轴之外 获得输入形状 None 64 64 128 None 63 63 128 生成器是一个 U 网模型 我的输入高度
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • Keras 序列模型中的数据增强层

    我正在尝试将数据增强作为一个层添加到模型中 但我遇到了我认为是形状问题 我也尝试在增强层中指定输入形状 当我取出data augmentation模型中的图层运行良好 preprocessing RandomFlip horizontal
  • Keras 服装回调。生成精确召回时,我在 _flow_index 中收到错误

    我正在使用 Keras 训练二元分类器 我想在每个时期后生成 precision score 和 recall score 以便更深入地分析训练 在互联网上我找到了教程 帮助 例如 https medium com thongonary h
  • 省略号列表[...]并将列表连接到自身[重复]

    这个问题在这里已经有答案了 EDIT 我在最初的例子中很粗心 当我添加列表时不会发生该行为A本身 而是当我添加一个列表时含有 list A to A本身 请参阅下面更正的示例 我试图理解省略号如何列出 那些显示为 当你有一个列表引用本身时发
  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层

随机推荐