当前位置: 首页 > 知识库问答 >
问题:

同时使用图像和数字输入的神经网络

马俊
2023-03-14

为了对图像进行分类,我们使用了一个带有几个卷积层和几个全连接层的神经网络。

元数据有一些数字信息可以帮助对图像进行分类。有没有一种简单的方法可以将数值元数据连同卷积的输出一起输入到第一个全连接层中?有没有可能使用TensorFlow甚至更好的Keras来实现这一点?

共有2个答案

融唯
2023-03-14

是否有一种简单的方法将数值元数据与卷积的输出一起输入到第一个全连接层中?

是的,这是可能的。数字元数据和图像需要两个输入。

inp1 = Input(28,28,1) # image
inp2 = Input(30,) # numerical metadata (assume size of numerical feature is 30)

conv2d = Convolution2D(100,strides=1,padding='same')(inp1)
embedding = Embedding(1000)(inp2)

# ... rest of the network
prev_layer = Concatenation(axis=-1)[feature_image, feature_metadata]            
prediction = Dense(100)(prev_layer)

model = Model(inputs=[inp1, inp2], outputs=prediction)

在这里查看keras中的完整示例。

卫才哲
2023-03-14

您可以在另一个分支中处理数值数据,然后将结果与CNN分支合并,然后将合并的张量传递给几个最终的密集层。以下是解决方案的总体示意图:

# process image data using conv layers
inp_img = Input(shape=...)
# ...

# process numerical data
inp_num = Input(shape=...)
x = Dense(...)(inp_num)
out_num = Dense(...)(x)

# merge the result with a merge layer such as concatenation
merged = concatenate([out_conv, out_num])
# the rest of the network ...

out = Dense(num_classes, activation='softmax')(...)

# create the model
model = Model([inp_img, inp_num], out)

当然,要构建这样的模型,您需要使用Keras函数API。因此,我强烈建议为此阅读官方指南。

 类似资料:
  • 在Francois Chollet的《使用Python进行深度学习》一书中,我发现了一段代码,输入形状为784,单位为32? 我想知道他们有什么不同。 下面是确切的代码:

  • 我正在研究一个深度学习问题,它需要我有一个深度学习模型,该模型具有输入图像和输出另一张图像。现在,输入和输出图像具有不同的维度,因此我不能使用自动编码器。我已经尝试构建一个非常简单的卷积神经网络,它有一个最终的输出密集层,该层以输出图像的宽度和高度相乘为“单位”参数。然而,我下面附加的这个网络没有成功。我的问题是: CNN是不是像我这样处理这个问题的合适的深度学习网络 如果没有,我还可以尝试其他什

  • 我用两个输出神经元会得到更好的结果吗?(一个激活为“是音乐”,另一个激活为“不是音乐”)。 (您可以在这里看到这方面的C++源代码:https://github.com/mcmenaminadrian/musonet--尽管在任何给定的时间,公开回购中的内容可能并不完全是我在机器上使用的内容。)

  • 在本教程中,我们将构建一个TensorFlow.js模型,用卷积神经网络对手写数字进行分类. 首先,我们将通过“查看”成千上万的手写数字图像及其标签来训练分类器. 然后我们将使用模型从未见过的测试数据来评估分类器的准确性. 先决条件 本教程假设您熟悉TensorFlow.js的基础构建模块 (张量,变量,和操作),以及优化器和损失的概念. 有关这些主题的更多背景信息, 我们建议在本教程之前完成以下

  • 我正在尝试运行一个CNN(卷积神经网络),具有1通道/灰度图像,大小为28x28像素。当我尝试训练模型时,它说: ValueError:图层sequential_5输入0与图层不兼容:: 预期min_ndim=4,发现ndim=3。完整形状收到:[无,28,28]

  • 我对TensorFlow和LSTM架构相当陌生。我在计算数据集的输入和输出(x_train、x_test、y_trainy_test)时遇到了问题。 我最初输入的形状: X_列车:(366,4) Ytrain和Ytest是一系列股票价格。Xtrain和Xtest是我想学习的四个预测股价的功能。 这是产生的错误: -------------------------------------------