首页 > 解决方案 > 向 tflearn CNN 添加多个元数据

问题描述

我正在使用 CNN 进行(医学)图像分析和预测,使用典型的 CNN。我像这样向 CNN 网络添加了一组元数据,它似乎有效:network = input_data(shape=[..],..) metadata_1 = input_data(shape=[..],..)

network = <convolutions and some max pooling>
network = fully_connected(network, 100,..>
network = merge (network, metadata_1)
network = fully_connected ()
...

现在,我可以扩展它来做到这一点吗?有人有经验吗?和陷阱?

network = input_data(shape=[..],..)
metadata_1 = input_data(shape=[..],..)    
...
metadata_n = input_data(shape=[..],..)
network = <convolutions and some max pooling>
network = fully_connected(network, 100,..>
network = merge (network, metadata_1)
...
network = merge (network, metadata_n)
network = fully_connected ()
...

提前致谢。

标签: tensorflowimage-processingmetadataconv-neural-network

解决方案


我认为您在这里谈论的是层级联。至少那是我在我的 CNN 中使用的。

现在,在您的情况下,您将元数据添加到 n 次连续层中。这会产生 n 个额外的层,这可能会占用大量内存。我发现更直观的是使用concat层并将 conv 和所有元数据层连接在一起。

network = <convolutions and some max pooling>
network = fully_connected(network, 100,..>  
network = concat (network, metadata_1, metadata_2, ..., metadata_n)
network = fully_connected ()
...

您的方法可能会得到不同的结果,但我怀疑不会有太大差异。如果你想知道你应该尝试两者。


推荐阅读