Python 使用CNTK和转移学习在高层访问下层输出

Python 使用CNTK和转移学习在高层访问下层输出,python,deep-learning,cntk,Python,Deep Learning,Cntk,我正在寻找一种方法,通过使用CNTK加载VGG16模型,将较低层的输出转发到较高层 我问题的背景是: 我重新实现了的一些部分,但随后遇到了一些问题:首先,我用完全卷积替换了完全连接的层,并将模型定义部分中的序列分割成块,在块中,我可以简单地访问pool3和pool4,以便稍后在eg.coulsion2d((1,1)中使用,num_classes,name='score_pool4')(pool4)。这很好,但在构建模型之后,我注意到,我需要实现一种自己的方式来读取批,因为内置阅读器目前不支持二维

我正在寻找一种方法,通过使用CNTK加载VGG16模型,将较低层的输出转发到较高层

我问题的背景是:

我重新实现了的一些部分,但随后遇到了一些问题:首先,我用完全卷积替换了完全连接的层,并将模型定义部分中的序列分割成块,在块中,我可以简单地访问
pool3
pool4
,以便稍后在eg.
coulsion2d((1,1)中使用,num_classes,name='score_pool4')(pool4)
。这很好,但在构建模型之后,我注意到,我需要实现一种自己的方式来读取批,因为内置阅读器目前不支持二维标签。现在,我只需使用OpenCV读取图像,并将
training_会话(…).train()替换为for循环和
trainer.train_小批量({model['features']:my_loaded_features,model['labels']:my_2D_labels})
这很好但是由于删除了
培训课程
部分,我不知道在哪里可以应用现有VGG16权重

我的问题是:

我用
C.load\u model(…)
搜索了那些家伙在哪里加载模型,然后克隆了所需的层,但现在我想知道如果我还想在更深的层中使用它,我如何访问克隆的层->池4(在加载的模型中间)

我尝试了
卷积2D((1,1),num_classes,name='score_pool4')(克隆的\u层。通过\u name('pool4')查找\u)
,但在学习者初始化时,由于所用权重变量中的“未知形状信息”,我最终收到了一些错误消息

那么,我如何访问加载模型中的这些层以供以后(更深入)使用呢


谢谢你的阅读(也许还有帮助)

如果您希望读取自定义数据。有两个教程介绍如何构建自己的读者

关于克隆网络的一部分-到StackOverflow上的另一篇文章,该文章包含示例代码