首页 文章

keras神经网络中的多种输入类型

提问于
浏览
1

作为一个例子,我想训练一个神经网络来预测图片的位置(经度,纬度),图像,温度,湿度和一年中的时间作为模型的输入 .

我的问题是,将这些附加信息添加到cnn的最佳方法是什么?我应该将数字输入与最后一个密集层或开头的cnn合并吗?我应该编码数值(温度,湿度和一年中的时间)吗?

任何信息,资源,来源都将非常感谢,提前感谢 .

2 回答

  • 0

    您可以单独处理数字输入,然后在进行最终预测之前将它们合并:

    img_in = Input(shape=(width, height, channels))
    # Your usual CNN whatever it may be
    img_features = SomeCNN(...)(img_in)
    aux_in = Input(shape=(3,))
    aux_features = Dense(24, activation='relu')(aux_in)
    # Possibly add more hidden layers, then merge
    merged = concatenate([img_features, aux_features])
    out = Dense(num_locations, activation='softmax')(merged)
    model = Model([img_in, aux_in], out)
    model.compile(loss='categorical_crossentropy', ...)
    

    从本质上讲,您将它们视为单独的输入并学习有用的功能,这些功能可以让您的模型进行预测 . 如何编码数字输入实际上取决于它们的类型 . 对于像温度这样的连续输入,您可以在-1,1之间进行标准化,对于离散输入,常常是单热输入 . 这是一个快速guide .

  • 2

    如果你想预测这四个特征的基础,那么我建议去cnn rnn

    所以将图像提供给cnn并在之后进行logits制作类似的序列

    logits=np.array(output).flatten()
    

    [[logits] , [temperature], [humidity] , [time_of_year]] 并将其提供给

    rnn,Rnn将它视为序列输入 .

相关问题