时间:2021-05-22
举例
base_model = ResNet50(weights=‘imagenet', include_top=True)
print(base_model.summary())
得到这个结果
补充知识:使用keras,在load_model()时,出现NameError: name '***' is not defined
是因为在构造模型是,使用了自定义的层,如Lambda()
# 文本相似度评估方式def exponent_neg_manhattan_distance(sent_left, sent_middle, sent_right): '''基于曼哈顿空间距离计算两个字符串语义空间表示相似度计算''' return ((K.exp(-K.sum(K.abs(sent_left - sent_middle), axis=1, keepdims=True)) - K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))) + 1) / 2 def bilstm_siamese_model(): '''搭建孪生网络''' #可以在这里调参 embedding_layer = Embedding(VOCAB_SIZE + 1, EMBEDDING_DIM, weights=[embedding_matrix], input_length=MAX_LENGTH, trainable=True, #原本为False mask_zero=True) #输入层 left_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="left_x") #(?, 25) middle_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="middle_x") #(?, 25) right_input = Input(shape=(MAX_LENGTH,), dtype='float32', name='right_x') #嵌入层 encoded_left = embedding_layer(left_input) #(?, 25, 300) encoded_middle = embedding_layer(middle_input) #(?, 25, 300) encoded_right = embedding_layer(right_input) # print(encoded_left) #孪生网络 shared_lstm = create_base_network(input_shape=(MAX_LENGTH, EMBEDDING_DIM)) left_output = shared_lstm(encoded_left) middle_output = shared_lstm(encoded_middle) right_output = shared_lstm(encoded_right) # 文本相似度评估方式 distance = Lambda(lambda x: exponent_neg_manhattan_distance(x[0], x[1], x[2]),output_shape=lambda x: (x[0][0], 1))([left_output, middle_output, right_output]) #第二个lambda函数的输入参数不清楚,x[0][0] print('distance',distance) model = Model([left_input, middle_input, right_input], distance) model.compile(loss='binary_crossentropy', optimizer='nadam', metrics=['accuracy']) model.summary() return model虽然之前已经定义好了exponent_neg_manhattan_distance(),但是在load_model()依然会报NameError: name 'exponent_neg_manhattan_distance' is not defined
解决办法:
在load_model的时候,加一个custom_objects参数就可以了,即
model = load_model(model_path,custom_objects={'exponent_neg_manhattan_distance': exponent_neg_manhattan_distance}) #对自定义层一定要说明
注:用Google搜bug比用baidu搜质量会高不少。
以上这篇查看keras各种网络结构各层的名字方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在深度学习中,如果我们想获得某一个层上的featuremap,就像下面的图这样,怎么做呢?我们的代码是使用keras写的VGG16网络,网络结构如图:那么我们随
网络结构类型分为三类: 1、星型网络结构 在星型网络结构中各个计算机使用各自的线缆连接到网络中,因此如果一个站点出了问题,不会影响整个网络的运行。星型网络结
keras提供简单方便的模型可视化工具,只需一行代码就可以用框图的形式可视化出你搭建的网络结构。对于复杂网络而言,这个工具就是个神器呀。这篇文章是解决win10
在Keras中有两种深度学习的模型:序列模型(Sequential)和通用模型(Model)。差异在于不同的拓扑结构。序列模型Sequential序列模型各层之
网络连结。网络结构对于网络功能起着至关重要的作用,许多学者都力图从千变万化的网络中找出统一的结构规律来改进和优化网络功能。对于社交网站而言,网络结构是个体在社交