使用来自 niftynet 的预训练模型时遇到问题

Trouble using pre-trained model from niftynet

我想使用 niftynet 上可用的 dense_vnet 模型进行 2 class 分割,该模型最初进行 9 class 分割

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

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

num_classes = 2

错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. 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)]]

看来你恢复的层数太多了,有些还是设计成9分类类。检查架构并排除所有旨在分类为 9 类 的层的恢复。