【发布时间】:2026-01-20 13:15:01
【问题描述】:
我正在从事一个涉及动态过滤器的语义分割项目,以学习多尺度表示。
为了创建这些过滤器,我使用了 Unet 主干网络并从瓶颈层提取特征图。 特征图的大小为 H x W X 512,其中 H 是特征图的高度,W 是宽度,512 是通道数(图)。
这些特征被传递到 1x1 卷积以将过滤器的数量减少到 H X W X 128,并且这些特征也被传递到自适应池化层以将 H X W X 512 减少到 k x k x 512,其中 k 是过滤器的大小(i.例如 5)。 然后过滤器也通过一个 1 x 1 卷积将其减小到 128。
这给了我一个特征图 f = H x W x 128 和一个大小为 k x k x 128 的过滤器内核 g。
现在我想将 f 与 g 进行卷积,并在 keras 中尝试了以下操作:
conv = Conv2D(128, kernel_size = 5, kernel_initializer = g, trainable = False)(f)
不幸的是,这不起作用,我只是收到一条错误消息:
"无法解释初始化标识符:Tensor("strided_slice:0", shape = (5,5,128), dtype = float32)"
现在我想知道我做错了什么?
另外不得不提的是,平均池化/1x1 conv后输出tnesor的形状是(?, 5, 5, 128),在哪里?是批量大小。 获取内核我尝试过类似的东西:
g = g[0,:,:,:]
感谢您的建议,
干杯,
迈克尔
【问题讨论】:
标签: tensorflow keras deep-learning