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 ...
随机推荐
- 找不到 .NETFramework,Version=v5.0 的引用程序集。要解决此问题,请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序。
找不到 .NETFramework,Version=v5.0 的引用程序集.要解决此问题,请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序. visual studio 2019 ...
- 为什么https要使用证书
为什么https要使用证书 什么是httpshttps不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密.证书.完整性保护的功能. 加密:共享密钥加密加密和解密公用一 ...
- Nuxt.js 深入浅出:目录结构与文件组织详解
title: Nuxt.js 深入浅出:目录结构与文件组织详解 date: 2024/6/18 updated: 2024/6/18 author: cmdragon excerpt: 摘要:本文详述 ...
- Django项目实现分页返回,结合forloop实现编号递增
需要导入Paginator包 from django.core.paginator import Paginator 实现步骤: 需要设置每页大小 需要获取每页的页码, 查询对应的数据,提供给Pagi ...
- 新手指引:前后端分离的springboot + mysql + vue实战案例
案例说明: 使用springboot + mysql + vue实现前后端分离的用户查询功能. 1.mysql:创建test数据库 -> 创建user数据表 -> 创建模拟数据: 2.sp ...
- 深入探索 Nuxt3 Composables:掌握目录架构与内置API的高效应用
title: 深入探索 Nuxt3 Composables:掌握目录架构与内置API的高效应用 date: 2024/6/23 updated: 2024/6/23 author: cmdragon ...
- 使用Spleete进行人声与背景声分离
安装:https://pypi.org/project/spleeter/ 下载权重: 2sterms.tar.gz https://github.com/deezer/spleeter/releas ...
- 在WPF中使用WriteableBitmap对接工业相机及常用操作
写作背景 写这篇文章主要是因为工业相机(海康.大恒等)提供的.NET开发文档和示例程序都是用WinForm项目来说明举例的,而在WPF项目中对图像的使用和处理与在WinForm项目中有很大不同.在Wi ...
- 基于RK3588的NPU案例分享!6T是真的强!
RK3588 NPU简介 作为瑞芯微新一代旗舰工业处理器,RK3588 NPU性能可谓十分强大,6TOPS设计能够实现高效的神经网络推理计算.这使得RK3588在图像识别.语音识别.自然语言处理等人工 ...
- mysql判断两个字符串(以逗号分隔)是否存在交集
转载:https://blog.csdn.net/username666/article/details/107815331?utm_medium=distribute.pc_relevant.non ...