Copy of ShortCut to

超级工厂病毒解析
超级工厂病毒(Stuxnet蠕虫病毒)是首个针对工业控制系统编写的破坏性病毒,能利用Windows系统和西门子SIMATIC WinCC系统的漏洞进行攻击。该病毒主要通过U盘和局域网传播,曾导致伊朗核电站发电推迟。在中国,它威胁到钢铁、电力等多个行业的SCADA系统。


超级工厂病毒(Stuxnet蠕虫病毒)

是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。特别是针对西门子公司的SIMATIC WinCC监控与数据采集 (SCADA) 系统进行攻击,由于该系统在我国的多个重要行业应用广泛,被用来进行钢铁、电力、能源、化工等重要行业的人机交互与监控。 传播途径:该病毒主要通过U盘和局域网进行传播。历史“贡献”:曾造成伊朗核电站推迟发电。 2010-09-25,进入中国。

昨天去出差不小心优盘中毒了;打开优盘出现四个Copy of ShortCut to快捷方式。而且删不掉,还有个文件夹。

不得已网上查了些资料说是低格,杀毒软件清理。

都尝试了也没解决。

解决方法

https://baike.baidu.com/item/%E8%B6%85%E7%BA%A7%E5%B7%A5%E5%8E%82/5264639?fr=aladdin

在AVG官网下载他们的杀毒软件,https://www.avg.com/en-us/homepage

扫描,杀毒,过程中计算机可能会高速运转;这是在强力清理有毒文件,因为这个病毒会自己生产。

