神经网络常见细节技巧
- 定义模型时:
initrange = 0.5 / self.embed_size
self.out_embed = nn.Embedding(self.vocab_size, self.embed_size, sparse=False)
self.out_embed.weight.data.uniform_(-initrange, initrange) //权重初始化的一种方法
- torch.bmm()为batch间的矩阵相乘(b,n,m)*(b,m,p)=(b,n,p)
- 取出self.in_embed数据参数
def input_embeddings(self): // 取出self.in_embed数据参数
return self.in_embed.weight.data.cpu().numpy()
- USE CUDA
USE_CUDA = torch.cuda.is_available()
if USE_CUDA:
model = model.cuda()
- 余弦相似度
sklearn.metrics.pairwise.cosine_similarity(word1_embed