【发布时间】:2021-04-23 01:43:14
【问题描述】:
我正在测试电影镜头数据集。我尝试将 nn.linear(n_act,5) 中的输出增加到 n_act,10 但没有任何效果
代码在下面,错误在后面
dls=CollabDataLoaders.from_df(ratings,item_name='Title',bs=64)
class deeplearn(Module):
def __init__(self,user_size,movie_size,n_act=50,y_range=(0,5.5)):
self.user_factors=create_params(user_size)
self.movie_factors=create_params(movie_size)
self.layers=nn.Sequential(
nn.Linear(user_size[1]+movie_size[1],n_act),
nn.ReLU(),
nn.Linear(n_act,5)
)
self.y_range=y_range
def forward(self,x):
embs=self.user_factors[x[:,0]],self.movie_factors[x[:,1]]
x1=self.layers(torch.cat(embs,dim=1))
return sigmoid_range(x1,*self.y_range)
embs=get_emb_sz(dls)
n_users=6041
n_movies=3707
model = deeplearn(*embs)
learn3 = Learner(dls, model, loss_func=CrossEntropyLossFlat)
learn3.fit_one_cycle(5, 5e-3, wd=0.01)
执行getting之后 RuntimeError: 具有多个值的张量的布尔值不明确
RuntimeError Traceback (most recent call last)
nvs/tf-gpu/lib/python3.6/site-packages/torch/nn/_reduction.py in legacy_get_string(size_average, reduce, emit_warning)
35 reduce = True
36
---> 37 if size_average and reduce:
38 ret = 'mean'
39 elif reduce:
RuntimeError: Boolean value of Tensor with more than one value is ambiguous
【问题讨论】:
-
你能告诉我更多我应该提供哪些信息
-
一个小而完整的例子,可以运行来观察错误。另外,这是整个错误跟踪吗?