【发布时间】:2020-12-25 04:02:03
【问题描述】:
我正在阅读“使用 fastai 和 PyTorch 为编码人员提供深度学习”一书。对于 Embedding 模块的作用,我仍然有些困惑。它似乎是一个简短而简单的网络,但我似乎无法完全理解嵌入与没有偏见的线性的不同之处。我知道它做了一些更快的点积计算版本,其中一个矩阵是单热编码矩阵,另一个是嵌入矩阵。这样做实际上是为了选择一条数据吗?请指出我错在哪里。这是书中展示的简单网络之一。
class DotProduct(Module):
def __init__(self, n_users, n_movies, n_factors):
self.user_factors = Embedding(n_users, n_factors)
self.movie_factors = Embedding(n_movies, n_factors)
def forward(self, x):
users = self.user_factors(x[:,0])
movies = self.movie_factors(x[:,1])
return (users * movies).sum(dim=1)
【问题讨论】:
标签: python oop deep-learning pytorch fast-ai