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 条评论
登录 后参与评论

相关文章

来自专栏梦里茶室

【Chromium中文文档】Chromium如何展示网页

这个文档从底层描述了Chromium是如何展示网页的。请确认你已经读过多进程架构这篇文章。你会特别想要了解主要组件的框架。你也可能对多进程资源加载感兴趣,以了解...

24550
来自专栏大魏分享(微信公众号:david-share)

Oracle11g RAC双NFS仲裁容错方案

说明: 整理文档时发现自己在2010年写的一个RAC容灾方案,觉得有一些用,分享出来。当时为了验证此方案,做了很多PoC。方案相对比较复杂,但是也提供了一种思路...

55890
来自专栏张戈的专栏

【腾讯云的1001种玩法】Nginx网站使用CDN之后禁止用户真实IP访问的方法

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables 、 Nginx...

1.3K00
来自专栏腾讯Bugly的专栏

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

39620
来自专栏Debian社区

Alpine Linux 3.6.1 发布,轻量级 Linux 发行版

Alpine Linux 3.6.1 已发布。Alpine Linux 是由社区开发的操作系统,它面向 x86 路由器、防火墙、虚拟专用网、IP 电话盒及服务器...

17930
来自专栏龙首琴剑庐

Mycat -- linux安装与配置笔记

Mycat介绍,请戳官网:http://www.mycat.io/ 官网地址:http://dl.mycat.io/1.6.5/ 以oracle物理库为例。 1...

35250
来自专栏梧雨北辰的开发录

AFNetworing同步网络请求?

今天遇到了一个有关同步网络请求的需求是这样的,App中所有网络请求都需要使用一个BaseUrl作为前缀,这个前缀需要一个专门的配置接口去请求获取。考虑到如果在A...

34960
来自专栏云知识学习

TKE中的KUBE-DNS 副本数调整

今天处理一个问题,cvm 是一个2c的cvm节点,1.10.5k8s版本,在1.10.5版本中,kube-dns的副本数默认是两个

15420
来自专栏coding

chrome快速打包离线插件

12220
来自专栏派森公园

docker的reap问题

在使用docker容器的时候,应该了解“PID1僵尸进程reap”问题。如果使用的时候不加注意,可能会导致出现一些意想不到的问题。

14630

扫码关注云+社区

领取腾讯云代金券