我正在使用CNN(使用典型的CNN)进行(医学)图像分析和预测。我像这样向CNN网络添加了一组元数据,它似乎可以工作: 网络= input_data(形状= [..],..) 元数据_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 ()
...
谢谢。
答案 0 :(得分:0)
我认为您在这里谈论的是层级连接。至少那是我在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 ()
...
您的方法可能会得到不同的结果,但是我怀疑不会有太大的区别。如果您想知道,请同时尝试。