当前位置:网站首页>Anomaly-Transformer (ICLR 2022 Spotlight)复现过程及问题
Anomaly-Transformer (ICLR 2022 Spotlight)复现过程及问题
2022-07-01 22:56:00 【理心炼丹】
作者推荐的是 python3.6,pytorch 1.4
1. 环境修改
尝试安装 pytorch 1.4 运行,但是代码会卡住,并且没有报错。定位错误在:Anomaly-Transformer/model/attn.py
self.distances = torch.zeros((window_size, window_size)).cuda().cuda() 卡住:原因是 安装的 pytorch 1.4 对应的CUDA 版本为 10.x,算力是 sm_86,CUDA 10.x 最高支持到 sm_75,因此需要CUDA 11.x来支持sm_8.x。
因此升级 我的环境 python3.7, pytorch 1.12 , 显卡3080Ti, CUDA 版本:11.3
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch再次运行训练脚本,又报错:
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [512, 25]], which is output 0 of AsStridedBackward0, is at version 2; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).
解决:注释掉Anomaly-Transformer/solver.py 的第一个 .step():
# Minimax strategy
loss1.backward(retain_graph=True)
# self.optimizer.step()
loss2.backward()
self.optimizer.step()参考:Why the optimizer.step() write twice? · Issue #8 · thuml/Anomaly-Transformer · GitHub
2. 恭喜! 成功运行!
python main.py --anormly_ratio 1 --num_epochs 3 --batch_size 128 --mode train --dataset PSM --data_path dataset/PSM --input_c 25 --output_c 25------------ Options -------------
anormly_ratio: 1.0
batch_size: 128
data_path: dataset/PSM
dataset: PSM
input_c: 25
k: 3
lr: 0.0001
mode: train
model_save_path: checkpoints
num_epochs: 3
output_c: 25
pretrained_model: None
win_size: 100
======================TEST MODE======================
/opt/conda/lib/python3.7/site-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='none' instead.
warnings.warn(warning.format(ret))
Threshold : 0.002150955616962149
pred: (87800,)
gt: (87800,)
pred: (87800,)
gt: (87800,)
Accuracy : 0.9848, Precision : 0.9713, Recall : 0.9739, F-score : 0.9726
论文中的结果:对于PSM数据集
P: 96.91,R: 98.9, F1: 97.89
复现的 Recall 略低。但是 Precision 略高。二者本就是需要权衡。可以通过调整上面的 Threshold : 0.002150955616962149 平衡二者。
边栏推荐
- MySQL -- convert rownum in Oracle to MySQL
- [机缘参悟-35]:鬼谷子-飞箝篇-远程连接、远程控制与远程测试之术
- Jielizhi, production line assembly link [chapter]
- 什么是马赛克?
- 问题随记 —— /usr/bin/perl is needed by MySQL-server-5.1.73-1.glibc23.x86_64
- Zhao Fuquan: to ensure supply in the short term, we should build a safe, efficient and resilient supply chain in the long term
- STM32F030F4驱动TIM1637数码管芯片
- 2021 RoboCom 世界机器人开发者大赛-高职组初赛
- y53.第三章 Kubernetes从入门到精通 -- ingress(二六)
- Huisheng Huiying 2022 intelligent, fast and simple video editing software
猜你喜欢

Wechat personal small store one click opening assistant applet development

What professional classification does the application of Internet of things technology belong to

STM32F030F4驱动TIM1637数码管芯片

从第三次技术革命看企业应用三大开发趋势

Commemorate becoming the first dayus200 tripartite demo contributor
![[机缘参悟-35]:鬼谷子-飞箝篇-远程连接、远程控制与远程测试之术](/img/08/9ecfd53a04e147022dde3449aec132.png)
[机缘参悟-35]:鬼谷子-飞箝篇-远程连接、远程控制与远程测试之术

Zero foundation tutorial of Internet of things development

Stm32f030f4 drives tim1637 nixie tube chip

CKS CKA CKAD 将终端更改为远程桌面

物联网技术应用属于什么专业分类
随机推荐
Commemorate becoming the first dayus200 tripartite demo contributor
Know --matplotlib
云信小课堂 | IM及音视频中常见的认知误区
[MySQL] basic use of explain and the function of each column
win 10 mstsc连接 RemoteApp
y53.第三章 Kubernetes从入门到精通 -- ingress(二六)
Istio、eBPF 和 RSocket Broker:深入研究服务网格
Redis数据类型和应用场景
from pip._internal.cli.main import main ModuleNotFoundError: No module named ‘pip‘
MT manager test skiing Adventure
纪念成为首个DAYUs200三方demo贡献者
Three development trends of enterprise application from the perspective of the third technological revolution
【微服务|Sentinel】sentinel整合openfeign
CADD course learning (3) -- target drug interaction
Distance measurement - Hamming distance
2022年起重机司机(限桥式起重机)考试试题及模拟考试
每日三题 6.29
Daily three questions 6.28
Oracle中已定义者身份执行函数AUTHID DEFINER与Postgresql行为的异同
openresty 负载均衡