论文获取:
一、环境配置
1.1、基础准备工作
自己原本环境python3.9及pytorch由于需要更变环境,所以重新学习python、tensorflow、pytorch、CUDA的重新安装,具体参考哔哩哔哩一up主的学习视频
环境配置Anaconda+Pycharm+CUDA+CUdnn+PyTorch+Tensorflow
视频中安装命令
装的是conda -V
conda 4.9.2
那对应の是CUDA10.1,cudnn v7.6.5[Novenber 5th.2019].for CUDA 10.1 下面的 cuDNN Library for Windows 10
pip install tensorflow_gpu==2.1.0 -i https://pypi.douban.com/simple --trusted-host pypi.douban.com
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
环境创建快捷命令
conda create -n py37 python=3.7 %创建python3.7版本
conda activate py37 %激活py37环境
conda deactivate %退出py37环境
由于程序的requirements写着以下要求:
torch==1.9.0+cu102
numpy==1.19.4
sklearn==0.0
scikit-learn==0.24.2
torchvision==0.10.0
scipy==1.5.4
matplotlib==3.4.3
pandas==1.1.4
tqdm==4.62.2
所以自己重新创建了test环境,使用python3.9为python运行环境。直接使用pip install ***安装即可,除了torch==1.9.0+cu102无法安装
使用网站下载GPU 版本GPU版本
CPU版本CPU
1.2、程序运行
问题1:No module named 'torch_sparse'
pip install torch_sparse 出现
提前下载.whl文件
使用pip install torch_sparse-0.6.15+pt113cu116-cp39-cp39-win_amd64.whl
二:代码学习
2.1、readme学习
1、概述
- 包含处理过的数据集和手稿*不规则采样多元时间序列的图导网络*的实现代码
- 提出Raindrop,一个图引导的神经网络,来学习不规则采样的多元时间序列的表示
- 在四个具有挑战性的设置(三个在第4.1节,一个在附录中)的三个医疗保健和人类活动数据集上评估Raindrop,包括一个离开传感器的设置。
2.2、raindorp的关键
- 提出的Raindrop模型使用神经信息传递和时间自我注意来建立传感器之间的依赖关系。
- Raindrop将每个样本(例如,患者)表示为一个图,其中节点表示传感器,边表示它们之间的依赖关系。
- 雨滴将样本作为输入,每个样本包含多个传感器,每个传感器由不规则记录的观察结果组成(例如,在临床数据中,以不规则的时间间隔记录单个患者的健康状态,在不同时间观察到不同的传感器子集)。
- 雨滴模型的灵感来自雨滴以连续但不均匀的时间间隔落入池中,从而产生在池中传播的涟漪效应(如下图所示)。
- Raindrop的主要思想是生成观测嵌入(a)和传感器嵌入(b).计算传感器然后,嵌入作为示例嵌入的基础,这些示例嵌入可以馈送到下游任务中如分类。
(a)Raindrop根据观测值生成观测嵌入,将消息传递给相邻传感器,通过传感器间依赖关系生成观测嵌入。
(b)生成传感器嵌入的说明。我们应用消息将(a)传递给所有时间戳并产生相应的观察结果embeddings。我们将任意数量的观测嵌入聚合到一个固定长度的传感器嵌入中,同时对不同的观察结果给予不同的关注。我们独立地将传感器级处理程序应用于所有传感器。
(c)雨滴根据透水层的边缘权值和在所有时间步长中学习到的传感器间注意权值更新边缘权值。当涉及多个层时,我们显式地显示层索引。
2.3、预测数据样本下载
2.4、程序运行
先运行Raindrop.py文件
三、程序调试
整体程序,重点在于数据预处理上,源码处理脚本
之前的问题解决后就可以运行程序了
先运行p12data的数据