pytorch学习笔记(十五):pytorch 源码编译碰到的坑总结

2017.11.17

最近打算学习一下 pytorch 源码,所以按照官网的教程从头编译了一下 pytorch 。在编译的过程中,碰到了两个坑,在这里记录一下。

源码编译流程

  • 需要 anaconda
  • 如果要编译cuda 版本的话 CUDA7.5 及以上。Cudnn 6 及以上
  • 如果不想编译 cuda 版本的话:命令行执行 export NO_CUDA=1
1. export CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"
2. conda install numpy pyyaml mkl setuptools cmake cffi
3. conda install -c soumith magma-cuda80 (这个可装可不装)
4. git clone --recursive https://github.com/pytorch/pytorch (下载源码)
5. cd pytorch
6. python setup.py install (坐等编译安装 完毕。)

以下是碰到的几个错误

  • 第一个错误
CMakeFiles/Makefile2:264: recipe for target 'src/ATen/test/CMakeFiles/scalar_test.dir/all' failed
make[1]: *** [src/ATen/test/CMakeFiles/scalar_test.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
解决方法是:(由于我是 ubuntu16.04 编译的, gcc 默认的版本是 5.4,但是用 4.9 编译就不会有问题)
sudo apt install gcc-4.9 g++-4.9
export CC="gcc-4.9"
export CXX="g++-4.9"
# change to pytorch directory
python setup.py clean
python setup.py install
  • 第二个错误:(编译安装成功后, import torch 时报这个错)
libstdc++.so.6: version `GLIBCXX_3.4.21' not found
解决方法:
conda install libgcc 
然后再 import 就没问题了
  • 第三个错误(编译安装成功后,import torch 时报的错)
ModuleNotFoundError: No module named 'torch._C'
这个错误是 因为 我直接在 `pytorch/` 源码路径下打开的 `ipython`。 `cd` 出来就好了
the problem is that you have a folder called torch in the same directory which is being picked up. Do this: cd .. (to change directory), and then start python and import torch, it should work.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

vmware安装cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5

mac系统发展速度确实很快,短短数年,mac os上已经能网银支付(中行、招行、工商、支付宝等均已全面支持mac os了),windows上的经典常用软件:qq...

732
来自专栏比原链

Derek解读Bytom源码-Api Server接口服务

Gitee地址:https://gitee.com/BytomBlockchain/bytom

802
来自专栏大数据智能实战

tensorflow 1.0安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决

在linux redhat 6.4环境下安装tensorflow的过程中,利用PIP直接安装是非常快的。 但是在调用测试的过程中,却发现报这样的错误。 /us...

4289
来自专栏Android相关

Gradle For Android(3)--管理依赖关系

依赖关系管理是Gradle的闪光点。在这个脚本中最好的一点,就是你所需要的只是添加一行到你的build.gradle中,然后Gradle就会从一个远程仓库中下载...

623
来自专栏比原链

Derek解读Bytom源码-Api Server接口服务

Gitee地址:https://gitee.com/BytomBlockchain/bytom

492
来自专栏JadePeng的技术博客

使用.NET Core+Docker 开发微服务

.NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实...

1342
来自专栏北京马哥教育

100 道 Linux 笔试题,能拿 80 分就算大神!

1434
来自专栏运维小白

11.14/11.15 Apache和PHP结合

配置httpd支持php目录概要 httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/a...

21710
来自专栏PHP在线

PsySH——PHP交互式控制台

[导读] 今天在Github上发现了一个挺有意思的PHP项目:PsySH。 百度了一番,发现没有任何关于它的中文文章,经过研究,决定写本篇博文来讲述一下。 如...

4097
来自专栏好好学java的技术栈

java工程师必备linux常用命令,这篇文章就够了

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)...

1071

扫码关注云+社区