↓阿里云服务器3年不到300元↓

Tomcat 架构解析 阿里云服务器3年不到300元 Redis设计与实现

TypeError:add():参数“other”(位置1)必须是张量,而不是努比·恩达雷

  • 问题:
  • 我正在使用最新的anaconda3在linux系统上使用Pytorch和fastai测试ResNet-34训练的_模型。为了将其作为批处理作业运行,我注释掉了与gui相关的行。它开始运行几个小时,然后在验证步骤中停止,错误消息如下。在

    ...
    ^M100%|█████████▉| 452/453 [1:07:07<00:08, 8.75s/it,
    loss=1.23]^[[A^[[A^[[A

    ^MValidation: 0%| | 0/40 [00:00<?, ?it/s]^[[A^[[A^[[ATraceback
    (most recent call last):
    File "./resnet34_pretrained_PNG_nogui_2.py", line 279, in <module>
    learner.fit(lr,1,callbacks=[f1_callback])
    File "/project/6000192/jemmyhu/resnet_png/fastai/learner.py", line 302,
    in fit
    return self.fit_gen(self.model, self.data, layer_opt, n_cycle,
    **kwargs)
    File "/project/6000192/jemmyhu/resnet_png/fastai/learner.py", line 249,
    in fit_gen
    swa_eval_freq=swa_eval_freq, **kwargs)
    File "/project/6000192/jemmyhu/resnet_png/fastai/model.py", line 162, in
    fit
    vals = validate(model_stepper, cur_data.val_dl, metrics, epoch,
    seq_first=seq_first, validate_skip = validate_skip)
    File "/project/6000192/jemmyhu/resnet_png/fastai/model.py", line 241, in
    validate
    res.append([to_np(f(datafy(preds), datafy(y))) for f in metrics])
    File "/project/6000192/jemmyhu/resnet_png/fastai/model.py", line 241, in
    <listcomp>
    res.append([to_np(f(datafy(preds), datafy(y))) for f in metrics])
    File "./resnet34_pretrained_PNG_nogui_2.py", line 237, in __call__
    self.TP += (preds*targs).float().sum(dim=0)
    TypeError: add(): argument 'other' (position 1) must be Tensor, not
    numpy.ndarray

    原始代码的链接是https://www.kaggle.com/iafoss/pretrained-resnet34-with-rgby-0-460-public-lb

    我的副本中的第279行和第237行如下所示:

    226 class F1:
    227 __name__ = 'F1 macro'
    228 def __init__(self,n=28):
    229 self.n = n
    230 self.TP = np.zeros(self.n)
    231 self.FP = np.zeros(self.n)
    232 self.FN = np.zeros(self.n)
    233
    234 def __call__(self,preds,targs,th=0.0):
    235 preds = (preds > th).int()
    236 targs = targs.int()
    237 self.TP += (preds*targs).float().sum(dim=0)
    238 self.FP += (preds > targs).float().sum(dim=0)
    239 self.FN += (preds < targs).float().sum(dim=0)
    240 score = (2.0*self.TP/(2.0*self.TP + self.FP + self.FN + 1e-6)).mean()
    241 return score

    276 lr = 0.5e-2
    277 with warnings.catch_warnings():
    278 warnings.simplefilter("ignore")
    279 learner.fit(lr,1,callbacks=[f1_callback])

    有人知道这个问题的线索吗?在

    非常感谢,

  • 答案:
  • 好的,错误似乎是针对最新的pytorch-1.0.0,当pytorch降级到pytorch-0.4.1时,代码似乎可以工作(此时传递了错误行)。仍然不知道如何让代码与pytorch-1.0.0一起工作

C++ Primer Plus 第六版 阿里云服务器3年不到300元 流畅的 Python