2016-12-04 5 views
2

Angenommen, meine Daten haben 25 Funktionen. In Keras konnte ich einfach eine Ebene für jedes Eingabemerkmal implementieren und sie zusammenführen, um sie zu späteren Layern zu führen.implementieren Sie eine Einbettungsschicht mit Tensorflow

Ich sehe, dass tf.nn.embedding_lookup akzeptiert einen id Parameter, der nur eine ganze Zahl oder ein Array von ganzen Zahlen ([1,2,3, ..]) sein könnte. Allerdings ist die Feature-Eingabe oft von der Form

x = tf.placeholder(tf.float32, [None, in_feature_num]) 

ich die Funktion, um ihre eigenen spalten könnte

X = tf.split(1,in_feature_num,x) 

durch den Einsatz und verfügen jeweils über Eingabe der Form ist [?, 1]. Aber embedding_lookup nicht eine Form von [?, 1], und da wir keine angegebene Zeilenlänge haben, kann ich nicht reshape oder unpack es auf die Form wie [?].

So, wie könnte ich verwandeln eine Eingabe wie

[[1], 
[2], 
[3], 
    ... 
] 

in eine Einbettung Darstellung wie folgt aus:

[ 
    [....], #a vector 
    [....], #a vector 
    [....], #a vector 
    ... 
] 

Verwandte SO Post sind: What does tf.nn.embedding_lookup function do? und TensorFlow Embedding Lookup aber diese Beiträge gelöst nicht meine Problem.

+0

Ich bin nicht 100% sicher, was Sie meinen, "Ihre Daten haben Funktionen". Nach meinem Verständnis sind Einbettungen die Repräsentanten Ihrer Eingabedaten. Sie sind also Funktionen. Sie können eine Einbettungsschicht vor Ihrem NN hinzufügen und die Gewichte lernen, um eine Einbettungsschicht zu lernen, oder Sie können eine generalisierte vortrainierte Schicht hinzufügen. Können Sie genauer auf Ihre Daten eingehen? – roopalgarg

+0

Sie sagen, Sie haben 25 Chargen und möchten, dass jede Funktion ihre eigene Einbettung hat? – mazecreator

Antwort

-1

Ich denke ich weiß was du meinst. Die Frage ist, was sind die Merkmale? Wenn sie numerisch sind, benötigen Sie keine Einbettungsschicht - Sie können stattdessen eine vollständig verbundene Ebene verwenden. Wenn sie kategorisch sind, denke ich, dass Sie zwei Optionen haben: 1. separate Einbettung für alle Features (so würden Sie am Ende 25 Einbettungslayer, die verkettet werden müssten) 2. Zusammenführen der Features in eine einzige erste

+0

ja, "am Ende mit 25 Einbettungsschichten", das war es, was ich implementieren wollte. Ich weiß, wie man das in Keras macht, aber ich weiß nicht, wie man es in Tensorflow macht ... –

+0

Das ist keine Antwort ... es ist klar aus der Frage, dass er Option 1 will, aber du weißt nicht ' Sag ihm nicht, wie er das macht –

Verwandte Themen