首页 > 解决方案 > 使用来自 niftynet 的预训练模型时遇到问题

问题描述

我想使用dense_vnetniftynet 上可用的模型进行 2 类分割,该模型最初进行 9 类分割

我试图通过根据以下建议在配置文件中进行更改来仅重新训练最后一层:HOw to fine tune niftynet pretrained model for custom data

vars_to_restore = ^((?!DenseVNet\/(skip_conv|fin_conv)).)*$

num_classes = 2

错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError:分配需要两个张量的形状匹配。lhs shape= [2] rhs shape= [9] [[{{node save/Assign_8}} = Assign[T=DT_FLOAT, class=["loc:@DenseVNet/conv/conv /b"], use_locking=true, validate_shape=true, device="/job:localhost/replica:0/task:0/device:CPU:0"](DenseVNet/conv/conv /b, save/RestoreV2:8)]]

标签: deep-learningtransfer-learningniftynet

解决方案


看起来您已经恢复了太多层,其中一些仍然设计为分类为 9 个类。检查体系结构并排除所有旨在分类为 9 类的层的还原。


推荐阅读