当前位置: 首页 > 面试题库 >

如何使用keras.applications中的模型进行转移学习?

云瑞
2023-03-14
问题内容

我想在Keras中获得预训练的VGG16模型,删除其输出层,然后放置一个具有适合我的问题的类数的新输出层,然后使其适合新数据。出于这个原因,我试图在这里使用该模型:https
:
//keras.io/applications/#vgg16,但是由于它不是顺序的,所以我不能只是model.pop()。从图层弹出并添加它也是行不通的,因为在预测中它仍然希望使用旧形状。我该怎么办?有没有办法将这种类型的模型转换为Sequential


问题答案:

您可以使用pop()on model.layers,然后使用model.layers[-1].output来创建新层。

例:

from keras.models import Model
from keras.layers import Dense,Flatten
from keras.applications import vgg16
from keras import backend as K

model = vgg16.VGG16(weights='imagenet', include_top=True)

model.input

model.summary(line_length=150)

model.layers.pop()
model.layers.pop()

model.summary(line_length=150)

new_layer = Dense(10, activation='softmax', name='my_dense')

inp = model.input
out = new_layer(model.layers[-1].output)

model2 = Model(inp, out)
model2.summary(line_length=150)

或者,您可以使用include_top=False这些模型的选项。在这种情况下,如果您需要使用平坦化图层,则需要传递图层input_shape

model3 = vgg16.VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
model3.summary(line_length=150)

flatten = Flatten()
new_layer2 = Dense(10, activation='softmax', name='my_dense_2')

inp2 = model3.input
out2 = new_layer2(flatten(model3.output))

model4 = Model(inp2, out2)
model4.summary(line_length=150)


 类似资料:
  • 问题内容: 您如何使用Paramiko传输完整目录?我正在尝试使用: 这给了我这个错误- 问题答案: 您将需要像使用python在本地一样进行此操作(如果您未使用Shutils)。 结合,和和。您可能还需要检查每个文件和目录,具体取决于您是否要解析符号链接。

  • 考虑为现有Azure Cosmos DB帐户启用地理冗余?但是如何模拟故障转移来进行测试呢 启用地理冗余后,考虑数据一致性有多重要? 一般性建议是什么 考虑地理冗余或数据一致性所需的任何代码更改?我们使用的是cosmosdb-sqlapi。

  • 我们在每个节点上都有3个redis服务器和sentinel(由Linux人员设置):devredis01:6383(主)devredis02:6383(从)devredis03:6383(从)devredis01:26379(sentinel)devredis02:26379(sentinel)devredis03:26379(sentinel) 我能够将StackExchange客户机连接到re

  • 我正在尝试搜索贝宝的api,以便将资金从贝宝帐户转移到银行帐户,这意味着ACH付款。 搜索后,我找到了这个pdf文件。但我找不到api代码。 ACH付款可以在PayPal吗? 如果是,如何在php中做到这一点? 我正在寻找的是帮助我付款的文件,所以任何帮助都是值得赞赏的。 旁注:不久前,我用Stripe Api完成了ACH支付。其中,我在stripe帐户中创建一个接收人,然后将钱转到这个接收人。那

  • 本文向大家介绍Pytorch模型迁移和迁移学习,导入部分模型参数的操作,包括了Pytorch模型迁移和迁移学习,导入部分模型参数的操作的使用技巧和注意事项,需要的朋友参考一下 1. 利用resnet18做迁移学习 结果输出: input_tensor: torch.Size([1, 3, 100, 100]) out: torch.Size([1, 1000]) tensor([ 0.4010,