deep-learning - 使用来自 niftynet 的预训练模型时遇到问题
问题描述
我想使用dense_vnet
niftynet 上可用的模型进行 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)]]
解决方案
看起来您已经恢复了太多层,其中一些仍然设计为分类为 9 个类。检查体系结构并排除所有旨在分类为 9 类的层的还原。
推荐阅读
- javascript - 单次迭代的 Javascript 数据转换
- laravel-8 - Laravel 8 Db 连接问题
- sql - 在 SQLite 中,如何查询两个表中更改的值,并将匹配的值设为 NULL
- cypress - 如果找到零测试文件,有没有办法防止赛普拉斯失败?
- c# - Visual Studio C#:无法运行自动生成的 IntelliTest 代码?
- java - 如何混淆 Spring Boot 应用程序及其内部依赖项?
- linux - 由于文件权限,GIT 无法在 git pull 上静默更新文件
- python - 如何在 Python 中将 JSON 行数据拆分为多列
- javascript - 可以使用枚举来限制值吗?
- sql - 如何使用 sql 找到两个日期之间有可用工作时间的团队?