PaddlePaddle tutorial
什么是PaddlePaddle
PaddlePaddle,百度旗下深度学习开源平台。Paddle(Parallel Distributed Deep Learning,并行分布式深度学习)。
2016年9月27日,百度宣布其全新的深度学习开源平台PaddlePaddle在开源社区Github及百度大脑平台开放,供广大开发者下载使用。
以下内容,主要拷贝于 《PaddlePaddle系列》笔记一——PaddlePaddle的安装
blog.csdn.net/qq_33200967/article/details/79071926
安装与编译 (我的笔记本,只能用3代码编译,因为我的笔记本不支持AVX)
环境
系统:Ubuntu 16.0.4(64位)
处理器:Intel(R) Celeron(R) CPU
内存:4G
安装依赖环境
在一切开始之前,先要安装好依赖环境,下面表格是官方给出的依赖环境
依赖 版本 说明
GCC 4.8.2 推荐使用CentOS的devtools2
CMake >=3.2
Python 2.7.x 依赖libpython2.7.so
pip >=9.0
numpy
SWIG >=2.0
Go >=1.8 可选
使用pip安装
如果你还没有在pip命令的话,首先要安装pip,要确保安装的pip版本是大于9.0.0的,否则可能无法安装paddlepaddle。
安装pip命令如下:
sudo apt install python-pip
安装之后,还有看一下pip的的版本pip --version,如果版本低于9.0.0,那要先升级pip,先要下载一个升级文件,命令如下:
wget https://bootstrap.pypa.io/get-pip.py
下载完成之后,可以使用这个文件安装最新的pip了
python get-pip.py
安装pip就可以动手安装paddlepaddle了。如果权限不够,请在root下执行命令
pip install paddlepaddle
现在就测试看看paddlepaddle有没有,在python的命令终端中试着导入paddlepaddle包:
import paddle.v2 as paddle
paddle.init(use_gpu=False, trainer_count=1)
如果没有报错的话就证明paddlepaddle安装成功了
使用Docker安装运行
为什么要使用Docker安装paddlepaddle呢,Docker是完全使用沙箱机制的一个容器,在这个容器安装的环境是不会影响到本身系统的环境的。通俗来说,它就是一个虚拟机,但是它本身的性能开销很小。在使用Docker安装paddlepaddle前,首先要安装Docker,通过下面的命令就可以安装了:
sudo apt-get install -y docker.io
安装完成之后,可以使用docker --version查看Docker的版本,如果有显示,就证明安装成功了。可以使用docker images查看已经安装的镜像。
一切都没有问题之后,就可以用Docker安装paddlepaddle了,命令如下:
docker pull docker.paddlepaddle.org/paddle
在Docker中执行PaddlePaddle训练程序
假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 train.py (可以参考 PaddlePaddleBook 编写),就可以使用下面的命令开始执行训练:
cd /home/work
docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py
用代码编译PaddlePaddle
安装GCC
一般现在的Ubuntu都是高于个版本了,可以使用gcc --version查看安装的版本。比如笔者的是4.8.4,如果你的是版本是低于4.8.2的就要更新一下了
sudo apt-get install gcc-4.9
安装CMake
命令行安装
sudo apt-get install cmake
或者源码安装
wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
解压源码
tar -zxvf cmake-3.8.0.tar.gz
依次执行下面的代码
# 进入解压后的目录
cd cmake-3.8.0
# 执行当前目录的bootstrap程序
./bootstrap
# make一下
make
# 开始安装
sudo make install
查看是否安装成功,cmake --version,如果正常显示版本,那已经安装成功了。
安装pip
关于安装pip9.0.0以上的版本,在上面的使用pip安装部分已经讲了,这里就不在熬述了
安装numpy
安装numpy很简单,一条命令就够了
sudo apt-get install python-numpy
顺便多说一点,matplotlib这个包也经常用到,顺便安装一下
sudo apt-get install python-matplotlib
安装SWIG
执行下面代码安装SWIG,安装成功之后,使用swig -version检查安装结果
sudo apt-get install -y git curl gfortran make build-essential automake swig libboost-all-dev
安装Go
官方说可选择,那看情况吧,如果像安装安装吧,笔者顺便安装了,就一条代码的事情,老规则go version
sudo apt-get install golang
到这里,依赖环境就已经安装好了,准备安装paddlepaddle
首先要在GitHub上获取paddlepaddle源码
git clone https://github.com/PaddlePaddle/Paddle.git
进入刚下载的Paddle里面
cd Paddle
# 创建一个build文件夹
mkdir build
# 进入build文件夹里
cd build
# 这就要选好你的需求了,比如笔者没有使用GPU,不支持AVX,不要少了..
cmake .. -DWITH_GPU=OFF -DWITH_AVX=OFF
# 最后make,生成你想要的安装包,这个可能很久,一定要有耐心, ....(我的笔记本跑了4个多小时)
make
经过长久的make之后,终于生成了我们想要的安装包,它的路径在Paddle/build/python/dist下,比如笔者在该目录下有这个安装包paddlepaddle-0.0.0-cp27-cp27mu-linux_x86_64.whl,你的命名可能不是这个。之后就可以安装了,使用pip安装:
请切入到该目录
cd build/python/dist/
# 每个人的安装包名字可能不一样。如果权限不够,请在root下执行命令
pip install paddlepaddle-0.0.0-cp27-cp27mu-linux_x86_64.whl
这个我们就已经安装了paddlepaddle,现在就测试看看paddlepaddle有没有安装成功了,在python的命令终端中试着导入paddlepaddle包:
import paddle.v2 as paddle
paddle.init(use_gpu=False, trainer_count=1)
如果没有报错的话就证明paddlepaddle安装成功了
结果还是报错,Illegal instruction (core dump) ,我猜是不是之前安装版本未覆盖。
sudo rm /usr/local/lib/python2.7/dist-packages/paddl*
pip install paddlepaddle-0.0.0-cp27-cp27mu-linux_x86_64.whl
重试OK!
PaddlePaddle tutorial的更多相关文章
- [翻译+山寨]Hangfire Highlighter Tutorial
前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...
- Django 1.7 Tutorial 学习笔记
官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本 ...
- thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)
关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1) Linux下环境配置 ...
- Hive Tutorial(上)(Hive 入门指导)
用户指导 Hive 指导 Hive指导 概念 Hive是什么 Hive不是什么 获得和开始 数据单元 类型系统 内置操作符和方法 语言性能 用法和例子(在<下>里面) 概念 Hive是什么 ...
- Home / Python MySQL Tutorial / Calling MySQL Stored Procedures in Python Calling MySQL Stored Procedures in Python
f you are not familiar with MySQL stored procedures or want to review it as a refresher, you can fol ...
- Using FreeMarker templates (FTL)- Tutorial
Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ...
- Oracle Forms 10g Tutorial Ebook Download - Oracle Forms Blog
A step by step tutorial for Oracle Forms 10g development. This guide is helpful for freshers in Orac ...
- Tutorial - Deferred Rendering Shadow Mapping 转
http://www.codinglabs.net/tutorial_opengl_deferred_rendering_shadow_mapping.aspx Tutorial - Deferred ...
- anguar.js tutorial demo
http://docs.angularjs.cn/tutorial angular 入门demo : PhoneCat Tutorial App 别人的DEMO(官方版):http://angular ...
随机推荐
- [转]2017年最具价值的十大开源项目!GitHub 年度报告~
<GitHub 2017 年度报告>GitHub 每年都会在年度盛会中推出数据报告,其中列出了一些年度的数据,包括其网站中最受欢迎的编程语言.开源项目等.那么今年哪些开源项目最具价值呢?我 ...
- github上fork了别人的项目后,再同步更新别人的提交(转)
原文地址:github上fork了别人的项目后,再同步更新别人的提交 我从github网站和用git命令两种方式说一下. github网站上操作 打开自己的仓库,进入code下面. 点击new pul ...
- 一、ZooKeeper学习
一.什么是ZooKeeper? ZooKeeper是一个分布式应用的开源协调服务.目的就是给用户提供同步.配置管理.分组和命名等服务.是Java语言编写的,支持Java和C两种语言.通俗的讲,它就是用 ...
- java高级---->Serializable的过程分析
本次讲解中我们在上次的基础上,深入的了解一下序列化的流程以及其中的原理.关于序列化的一些知识与使用,请参见我的另一篇博客:java基础---->Serializable的使用.好了,我们进行以下 ...
- vue-router 按需加载
vue的单页面(SPA)项目,必然涉及路由按需的问题.以前我们是这么做的 //require.ensure是webpack里面的,这样做会将单独拉出来作为一个chunk文件 const Login = ...
- weblogic隐藏版本号教程(10.3.6为例)
隐藏版本号,如同大多数中间件都是取消Server头的发送:weblogic而言其默认就是不发送Server头的(即下边的“发送服务器标头”默认就是没钩选的). 写此教程的原因,一是以防Server头被 ...
- System.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放
首先我们修改下JVM的启动参数,重新运行之前博客中的代码.JVM启动参数和测试代码如下: -verbose:gc -XX:+PrintGCDetails -XX:+DisableExplicitGC ...
- jeasyUI DataGrid 根据屏幕宽度自适应, 改变右侧滚动条Size
PC浏览器的Datagrid可以显示多几列,但是在手机浏览器时,只能有选择性的显示前几列. $(window).resize(function () { if (document.body.clien ...
- POJ 1837 Balance 水题, DP 难度:0
题目 http://poj.org/problem?id=1837 题意 单组数据,有一根杠杆,有R个钩子,其位置hi为整数且属于[-15,15],有C个重物,其质量wi为整数且属于[1,25],重物 ...
- python 学习 map /reduce
python 内建了map()和reduce()函数 map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. ...