(rt) root@45qqmqi84adhm-0:/202408540022/rt_copy/RTDETR-main# python train.py WARNING ⚠️ no model scale passed. Assuming scale='l'. from n params module arguments 0 -1 1 2216100 fasternet_t0 [] 1 -1 1 82432 ultralytics.nn.modules.conv.Conv [320, 256, 1, 1, None, 1, 1, False] 2 -1 1 789760 ultralytics.nn.modules.transformer.AIFI [256, 1024, 8] 3 -1 1 66048 ultralytics.nn.modules.conv.Conv [256, 256, 1, 1] 4 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 5 3 1 41472 ultralytics.nn.modules.conv.Conv [160, 256, 1, 1, None, 1, 1, False] 6 [-2, -1] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 7 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 8 -1 1 131584 ultralytics.nn.modules.conv.Conv [512, 256, 1, 1] 9 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 10 2 1 20992 ultralytics.nn.modules.conv.Conv [80, 256, 1, 1, None, 1, 1, False] 11 [-2, -1] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 12 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 13 -1 1 1180160 ultralytics.nn.modules.conv.Conv [512, 256, 3, 2] 14 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 15 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 16 -1 1 1180160 ultralytics.nn.modules.conv.Conv [512, 256, 3, 2] 17 [-1, 7] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 18 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 19 [16, 19, 22] 1 4215984 ultralytics.nn.modules.head.RTDETRDecoder [80, [512, 512, 512], 256, 300, 4, 8, 3] InvertedResidualsBlock输入形状: torch.Size([2, 512, 40, 40]) InvertedResidualsBlock输入形状: torch.Size([1, 512, 40, 40]) The size of tensor a (512) must match the size of tensor b (256) at non-singleton dimension 1 rtdetr-fasternet summary: 424 layers, 38721620 parameters, 38721620 gradients New https://pypi.org/project/ultralytics/8.3.190 available 😃 Update with 'pip install -U ultralytics' Ultralytics YOLOv8.0.201 🚀 Python-3.10.18 torch-2.2.2 CUDA:0 (NVIDIA A800 80GB PCIe, 81051MiB) engine/trainer: task=detect, mode=train, model=/202408540022/rt_copy/RTDETR-main/ultralytics/cfg/models/rt-detr/rtdetr-fasternet.yaml, data=/202408540022/rt_copy/RTDETR-main/dataset/tomato/tomato/tomato.yaml, epochs=300, patience=0, batch=8, imgsz=640, save=True, save_period=-1, cache=False, device=0, workers=8, project=/202408540022/rt_copy/RTDETR-main/runs/train, name=InvertedResidual7, exist_ok=False, pretrained=True, optimizer=AdamW, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=0, resume=False, amp=False, fraction=1.0, profile=False, freeze=None, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, show=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, vid_stride=1, stream_buffer=False, line_width=None, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, boxes=True, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.0001, lrf=1.0, momentum=0.9, weight_decay=0.0001, warmup_epochs=2000, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, 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=0.0, mixup=0.0, copy_paste=0.0, cfg=None, tracker=botsort.yaml, save_dir=/202408540022/rt_copy/RTDETR-main/runs/train/InvertedResidual7 Overriding model.yaml nc=80 with nc=6 WARNING ⚠️ no model scale passed. Assuming scale='l'. from n params module arguments 0 -1 1 2216100 fasternet_t0 [] 1 -1 1 82432 ultralytics.nn.modules.conv.Conv [320, 256, 1, 1, None, 1, 1, False] 2 -1 1 789760 ultralytics.nn.modules.transformer.AIFI [256, 1024, 8] 3 -1 1 66048 ultralytics.nn.modules.conv.Conv [256, 256, 1, 1] 4 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 5 3 1 41472 ultralytics.nn.modules.conv.Conv [160, 256, 1, 1, None, 1, 1, False] 6 [-2, -1] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 7 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 8 -1 1 131584 ultralytics.nn.modules.conv.Conv [512, 256, 1, 1] 9 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 10 2 1 20992 ultralytics.nn.modules.conv.Conv [80, 256, 1, 1, None, 1, 1, False] 11 [-2, -1] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 12 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 13 -1 1 1180160 ultralytics.nn.modules.conv.Conv [512, 256, 3, 2] 14 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 15 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 16 -1 1 1180160 ultralytics.nn.modules.conv.Conv [512, 256, 3, 2] 17 [-1, 7] 1 0 ultralytics.nn.modules.conv.Concat [1] InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 InvertedResidualsBlock初始化: c1=512, c2=256 18 -1 3 7199232 ultralytics.nn.modules.inv_bottleneck1.InvertedResidualsBlock[512, 256, 6, 1] 19 [16, 19, 22] 1 4120968 ultralytics.nn.modules.head.RTDETRDecoder [6, [512, 512, 512], 256, 300, 4, 8, 3] InvertedResidualsBlock输入形状: torch.Size([2, 512, 40, 40]) InvertedResidualsBlock输入形状: torch.Size([1, 512, 40, 40]) The size of tensor a (512) must match the size of tensor b (256) at non-singleton dimension 1 rtdetr-fasternet summary: 424 layers, 38626604 parameters, 38626604 gradients train: Scanning /202408540022/RTDETR-main/RTDETR-main/dataset/tomato/tomato/labels/train.cache... 10057 images, 74 backgrounds, 0 co train: WARNING ⚠️ /202408540022/RTDETR-main/RTDETR-main/dataset/tomato/tomato/images/train/IMG20220323085218.jpg: 1 duplicate labels removed albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01), CLAHE(p=0.01, clip_limit=(1, 4.0), tile_grid_size=(8, 8)) val: Scanning /202408540022/RTDETR-main/RTDETR-main/dataset/tomato/tomato/labels/val.cache... 1437 images, 9 backgrounds, 0 corrupt: val: WARNING ⚠️ /202408540022/RTDETR-main/RTDETR-main/dataset/tomato/tomato/images/val/IMG20220323085218_aug2.jpg: 1 duplicate labels removed Plotting labels to /202408540022/rt_copy/RTDETR-main/runs/train/InvertedResidual7/labels.jpg... optimizer: AdamW(lr=0.0001, momentum=0.9) with parameter groups 79 weight(decay=0.0), 137 weight(decay=0.0001), 126 bias(decay=0.0) Image sizes 640 train, 640 val Using 8 dataloader workers Logging results to /202408540022/rt_copy/RTDETR-main/runs/train/InvertedResidual7 Starting training for 300 epochs... Epoch GPU_mem giou_loss cls_loss l1_loss Instances Size 0%| | 0/1258 [00:00<?, ?it/s]InvertedResidualsBlock输入形状: torch.Size([8, 512, 40, 40]) 0%| | 0/1258 [00:02<?, ?it/s] Traceback (most recent call last): File "/202408540022/rt_copy/RTDETR-main/train.py", line 20, in <module> model.train(data='/202408540022/rt_copy/RTDETR-main/dataset/tomato/tomato/tomato.yaml', File "/202408540022/rt_copy/RTDETR-main/ultralytics/engine/model.py", line 342, in train self.trainer.train() File "/202408540022/rt_copy/RTDETR-main/ultralytics/engine/trainer.py", line 192, in train self._do_train(world_size) File "/202408540022/rt_copy/RTDETR-main/ultralytics/engine/trainer.py", line 345, in _do_train self.loss, self.loss_items = self.model(batch) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl return forward_call(*args, **kwargs) File "/202408540022/rt_copy/RTDETR-main/ultralytics/nn/tasks.py", line 58, in forward return self.loss(x, *args, **kwargs) File "/202408540022/rt_copy/RTDETR-main/ultralytics/nn/tasks.py", line 474, in loss preds = self.predict(img, batch=targets) if preds is None else preds File "/202408540022/rt_copy/RTDETR-main/ultralytics/nn/tasks.py", line 528, in predict x = m(x) # run File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl return forward_call(*args, **kwargs) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/container.py", line 217, in forward input = module(input) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/root/anaconda3/envs/rt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl return forward_call(*args, **kwargs) File "/202408540022/rt_copy/RTDETR-main/ultralytics/nn/modules/inv_bottleneck1.py", line 50, in forward result = identity + out RuntimeError: The size of tensor a (512) must match the size of tensor b (256) at non-singleton dimension 1怎么修改倒置瓶颈模块的代码
最新发布
09-02
当在使用Python运行RTDETR模型训练脚本时出现张量尺寸不匹配错误 'The size of tensor a (512) must match the size of tensor b (256) at non - singleton dimension 1',通常是因为在倒置瓶颈模块(InvertedResidualsBlock)中进行张量运算时,两个张量在某个非单例维度上的尺寸不一致。下面是一些可能的解决思路及代码修改示例。 ### 思路分析 1. **检查卷积层的输出通道数**:确保卷积层的输出通道数在模块内部和模块之间是一致的。 2. **检查跳跃连接(shortcut connection)**:如果存在跳跃连接,确保跳跃连接的输入和输出张量尺寸一致。 ### 代码修改示例 假设倒置瓶颈模块的原始代码如下: ```python import torch import torch.nn as nn class InvertedResidualsBlock(nn.Module): def __init__(self, in_channels, out_channels, stride): super(InvertedResidualsBlock, self).__init__() self.stride = stride # 扩张卷积 self.expand_conv = nn.Conv2d(in_channels, in_channels * 6, kernel_size=1, bias=False) self.bn1 = nn.BatchNorm2d(in_channels * 6) self.relu = nn.ReLU6(inplace=True) # 深度可分离卷积 self.depthwise_conv = nn.Conv2d(in_channels * 6, in_channels * 6, kernel_size=3, stride=stride, padding=1, groups=in_channels * 6, bias=False) self.bn2 = nn.BatchNorm2d(in_channels * 6) # 投影卷积 self.project_conv = nn.Conv2d(in_channels * 6, out_channels, kernel_size=1, bias=False) self.bn3 = nn.BatchNorm2d(out_channels) def forward(self, x): identity = x out = self.expand_conv(x) out = self.bn1(out) out = self.relu(out) out = self.depthwise_conv(out) out = self.bn2(out) out = self.relu(out) out = self.project_conv(out) out = self.bn3(out) if self.stride == 1 and in_channels == out_channels: out += identity return out ``` 为了解决张量尺寸不匹配的问题,需要确保跳跃连接(`out += identity`)中的输入和输出张量尺寸一致。可以通过添加一个卷积层来调整跳跃连接的输出通道数: ```python import torch import torch.nn as nn class InvertedResidualsBlock(nn.Module): def __init__(self, in_channels, out_channels, stride): super(InvertedResidualsBlock, self).__init__() self.stride = stride # 扩张卷积 self.expand_conv = nn.Conv2d(in_channels, in_channels * 6, kernel_size=1, bias=False) self.bn1 = nn.BatchNorm2d(in_channels * 6) self.relu = nn.ReLU6(inplace=True) # 深度可分离卷积 self.depthwise_conv = nn.Conv2d(in_channels * 6, in_channels * 6, kernel_size=3, stride=stride, padding=1, groups=in_channels * 6, bias=False) self.bn2 = nn.BatchNorm2d(in_channels * 6) # 投影卷积 self.project_conv = nn.Conv2d(in_channels * 6, out_channels, kernel_size=1, bias=False) self.bn3 = nn.BatchNorm2d(out_channels) # 添加一个卷积层来调整跳跃连接的输出通道数 if in_channels != out_channels: self.shortcut_conv = nn.Conv2d(in_channels, out_channels, kernel_size=1, bias=False) self.shortcut_bn = nn.BatchNorm2d(out_channels) else: self.shortcut_conv = None def forward(self, x): identity = x out = self.expand_conv(x) out = self.bn1(out) out = self.relu(out) out = self.depthwise_conv(out) out = self.bn2(out) out = self.relu(out) out = self.project_conv(out) out = self.bn3(out) if self.stride == 1: if self.shortcut_conv is not None: identity = self.shortcut_conv(identity) identity = self.shortcut_bn(identity) out += identity return out ``` ### 解释 1. **添加 `shortcut_conv` 和 `shortcut_bn`**:在 `__init__` 方法中,如果输入通道数和输出通道数不一致,添加一个卷积层 `shortcut_conv` 和一个批量归一化层 `shortcut_bn` 来调整跳跃连接的输出通道数。 2. **调整跳跃连接**:在 `forward` 方法中,如果 `shortcut_conv` 不为 `None`,则对跳跃连接的输入 `identity` 进行卷积和批量归一化操作,然后再与输出 `out` 相加。 ### 总结 通过以上修改,可以确保倒置瓶颈模块中的跳跃连接输入和输出张量尺寸一致,从而解决张量尺寸不匹配的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值