2017-08-08 13 views
1

ニューラルネットワークの隠れたレイヤーに、3つの入力(異なる形のプレースホルダー)を渡すことに固執しています。2つ以上の入力をTensorflowニューラルネットワークに渡すにはどうすればよいですか?

これは私がこれまで持っているものです。

with tf.name_scope("Final_Check"): 
    # TODO: Is this the correct way to pass 3 inputs into the hidden layer? 
    final_layer1 = tf.layers.dense([self.final_time_input, self.final_request_input, self.final_stream_input], 
            500, 
            activation=tf.nn.relu, 
            name="final_hl1") 
    final_layer2 = tf.layers.dense(final_layer1, 
            500, 
            activation=tf.nn.relu, 
            name="final_h12") 
    final_layer3 = tf.layers.dense(final_layer2, 
            500, 
            activation=tf.nn.relu, 
            name="final_hl3") 

    final_output = tf.layers.dense(final_layer3, 
            500, 
            activation=tf.nn.relu, 
            name="final_output") 

プレースホルダ:

  1. self.final_time_input
  2. self.final_request_input
  3. self.final_stream_input

隠れ層: 全てのfinal_layer [1-3]とfinal_output

私はいくつかのサンプルコードではグーグルを試みましたが、何も見つかりませんでした。

答えて

1

tf.layers.denseは、テンソル入力が必要です。あなたの場合はリスト([self.final_time_input, self.final_request_input, self.final_stream_input])です。あなたは、入力されたテンソルがfeature_sizeは異なる可能性が[batch_size, feature_size]の形状を持っていると仮定するとtf.concat

tf.concat([self.final_time_input, self.final_request_input, self.final_stream_input], axis=1) 

ことを利用してそれらを連結する必要があります。

+0

'tf.concat'は、入力レイヤーから隠れレイヤーに2つ以上の入力(tf.placeholder)を渡す方法ですか?この場合の問題は、隠されたレイヤーにいくつかの情報を渡したいということです。たとえば、期間、要求のタイプなどを隠しレイヤーに渡す必要があります。 – Bosen

+0

はい、 'tf.concat'を使うことができます。異なる入力を異なる入力に適用する場合は、まず入力を適用してから出力を連結する必要があります。 – eaksan

関連する問題