Nav*_*iel 5 python machine-learning keras tensorflow recurrent-neural-network
我正在尝试理解 tensorflow keras 中层的连接。下面我画了我认为是 2 个 RNN 层的串联 [为图片清晰度而备] 和输出
在这里,我试图连接两个 RNN 层。一层具有某个时间序列中患者的纵向数据[整数值],另一层具有具有分类输入的其他时间序列的相同患者的详细信息。
我不希望这两个不同的时间序列混淆,因为它是医疗数据。所以我正在尝试这个。但在此之前,我想确定我绘制的是否是连接两层的含义。下面是我的代码。它似乎运行良好,但我想确认我绘制的内容和实施的内容是否正确。
#create simpleRNN with one sequence of input
first_input = Input(shape=(4, 7),dtype='float32')
simpleRNN1 = layers.SimpleRNN(units=25,bias_initializer= initializers.RandomNormal(stddev=0.0001),
activation="relu",kernel_initializer= "random_uniform")(first_input)
#another layer of RNN
second_input = Input(shape=(16,1),dtype='float32')
simpleRNN2 = layers.SimpleRNN(units=25,bias_initializer= initializers.RandomNormal(stddev=0.0001),
activation="relu",kernel_initializer= "random_uniform")(second_input)
#concatenate two layers,stack dense layer on top
concat_lay = tf.keras.layers.Concatenate()([simpleRNN1, simpleRNN2])
dens_lay = layers.Dense(64, activation='relu')(concat_lay)
dens_lay = layers.Dense(32, activation='relu')(dens_lay)
dens_lay = layers.Dense(1, activation='sigmoid')(dens_lay)
model = tf.keras.Model(inputs=[first_input, second_input], outputs= [dens_lay])
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=["accuracy"],lr=0.001)
model.summary()
Run Code Online (Sandbox Code Playgroud)
连接在这里意味着“链接在一起”或“统一”,将两个实体结合起来。
我认为你的问题在https://datascience.stackexchange.com/questions/29634/how-to-combine-categorical-and-continuous-input-features-for-neural-network-trai中得到解决(如何结合分类和用于神经网络训练的连续输入特征)
如果你有生物医学数据,即心电图,作为连续数据和诊断作为分类数据,我会认为集成学习是最好的选择。
这里最好的解决方案是什么取决于您问题的详细信息......
https://machinelearningmastery.com/ensemble-methods-for-deep-learning-neural-networks/中描述了构建两个神经网络的集成
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |