tensorflow - 向 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 ()
...
提前致谢。
解决方案
我认为您在这里谈论的是层级联。至少那是我在我的 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 ()
...
您的方法可能会得到不同的结果,但我怀疑不会有太大差异。如果你想知道你应该尝试两者。
推荐阅读
- html - 如何处理 HTML 输入字段中 Curly/Smart 双引号(”) 和 Straight 双引号(”) 之间的冲突
- android - 有没有办法在 Slider 上设置自定义定义的离散刻度?
- angular - 指令可以在同一元素上设置另一个指令吗?
- c# - 如何在 C# 中解析和使用文本文件中的行
- osmnx - Osmnx:通过gps坐标获取位置
- python - Selenium 本地存储问题:无法读取属性
- javascript - 如何重用链式函数 Javascript + Typescript
- django - 如何为 Django 表单文本输入值使用动态变量?
- java - 参考 @Scheduled by SpEL 中的 bean.property
- flutter - 在颤动中将登录信息保存到苹果钥匙串