如何将额外的数据与图像一起提供给CNN?



注意:我正在使用TensorFlow来创建我的神经网络。

信息:我有一个带有一些额外数据的图像,我想将其输入到我的神经网络中(网络的前几层是卷积层(。

问题:额外的数据只是描述图像的几个整数,而不是图像,所以我无法在不重复的情况下将整数输入网络,直到它们与图像的高度匹配并将重复整数的数组附加到图像的一侧。这样做会提供很多不必要的数据,因为它是重复的并且非常不优雅。

我的问题:有没有办法在卷积层之后将数据添加到神经网络中,这样额外的数据就可以跳过卷积层,在图像已经处理并展平后直接进入带有图像的密集层?如果这是不可能的,是否有更好的方法将额外的数据与图像一起传递到具有卷积层的神经网络中?

Tensorflow支持具有多个输入的深度网络。下面是一个带有图像和矢量输入的网络的玩具示例:

from tensorflow.keras.layers import Input, Conv2D, Dense, Activation, Flatten, concatenate
from tensorflow.keras.models import Model
image_input = Input((64,64,3))
x = Conv2D(32, kernel_size=8, strides=4)(image_input)
x = Flatten()(x)
x = Dense(64)(x)
vector_input = Input((10,))
y = Dense(64)(vector_input)
z = concatenate([x, y])
z = Dense(64)(z)
z = Activation('softmax')(z)
model = Model([image_input, vector_input], [z])

最新更新