概述
import paddle
import paddle.nn as nn
import paddle.nn.functional as F
EPSILON = 1e-5
BATCH_SIZE = 8
NUM_EMBEDD = 3
EMBEDD_DIM = 5
class EntityEmbedding(nn.Layer):
def __init__(self, num_embeddings, embedding_dim, centroid):
super(EntityEmbedding, self).__init__()
self.embedding = nn.Embedding(num_embeddings=num_embeddings,
embedding_dim=embedding_dim)
self.centroid = paddle.to_tensor(centroid).detach().unsqueeze(0)
pass
def forward(self, x):
x = x.unsqueeze(1)
d = 1. / ((x - self.centroid).abs() + EPSILON)
w = F.softmax(d.squeeze(2), 1)
v = paddle.mm(w, self.embedding.weight)
return v
pass
x = paddle.randn((BATCH_SIZE, 1))
centroid = paddle.randn((NUM_EMBEDD, 1))
model = EntityEmbedding(num_embeddings=NUM_EMBEDD,
embedding_dim=EMBEDD_DIM,
centroid=centroid)
print(model(x))
最后
以上就是独特香菇为你收集整理的EntityEmbedding实体嵌入的飞桨Paddle实现的全部内容,希望文章能够帮你解决EntityEmbedding实体嵌入的飞桨Paddle实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复