使用 CNTK 和迁移学习访问较高层中的较低层输出
Access lower layer output in higher layer using CNTK and transfer learning
我正在寻找一种使用 CNTK 加载 VGG16 模型将较低层输出转发到较高层的方法。
我的问题背景是:
我重新实现了 Fully Convolutional Networks for Semantic Segmentation but then I ran into some problems: Starting with this example 的某些部分 我首先用完全卷积替换了完全连接的层,并将模型定义部分中的序列分割成块,在这些块中我可以简单地访问 pool3
和 pool4
以便稍后在例如中使用。 Convolution2D((1,1), num_classes, name='score_pool4')(pool4)
。这工作正常,但在构建模型后我注意到,我需要实现一种自己的方式来读取批次,因为内置 reader 现在不支持 2D 标签。现在我只是使用 OpenCV 读取图像并将 training_session(...).train()
替换为 for 循环和 trainer.train_minibatch({model['features']: my_loaded_features, model['labels']: my_2D_labels})
这很好 但是 因为删除了 training_session
部分我不知道在哪里可以应用现有的 VGG16 权重。
我的问题是:
我搜索了 transfer learning examples,那些家伙使用 C.load_model(...)
加载模型,然后克隆所需的层,但现在我想知道如何访问 cloned_layers-> pool4(在加载模型的中间)如果我也想在更深的层中使用它。
我尝试了 Convolution2D((1,1), num_classes, name='score_pool4')(cloned_layers.find_by_name('pool4'))
,但由于 "unknown shape information" 在使用的权重变量中,我在学习者初始化时收到了一些错误消息。
那么我如何访问加载模型中的那些层以供以后(更深入)使用?
感谢阅读(也许还有帮助)!
如果您要阅读自定义数据。有两个关于构建您自己的阅读器的教程。 https://cntk.ai/pythondocs/manuals.html
关于克隆部分网络 - here is a link 到 Whosebug 上另一个 post 具有示例代码的
我正在寻找一种使用 CNTK 加载 VGG16 模型将较低层输出转发到较高层的方法。
我的问题背景是:
我重新实现了 Fully Convolutional Networks for Semantic Segmentation but then I ran into some problems: Starting with this example 的某些部分 我首先用完全卷积替换了完全连接的层,并将模型定义部分中的序列分割成块,在这些块中我可以简单地访问 pool3
和 pool4
以便稍后在例如中使用。 Convolution2D((1,1), num_classes, name='score_pool4')(pool4)
。这工作正常,但在构建模型后我注意到,我需要实现一种自己的方式来读取批次,因为内置 reader 现在不支持 2D 标签。现在我只是使用 OpenCV 读取图像并将 training_session(...).train()
替换为 for 循环和 trainer.train_minibatch({model['features']: my_loaded_features, model['labels']: my_2D_labels})
这很好 但是 因为删除了 training_session
部分我不知道在哪里可以应用现有的 VGG16 权重。
我的问题是:
我搜索了 transfer learning examples,那些家伙使用 C.load_model(...)
加载模型,然后克隆所需的层,但现在我想知道如何访问 cloned_layers-> pool4(在加载模型的中间)如果我也想在更深的层中使用它。
我尝试了 Convolution2D((1,1), num_classes, name='score_pool4')(cloned_layers.find_by_name('pool4'))
,但由于 "unknown shape information" 在使用的权重变量中,我在学习者初始化时收到了一些错误消息。
那么我如何访问加载模型中的那些层以供以后(更深入)使用?
感谢阅读(也许还有帮助)!
如果您要阅读自定义数据。有两个关于构建您自己的阅读器的教程。 https://cntk.ai/pythondocs/manuals.html
关于克隆部分网络 - here is a link 到 Whosebug 上另一个 post 具有示例代码的