Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析

2023-11-17

可以在GPU上跑通的代码(含数据集),我已经放到了以下链接,
链接:https://pan.baidu.com/s/1gM4KTbRNHzfbGEGgvEjXAw
提取码:e7wu

在服务器上跑
先创建一个虚拟环境
conda create -n GDN python==3.7
conda activate GDN

按照read me一步一步安装包。

### Requirements
* Python >= 3.6
* cuda == 10.2
* [Pytorch==1.5.1](https://pytorch.org/)要去这个网站复制下载命令
* [PyG: torch-geometric==1.5.0](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html)

### Install packages
# run after installing correct Pytorch package
bash install.sh
安装
pip install scikit-learn==1.0.2
              matplotlib == 3.1.1
             numpy == 1.19.4
             pandas == 0.25.1

bash run.sh cpu swat
在这里插入图片描述
在这里插入图片描述
接下来按照两个readme一步步来

因为data/swat/train.csv是从process_swat.py生成的,所以先用现有的处理好的msl数据集试验一下环境是否已配好。

    bash run.sh cpu msl
    # or with gpu
    bash run.sh <gpu_id> msl    # e.g. bash run.sh 1 msl
    

We use part of msl dataset(refer to telemanom) as demo example.

Data Preparation

# put your dataset under data/ directory with the same structure shown in the data/msl/

data
 |-msl
 | |-list.txt    # the feature names, one feature per line
 | |-train.csv   # training data
 | |-test.csv    # test data
 |-your_dataset
 | |-list.txt
 | |-train.csv
 | |-test.csv
 | ...

Notices:

*.csv中的第一列将被视为索引列。
*.csv中的列序列不需要匹配list.txt中的序列。我们将根据list.txt中的顺序重新排列数据列。
*test.csv应该有一个名为“attack”的列,其中包含被攻击或未被攻击的地面真相标签(0/1)(0:正常,1:被攻击)

Run

    # using gpu
    bash run.sh <gpu_id> <dataset>

    # or using cpu
    bash run.sh cpu <dataset>

You can change running parameters in the run.sh.

Others

SWaT and WADI datasets can be requested from iTrust

下面是处理数据的readme
The directory contains the main preprocessing code for SWaT and WADI.

SWaT

转化SWaT_Dataset_Normal_v0/SWaT_Dataset_Attack_v0.xlsx成为csv文件,重命名’Normal’ / ‘Normal/Attack’列为’attack’ with label 0/1
重命名修改后的文件为’swat_train.csv’和’swat_test.csv’,作为process_swat.py的输入文件
运行脚本python process_swat.py处理数据集
运行脚本会生成train.csv和test.csv,需要自己copy到data/swat/train.csv或者更改一下生成保存的路径。
还要自己创建一下list.txt,模仿msl的。

WADI

基于attack描述文件,在WADI_attackdata.csv中添加 0/1 ‘attack’列,并重命名文件为’WADI_attackdata_labelled.csv’
运行脚本python process_wadi.py

Others

We have provided part of the processed data via link.
我们在此链接中提供了部分已处理的数据,这是经过process_swat的csv文件,可以直接放到data/swat/train.csv.

终于运行成功啦!
bash run.sh cpu swat
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

出现问题:
只能在cpu上跑,在GPU上报错,是因为pytorch和cuda版本和显卡算力不符,显卡是最新的,算力很强,得用新版本的pytorch和cuda。
在这里插入图片描述
在这里插入图片描述

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge

在这里插入图片描述
又报错,是因为pytorch-geometric包的版本和pytorch,cuda又不对应了,可以看到刚才安装install.sh中
在这里插入图片描述
先查看一下我服务器上的cuda版本,刚才安装的pytorch是1.10.0版本的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去官网https://pytorch-geometric.com/whl安装对应的pytorch-geometric包版本
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意torch-geometric务必是1.5.0版本的!!!
在这里插入图片描述
运行程序,又有错误,是因为1.8.0以上版本的pytorch的six文件有所变化
在这里插入图片描述
解决:

找到提示的dataloader.py文件中的在这里插入图片描述
替换为

import collections.abc as container_abcs
int_classes = int
string_classes = str

以上,可以正常运行。

以下是另一篇论文的配置,别看了……

IOT报错
在这里插入图片描述
这是因为前面下载的pytorch-geometric的版本不对,重新下载2.0.0版本的,就可以了。

再运行程序,又报错了
在这里插入图片描述
是因为我程序中用的cuda序号5,都改成0.

在这里插入图片描述
终于成功啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析 的相关文章

随机推荐

  • JavaSE学习总结:异常处理

    Java异常处理 1 什么是异常 2 异常的处理机制的原理 过程 3 异常的体系结构 1 java lang Throwable 2 java lang Error 3 java lang Exception 4 异常的处理机制 1 抛 2
  • 以太坊区块链技术开发岗位面试题集锦,附答案

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 超过100道以太坊区块链开发技术岗位的面试题 附参考答案 面试题目涵盖 以太坊的基本概念 Geth客户端使用 智能合约基本概念 Solidity开发语言 去中心化 应用DA
  • 目标检测中的IOU和CIOU原理讲解以及应用(附测试代码))

    上期讲解了目标检测中的三种数据增强的方法 这期我们讲讲目标检测中用来评估对象检测算法的IOU和CIOU的原理应用以及代码实现 交并比IOU 交并比IOU Interp over union 在目标检测任务中 我们用框框来定位对象 如下图定位
  • Linux文件/proc/net/tcp

    导语 proc net tcp文件提供了tcp的连接信息 是由net ipv4 tcp ipv4 c中的tcp4 seq show 实现信息打印的 本文内容来源于linux官方文档proc net tcp txt 官方文档解释 proc n
  • 输入框不能为空格

    需求 在表单中 输入的内容要去除两端空格 技术栈 vue elementui 最简单的做法 element ui 中自带的表单必填项校验输入空格时 依然能逃过验证 required true还是可以通过 需要再 在v model 加上 tr
  • 3.Jmeter学习_线程组(Thread Group)

    xxxx
  • VS2022安装qt插件

    1 安装Qt软件 Qt下载网址 5 14之后的需要手动编译 官方不提供exe文件 2 配置环境变量 3 安装插件 vs2022 qt vsaddin插件已经更新 可以下载安装 链接 https download qt io developm
  • 【正点原子STM32连载】第十七章 通用定时器中断实验 摘自【正点原子】APM32F407最小系统板使用指南

    1 实验平台 正点原子stm32f103战舰开发板V4 2 平台购买地址 https detail tmall com item htm id 609294757420 3 全套实验源码 手册 视频下载地址 http www openedv
  • python爬虫学习笔记-jQuery

    jQuery介绍 jQuery是什么 jQuery是一个快速 简洁的JavaScript框架 jQuery设计的宗旨是 write Less Do More 即倡导写更少的代码 做更多的事情 它封装JavaScript常用的功能代码 提供一
  • C# 集合

    数组是一种指定长度和数据类型的对象 在实际应用中有局限性 集合正是为这种局限性而生的 集合的长度能根据需要更改 也允许存放任何数据类型的值 集合简介 集合和数组比较类似 都用于存放一组值 但集合中提供了特定的方法直接操作集合中的数据 并提供
  • Java接口详解

    接口 接口的概念 在现实生活中 接口的例子比比皆是 比如 笔记本上的USB口 电源插座等 电脑的USB口上 可以插 U盘 鼠标 键盘等所有符合USB协议的设备 电源插座插孔上 可以插 电脑 电视机 电饭煲等所有符合规范的设备 通过上述例子可
  • OneNote复制为默认字体大小(只复制文字,不复制原有字体格式)

    当我们从word中复制一段文字到onenote中 onenote会自动带上原有字体的格式 非常不方便 下面是只复制文字的方法 1 随便按 ctrl c 复制一段文字 2 到onenote里按下 ctrl v 粘贴 选择右下角的框 3 在弹出
  • 使用XMind解决问题?只需4个简单步骤!

    我们每天都在解决问题并做出决定 从我应该穿什么到学校的小问题到如何找工作或上大学等等的问题 我们面临的问题可能或大或小 或简单或复杂 无论它是什么 我们都必须解决它 解决问题和决策是商业和生活的重要技能 我们生活中非常重要的一部分是找到解决
  • UE4_积分相同排名显示问题

    找了一下ue4 rank 函数相关 没找到合适的 自己简单写了个 解决积分相同时名次要一样 之后顺位排序 中国式排名 蓝图实现 c 原理一样 1 2 3 4 5
  • 编译 QT4.6.3 出现 derefIfNotNull 未定义 解决

    使用高版本的编译工具编译QT4 6 3 出现错误 derefIfNotNull 未定义 找到 RefPtr h文件 在WFT 的 public 里面增加 两个函数的定义 void derefIfNotNull T ptr if LIKELY
  • CS从头配置电脑清单(软件篇)

    CS从头配置电脑清单 软件篇 假设你电脑丢了 重新搞了一台 怎么从头配置 迅速可以进行高效产出 假设你是Linux ubuntu系统 安装zoom 安装slack 进行其他设备的信息发送 自己给自己发 项目交流 安装截图软件 推荐flame
  • 【Java】QueryWrapper方法解释

    继承自 AbstractWrapper 自身的内部属性 entity 也用于生成 where 条件 及 LambdaQueryWrapper 可以通过 new QueryWrapper lambda 方法获取 queryWrapper lt
  • 加解密

    目录 一 加密基础知识 1 加密函数 密钥 反函数 2 加密 解密 3 对称加密 4 非对称加密 公钥私钥 二 非对称加密 1 大素数分解问题类 1 RSA 2 Rabin 3 Pollard s rho 素数分解算法 2 离散对数问题类
  • 论文笔记-深度估计(5)Unsupervised Monocular Depth Estimation with Left-Right Consistency

    ECCV2016 Unsupervised Monocular Depth Estimation with Left Right Consistency 本文采用无监督学习 没有ground truth 的方法来估计深度 基本思路是匹配好左
  • Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析

    可以在GPU上跑通的代码 含数据集 我已经放到了以下链接 链接 https pan baidu com s 1gM4KTbRNHzfbGEGgvEjXAw 提取码 e7wu 在服务器上跑 先创建一个虚拟环境 conda create n G