MCPcopy
hub / github.com/shenweichen/GraphEmbedding / create_model

Function create_model

ge/models/line.py:37–69  ·  view source on GitHub ↗
(numNodes, embedding_size, order='second')

Source from the content-addressed store, hash-verified

35
36
37def create_model(numNodes, embedding_size, order='second'):
38 v_i = Input(shape=(1,))
39 v_j = Input(shape=(1,))
40
41 first_emb = Embedding(numNodes, embedding_size, name='first_emb')
42 second_emb = Embedding(numNodes, embedding_size, name='second_emb')
43 context_emb = Embedding(numNodes, embedding_size, name='context_emb')
44
45 v_i_emb = first_emb(v_i)
46 v_j_emb = first_emb(v_j)
47
48 v_i_emb_second = second_emb(v_i)
49 v_j_context_emb = context_emb(v_j)
50
51 first = Lambda(
52 lambda x: tf.reduce_sum(x[0] * x[1], axis=-1, keepdims=False),
53 name='first_order',
54 )([v_i_emb, v_j_emb])
55 second = Lambda(
56 lambda x: tf.reduce_sum(x[0] * x[1], axis=-1, keepdims=False),
57 name='second_order',
58 )([v_i_emb_second, v_j_context_emb])
59
60 if order == 'first':
61 output_list = [first]
62 elif order == 'second':
63 output_list = [second]
64 else:
65 output_list = [first, second]
66
67 model = Model(inputs=[v_i, v_j], outputs=output_list)
68
69 return model, {'first': first_emb, 'second': second_emb}
70
71
72class LINE:

Callers 1

reset_modelMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected