taozhuo
9/27/2019 - 4:40 PM

Save embeddings and load it in keras:

game_ids = ['1432611','1740133','1371999','1458550','1327503',\
            '2997057','1373394','1734616','1357688','1696898',\
            '3067504','1740134','1782779','1801927','1010696',\
            '2594454','1315004','1373395','1782778','1579420',\
            '2715399','1754096','23873'  ,'1412630','1749294',\
            '1734242','1399497','1227756','3037351','2606781',\
            '2594455','1060810','2933113','2821097','1608458',\
            '2725281','2606780','1579421','1372000','1227755',\
            '1315003','1416332','1060676','2731992','1295267',\
            '2731991','2921307','2821098','2725280','2660087',\
            '2899521','1010697','2715398','1003628','1399498',\
            '1783092','1397984','1783091','1471025']
embedding_arr = []
for game in game_ids:
    if game in w2v_model.wv.vocab:
        embedding_arr.append(
            w2v_model.wv.get_vector(game))
    else:
        embedding_arr.append(
            np.random.uniform(low=-0.05, high=0.05, size=(10,)))

# for out-of-vocab game_id
embedding_arr.append(
            np.random.uniform(low=-0.05, high=0.05, size=(10,)))

embedding_arr = np.asarray(embedding_arr, dtype=np.float32)
np.save('game_graph_embedding', embedding_arr)

# in keras
# set game_id graph embeddings
arr = np.load('./likely_payer/algo/game_graph_embedding.npy')
target_layer = model.get_layer('embedding_gameID')
target_layer.set_weights([arr])