您当前的位置:首页 > IT编程 > 深度学习
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch |

自学教程:keras将两个独立的模型融合起来(多输入单输出)

51自学网 2020-11-15 21:33:57
  深度学习
这篇教程keras将两个独立的模型融合起来(多输入单输出)写得很实用,希望能帮到您。

keras将两个独立的模型融合起来(多输入单输出)

将两个独立的模型融合成一个

参考:keras实现多个模型融合
优点:可以给两个模型单独赋予权重
想法:用在迁移学习中时,可以先预训练好其中一个模型,保存权重,再载入到总的模型中

import keras
from keras.models import Model
from keras.layers import Input,Dense,PReLU,Dropout #PRelU为带参数的ReLU
  • 1
  • 2
  • 3

第一个模型:(分支网络之一)

def model1(inp):
    x1 = keras.layers.Dense(8, activation='relu')(inp)
    model=Model(input=inp,outputs=x1)
    return model
  • 1
  • 2
  • 3
  • 4

第二个模型:(分支网络之二)

def model2(inp2):
    x2 = keras.layers.Dense(8, activation='relu')(inp2)
    model=Model(input=inp2,outputs=x2)
    return model
  • 1
  • 2
  • 3
  • 4

模型融合(在这里可以载入权重):

def merge_model():
    inp1 = Input(shape=(10,4))
    inp2 = Input(shape=(16,4))
    model_1 = model1(inp1)
    model_2 = model2(inp2)
    
    
    #model_1.load_weights('model_1_weight.h5')#这里可以加载各自权重
    #model_2.load_weights('model_2_weight.h5')#可以是预训练好的模型权重(迁移学习)

    r1=model_1.output
    r2=model_2.output
    x = keras.layers.Concatenate(axis= 1)([r1, r2])
    model=Model(input=[inp1,inp2],outputs=x)
    return model    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
merged_model = merge_model()
merged_model.summary()

计算机视觉和模式识别领域的期刊
SENet(Squeeze-and-Excitation Networks)网络详解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1