pytorch 第三方模块 GraphNAS 安装成功记录
实验室的小师妹要安装pytorch的第三方模块,经过多方努力没有安装上,后来我接手后也是感觉头疼。
该模块地址:
https://github.com/GraphNAS/GraphNAS
该模块主页给出两种安装方式:
Requirements
Recent versions of PyTorch, numpy, scipy, sklearn, dgl, torch_geometric and networkx are required. Ensure that PyTorch 1.1.0 and CUDA 9.0 are installed. Then run:
pip install torch==1.1.0 -f https://download.pytorch.org/whl/cu90/torch_stable.html
pip install -r requirements.txt
If you want to run in docker, you can run:
docker build -t graphnas -f DockerFile .
docker run -it -v $(pwd):/GraphNAS graphnas python -m eval_scripts.semi.eval_designed_gnn
第一种安装方式, 使用 pip 的安装方式, 各种报错, 错误种类太多。
不过看了看该模块的源代码后对报错的种类有了一些了解, 报错按照运行方式来分类的话可以分为CPU和GPU端上的 编译报错和运行报错,
CPU端上 编译报错就是GCC, G++ 没有安装,或者安装版本不对, 运行报错就是python的版本和编译的版本各种不对。
GPU端上 编译报错就是没有安装NVIDIA显卡的编译器 没有NVCC, 有了nvcc则是没有配置CUDA_HOME PATH 路径。
环境变量 PATH 为:
PATH="/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
环境变量 LD_LIBRARY_PATH 为:
LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64"
------------------------------------
最为关键的就是GPU端编译后运行报错,显示版本不对应,最后终于安装上给出安装的详细配置。
python==3.6.8 (系统原生Python 或者 conda创建的环境 均可)
pytorch 选择pip方式安装的 pytorch==1.1.0 (cuda==9.0)
运行及编译的环境为 cuda10.1 或 cuda10.2 均可。
其中, pytorch 下载地址: https://download.pytorch.org/whl/cu90/torch-1.1.0-cp36-cp36m-linux_x86_64.whl
采用以上配置,可以成功编译模块,安装,然后运行。
验证是否成功:(测试代码)
python -m eval_scripts.semi.eval_designed_gnn
python -m eval_scripts.sup.eval_designed_gnn
python -m graphnas.main --dataset Citeseer
python -m graphnas.main --dataset Citeseer --supervised True --search_mode micro
其实,之前好多种版本的python ,cuda 都已经试过,conda安装的Python还有Ubuntu自带原生的Python都试过,最后就这个成了。
之所以这个最后成功也是误打误撞的,首先电脑上系统自带的原生Python比较老,是3.6.8版本的,没有安装conda, 于是采用pip安装的方式安装pytorch,又由于网速问题选择安装wheel版本的, 然后记错了本地cuda版本,原以为是cuda9.0的,于是安装的pytorch是cuda9.0的, 但是实际上电脑系统的cuda是10.1版本的。于是乎就有了上面的这个成功的配置。中间过程用过各种版本,神奇的是采用conda安装的3.7版本Python和对应的pytorch无法成功安装该模块。这也是试过太多的版本,最后试的有些迷糊了,然后就这样胡乱的成功编译安装,运行了,这也是好神奇的事情,回顾整个安装这个模块的时间可以说一整天时间都用上也不为过。
---------------------------------------------
事后个人总结了一下,安装这个模块的难点主要是GPU上运行代码的编译,由于很多人都是使用conda来跑pytorch的,
但是conda安装的cuda-toolkit只有runtime的api没有编译时候的api,所以一定要在电脑上手动安装cuda,并且配置好环境参数,
同时不要使用conda下的pytorch,因为conda下安装pytorch会自动安装runtime版本的cuda,这样又会和主机的cuda版本造成冲突。
所以,关键点在于主机上手动安装cuda,并配置环境,pytorch也只用pip方式安装wheel版本,这样就避免了编译代码的cuda和运行代码的cuda版本不一致问题。
pytorch 第三方模块 GraphNAS 安装成功记录的更多相关文章
- Nginx 第三方模块的安装以及一致性哈希算法的使用
Nginx 第三方模块的安装以及一致性哈希算法的使用 第三方模块安装方法总结: 以ngx_http_php_memcache_standard_balancer-master为例 1:解压 到 pat ...
- Python学习之==>第三方模块的安装、模块导入
一.模块&包 1.模块 模块实质上就是一个Python文件,它是用来组织代码的.意思就是把Python代码写在里面,文件名就是模块的名称.例如:random.py,random就是模块的名称. ...
- Nginx第三方模块Ngx-dyups安装过程
Ngx-dyups是什么,能干什么 它是一个Nginx第三方动态Upstream配置模块,可以实现在不重启Nginx情况下动态更新反向代理Upstream表.该模块由淘宝开发团队维护,淘宝自家的Ten ...
- 导出当前python安装了哪些第三方模块+批量安装python模块
pip freeze > mokuai.txt #导出你当前python环境里面有哪写第三方模块 pip install -r mokuai.txt #从文件里面批量安装模块
- Python第三方模块tesserocr安装
介绍 在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用 OCR 来识别. tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tes ...
- 【Day2】4.第三方模块的安装与使用
课程目标 1. 使用模块 2. 安装第三方模块 使用模块 • 一个.Py文件称之为一个模块(Module) • 好处: 1. 便于代码维护,把很多函数放到不同文件,一个.py文件 的 代码数量少 2. ...
- nginx如何安装第三方模块
以安装pagespeed为实例 在未安装nginx的情况下安装nginx第三方模块 # ./configure --prefix=/usr/local/nginx-1.4.1 \ --with-htt ...
- 如何安装nginx第三方模块
nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装 ...
- Anaconda安装第三方模块
Anaconda安装第三方模块 普通安装: 进去\Anaconda\Scripts目录,conda install 模块名 源码安装: 进去第三方模块目录,python install setup.p ...
- C#调用Python脚本并使用Python的第三方模块
[转载]http://zh.5long.me/2015/dotnet-call-python/ 前言 InronPython是一种在.NET和Mono上实现的Python语言,使用InronPytho ...
随机推荐
- docker-20.10.24搭建ferry工单系统
安装文档 https://www.fdevops.com/docs/ferry-tutorial-document/introduction 必须要有docker环境,19.03以上的 本文档需用户自 ...
- C#.NET 逐行读取TXT文本
C#.NET 逐行读取TXT文本 using System; using System.IO; class Program { static void Main() { string filePath ...
- Python3.7+Robot Framework+RIDE1.7.4.1安装使用教程
一.解惑:Robot Framewprk今天我们聊一聊,Robot Framework被众多测试工程师误会多年的秘密.今天我们一起来揭秘一下,最近经常在各大群里听到许多同行,在拿Robot Frame ...
- MySQL常见的后端面试题,你会几道?
为什么分库分表 单表数据量过大,会出现慢查询,所以需要水平分表 可以把低频.高频的字段分开为多个表,低频的表作为附加表,且逻辑更加清晰,性能更优 随着系统的业务模块的增多,放到单库会增加其复杂度,逻辑 ...
- 合并STM32 iap的hex文件合并为一个hex文件
--- title: 合并STM32 iap的hex文件合并为一个hex文件 date: 2020-06-15 04:32:26 categories: tags: - iap - stm32 --- ...
- 贝塞尔曲线原理、推导及Matlab实现
贝塞尔曲线原理.推导及Matlab实现 贝塞尔曲线原理.推导及Matlab实现 一.简介 贝塞尔曲线提出 在数学的数值分析领域中,贝塞尔曲线(English:Bézier curve)是计算机图形学中 ...
- 韦东山freeRTOS系列教程之【第五章】队列(queue)
目录 系列教程总目录 概述 5.1 队列的特性 5.1.1 常规操作 5.1.2 传输数据的两种方法 5.1.3 队列的阻塞访问 5.2 队列函数 5.2.1 创建 5.2.2 复位 5.2.3 删除 ...
- 逻辑回归求解二分类问题以及SPSS的实现
分类问题就是给出物质的属性,判断其属于什么成分,本文将讲述逻辑回归求解二分类问题 本文着重于模型的实现,对于推导只是概括性的叙述 目录 一.问题提出 二.逻辑回归函数logistic 1.线性线性概率 ...
- 使用bootstrap-select 动态加载数据不显示的问题,级联数据置为空
动态加载数据 $.showLoading('数据加载中');//开启遮挡层 $.ajax({ url: "/PickoutStock/GetSendReceive", data: ...
- 记录 中**信 ruoyi项目 部署全流程
零 本地环境改为线上环境 包括 1 后端的数据库连接地址 2 后端的文件存储本地地址 3 后端的文件存储ip地址 4 前端baseUrl 一 后端项目打包 双击package 二 mstsc 进入服务 ...
