Pytorch(GPU)训练RE-NET知识表示学习模型-记录

个人学习记录 2021.1.27

0 下载模型文件

地址: 保存在文件夹【RE-Net】里,文件如图

1 配置环境

用的是anaconda+pycharm

安装anaconda

安装pycharm

确定版本匹配情况

主要是显卡型号、驱动版本,cuda版本,cudnn版本,Torch版本

查看显卡及驱动

现在用的是win10, 直接在任务管理器中看了

查看/安装cuda

Torch版本匹配

配置pytorch

新建一个Python3.6的conda环境, 首先参考renet项目上的操作:

Run the following commands to create a conda environment (assume CUDA10.1):
conda create -n renet python=3.6 numpy
conda activate renet
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
conda install -c dglteam "dgl-cuda10.1<0.5"

检查是否安装成功

安装完成~

训练和测试

参考re-net官方教程:

1、In this code, RE-Net with RGCN aggregator is included. Before running, the user should preprocess datasets.
cd data/DATA_NAME #DATA_NAME是数据集名字
python3 get_history_graph.py

我在终端执行上面语句,没法运行get_history_graph.py,为啥呢? 随后在pycharm里启动,正常运行

2、 We first pretrain the global model.
python3 pretrain.py -d DATA_NAME --gpu 0 --dropout 0.5 --n-hidden 200 --lr 1e-3 --max-epochs 20 --batch-size 1024

在执行之前先切换到模型主目录下 因为在终端依然没反应,在Pycharm里修改参数,运行 ps:突然想到一个问题,我的电脑里有两个显卡,一个集成一个独显,程序跑的时候是用的哪个? 默认识别的是独显吧,因为驱动啥的都是独显的?不懂。 改完参数运行一下,报错,我这里把batchsize改到了8还不行.

RuntimeError: CUDA out of memory. Tried to allocate 372.00 MiB (GPU 0; 4.00 GiB total capacity; 1.94 GiB already allocated; 46.37 MiB free; 2.71 GiB reserved in total by PyTorch)

百度了一圈,最便捷的解决方法貌似是换张好卡,换不了咋办呢?

batchsize改到4,可以啦,但是贼慢,训练一代要125s左右,还好只有20代,可以先跑完。 用任务管理器看了一下GPU利用率,不超过25%(这个专用GPU和共享GPU是啊?)可不可以多利用一下共享内存?

经验分享 程序员 微信小程序 职场和发展