当前位置: 首页 > 知识库问答 >
问题:

Keras:为另一个模型添加图层

艾俊晖
2023-03-14

我需要向现有模型添加层。然而,我需要在“主模型级别”添加层,也就是说,我不能使用经典的函数方法。例如,如果我使用以下内容:

from keras.layers import Dense,Reshape, Input
inp = Input(shape=(15,))
d1 = Dense(224*224*3, activation='linear')(inp)
r1 = Reshape(input_shape)
from keras import Model
model_mod = r1(d1)
model_mod = mobilenet(model_mod)
model_mod = Model(inp, model_mod)

我获得:

Layer (type)                 Output Shape              Param #   
=================================================================
input_5 (InputLayer)         (None, 15)                0         
_________________________________________________________________
dense_4 (Dense)              (None, 150528)            2408448   
_________________________________________________________________
reshape_4 (Reshape)          (None, 224, 224, 3)       0         
_________________________________________________________________
mobilenet_1.00_224 (Model)   (None, 1000)              4253864 

因此,我获得了一个带有嵌套子模型的模型。相反,我将嵌套子模型的层(移动网)“添加”到新的顶层(即在reshape_4之后)。我尝试使用:

modelB_input = modelB.input
for layer in modelB.layers:
    if layer == modelB_input:
        continue
    modelA.add(layer)  

它适用于简单的顺序模型(如vgg、mobilenet),但对于连接不严格顺序的更复杂模型(如inception、resnet),该代码并不好。有什么想法吗?

共有1个答案

向弘懿
2023-03-14

您可以使用keras。图层。串联以这样合并两个模型:

first = Sequential()
first.add(Dense(1, input_shape=(2,), activation='sigmoid'))

second = Sequential()
second.add(Dense(1, input_shape=(1,), activation='sigmoid'))
 
merged = Concatenate([first, second])

(摘自:如何连接keras中的两层?)

尽管此示例使用了keras。型号。顺序的,它也适用于其他模型或层。

您还可以查看:https://keras.io/api/layers/merging_layers/concatenate/

 类似资料:
  • 在本节中,您将添加一些类,这些类用于管理数据库中的电影。这些类是ASP.NET MVC 应用程序中的"模型(Model)"。 您将使用.NET Framework 数据访问技术Entity Framework,来定义和使用这些模型类。Entity Framework(通常称为 EF) 是支持代码优先 (Code First) 的开发模式。代码优先允许您通过编写简单的类来创建对象模型。(相对于"原始

  • 我正在写一个库在Java,我需要转换(地图)一个模型到另一个,反之亦然。我所做的是实现了一个包含两个泛型类型的抽象转换器类,包含convertTo和convertFrom方法,并从它扩展了我的转换器。 但是对于特定的实现,我可能还需要其他对象来进行转换,我不知道什么是实现这些东西的最佳实践。我想过适配器和门面,但他们似乎不符合我的要求。有没有一个设计模式我可以用来做这个?提前谢谢你。

  • 如何添加mathwidget作为一个子视图内另一个UIViewController目前,mathwidget工作正常时,加载UIViewController. let subViewEE=MathWidgetClassName()self.present(subViewEE,动画:真,完成:零) 但是,当我试图将其添加为当前视图控制器中的子视图时,什么都没有显示,下面是代码: 有人能帮助在当前UI

  •        LSV支持添加gcm,3ds,obj格式的模型,可以通过将其倒入LSV后进行一系列的操作。        首先,通过点击“添加模型”选择所需要添加的模型文件:        之后可以分别对模型的各项参数进行设置,如旋转、缩放以及其空间信息等。

  •        LSV支持添加gcm,3ds,obj格式的模型,可以通过将其倒入LSV后进行一系列的操作。        首先,通过点击“添加模型”选择所需要添加的模型文件:        之后可以分别对模型的各项参数进行设置,如旋转、缩放以及其空间信息等。