NameError: name ‘Optional‘ is not defined

D:\programfiles\miniconda\envs\py38torch_gpu\python.exe G:/yolov5/yolov5-6.1/train.py --data ../air-filter/data.yaml --cfg models/yolov5s-tph2.yaml --batch-size 1
Traceback (most recent call last):
  File "G:/yolov5/yolov5-6.1/train.py", line 44, in <module>
    import val  # for end-of-epoch mAP
  File "G:\yolov5\yolov5-6.1\val.py", line 38, in <module>
    from models.common import DetectMultiBackend
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2511, in <module>
    class WindowAttention(nn.Module):
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2558, in WindowAttention
    def forward(self, x, mask: Optional[torch.Tensor] = None):

NameError: name 'Optional' is not defined

 加入:

from typing import Optional

D:\programfiles\miniconda\envs\py38torch_gpu\python.exe G:/yolov5/yolov5-6.1/train.py --data ../air-filter/data.yaml --cfg models/yolov5s-tph2.yaml --batch-size 1
train: weights=yolov5s.pt, cfg=models/yolov5s-tph2.yaml, data=../air-filter/data.yaml, hyp=data\hyps\hyp.scratch-low.yaml, epochs=100, batch_size=1, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=0, project=runs\train, name=exp, exist_ok=False, quad=False, cos_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest
github: skipping check (not a git repository), for updates see https://github.com/ultralytics/yolov5
YOLOv5  2022-2-22 torch 1.9.0+cu111 CUDA:0 (GeForce RTX 2080 Super with Max-Q Design, 8192MiB)

Weights & Biases: run 'pip install wandb' to automatically track and visualize YOLOv5  runs (RECOMMENDED)
hyperparameters: lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0
TensorBoard: Start with 'tensorboard --logdir runs\train', view at http://localhost:6006/
2022-10-24 22:39:36.244864: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2022-10-24 22:39:36.244967: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

                 from  n    params  module                                  arguments                     
  0                -1  1      3520  models.common.Conv                      [3, 32, 6, 2, 2]              
  1                -1  1     18560  models.common.Conv                      [32, 64, 3, 2]                
  2                -1  1     18816  models.common.C3                        [64, 64, 1]                   
  3                -1  1     73984  models.common.Conv                      [64, 128, 3, 2]               
  4                -1  2    115712  models.common.C3                        [128, 128, 2]                 
  5                -1  1    295424  models.common.Conv                      [128, 256, 3, 2]              
  6                -1  3    625152  models.common.C3                        [256, 256, 3]                 
  7                -1  1   1180672  models.common.Conv                      [256, 512, 3, 2]              
  8                -1  1   1182720  models.common.C3                        [512, 512, 1]                 
  9                -1  1    656896  models.common.SPPF                      [512, 512, 5]                 
 10                -1  1    131584  models.common.Conv                      [512, 256, 1, 1]              
 11                -1  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 12           [-1, 6]  1         0  models.common.Concat                    [1]                           
 13                -1  1    361984  models.common.C3                        [512, 256, 1, False]          
 14                -1  1     33024  models.common.Conv                      [256, 128, 1, 1]              
 15                -1  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 16           [-1, 4]  1         0  models.common.Concat                    [1]                           
 17                -1  1     90880  models.common.C3                        [256, 128, 1, False]          
 18                -1  1      8320  models.common.Conv                      [128, 64, 1, 1]               
 19                -1  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 20           [-1, 2]  1         0  models.common.Concat                    [1]                           
Traceback (most recent call last):
  File "G:/yolov5/yolov5-6.1/train.py", line 653, in <module>
    main(opt)
  File "G:/yolov5/yolov5-6.1/train.py", line 546, in main
    train(opt.hyp, opt, device, callbacks)
  File "G:/yolov5/yolov5-6.1/train.py", line 131, in train
    model = Model(cfg or ckpt['model'].yaml, ch=3, nc=nc, anchors=hyp.get('anchors')).to(device)  # create
  File "G:\yolov5\yolov5-6.1\models\yolo.py", line 107, in __init__
    self.model, self.save = parse_model(deepcopy(self.yaml), ch=[ch])  # model, savelist
  File "G:\yolov5\yolov5-6.1\models\yolo.py", line 399, in parse_model
    m_ = nn.Sequential(*(m(*args) for _ in range(n))) if n > 1 else m(*args)  # module
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2725, in __init__
    self.m = SwinTransformerBlock(c_, c_, c_//32, n)
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2710, in __init__
    self.tr = nn.Sequential(*(SwinTransformerLayer(c2, num_heads=num_heads, window_size=window_size,
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2710, in <genexpr>
    self.tr = nn.Sequential(*(SwinTransformerLayer(c2, num_heads=num_heads, window_size=window_size,
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2620, in __init__
    self.attn = WindowAttention(
  File "G:\yolov5\yolov5-6.1\models\common.py", line 2540, in __init__
    coords = torch.stack(torch.meshgrid([coords_h, coords_w], indexing="ij"))  # [2, Mh, Mw]

TypeError: meshgrid() got an unexpected keyword argument 'indexing'

Process finished with exit code 1

找到:

coords = torch.stack(torch.meshgrid([coords_h, coords_w], indexing="ij"))  # [2, Mh, Mw]

改为:

coords = torch.stack(torch.meshgrid([coords_h, coords_w]))  # [2, Mh, Mw]

猜你喜欢

转载自blog.csdn.net/weixin_53660567/article/details/127503910