paddlepaddle使用笔记------安装
环境18.04,nvidia410,cuda9.0,cudnn7.0
1、paddlepaddle官网
http://paddlepaddle.org/paddle
在页面中间有一个块度安装,在这里选择本机的系统,然后会推荐符合条件的最新安装包
当前paddlepaddle的最新版本是1.4.1,
https://pypi.org/project/paddlepaddle-gpu/#history
从上面这个网站可以看到1.4.1的版本后面会有一个后缀post87、post97等,
这里需要注意一下,默认安装书post97,也就是对应cuda9,cudnn7,安装命令
pip3 install paddlepaddle-gpu
环境是cuda8的时候需要根据cudnn选择版本,如下定义版本
pip3 install paddlepaddle-gpu==1.4.1.post87
以上是pip安装,最为方便,此外还有docker,直接编译等,推荐一个教程,很详细
https://blog.csdn.net/qq_33200967/article/details/83052060#UbuntuDocker_237
我在安装的时候直接在虚拟环境中使用pip安装成功了
2、bug搜索以及提交
bug提交在github的paddle项目的issue上面
https://github.com/PaddlePaddle/Paddle
其他分支提交的bug比较少,解决也比较少。
最后github虽然可以国内登陆,但是同一个问题,使用百度搜索如果可以搜到5条相关的github上的回答,那么使用google就可以搜到10条,要找到类似问题以及相关解决相对要容易一些。
3、代码
paddlepaddle官网提供了API文档,
https://blog.csdn.net/qq_33200967/article/details/83052060#UbuntuDocker_237
在文档中提供了一下简单的深度学习的例子以及讲解,讲解里面有分段的代码功能讲解
同时,paddlepaddle的github里面也有这些例子的官方代码
https://github.com/PaddlePaddle/book
1到9都可以单独执行
然后,上面那个详细讲解安装教程的博主也提供了他的学习过程的代码,
https://github.com/yeyupiaoling/LearnPaddle2
特别是博主提供了自定义数据的处理过程
上面这些都是基础算法,基本上使用cpu或者单gpu运行就可以了。除了这些基础方法以外,官方还提供了一些复杂模型的代码。
https://github.com/PaddlePaddle/models
4、运行
我的系统环境是联想T470笔记本,单GPU,2G,
在运行的时候,如果选择cpu,我的代码是直接开始输出epoch的
如果使用gpu运行,会在开头输出系统情况
W0617 17:32:52.020673 2926 device_context.cc:261] Please NOTE: device: 0, CUDA Capability: 50, Driver API Version: 10.1, Runtime API Version: 9.0
W0617 17:32:52.020849 2926 dynamic_loader.cc:107] Can not find library: libcudnn.so. Please try to add the lib path to LD_LIBRARY_PATH.
如果不是cudnn7.3,可能还会有
W0617 17:32:52.020872 2926 dynamic_loader.cc:165] Failed to find dynamic library: libcudnn.so ( libcudnn.so: cannot open shared object file: No such file or directory )
不过这些就是输出,不会影响正常运行,如果有报错,那就从下文开始找报错内容。
File "/home/zz/program/MNIST-paddle/MNIST-test-paddle.py", line 364, in <module>test()File "/home/zz/program/MNIST-paddle/MNIST-test-paddle.py", line 281, in testexe.run(fluid.default_startup_program())File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/executor.py", line 565, in runuse_program_cache=use_program_cache)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/executor.py", line 642, in _runexe.run(program.desc, scope, 0, True, True, fetch_var_name)
paddle.fluid.core.EnforceNotMet: Invoke operator fill_constant error.
Python Callstacks: File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1725, in _prepend_opattrs=kwargs.get("attrs", None))File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/initializer.py", line 167, in __call__stop_gradient=True)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1517, in create_varkwargs['initializer'](var, self)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/layer_helper_base.py", line 382, in set_variable_initializerinitializer=initializer)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/layers/tensor.py", line 152, in create_global_varvalue=float(value), force_cpu=force_cpu))File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 136, in _create_global_learning_ratepersistable=True)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 275, in _create_optimization_passself._create_global_learning_rate()File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 441, in apply_gradientsoptimize_ops = self._create_optimization_pass(params_grads)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 469, in apply_optimizeoptimize_ops = self.apply_gradients(params_grads)File "/home/zz/env_python3/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 500, in minimizeloss, startup_program=startup_program, params_grads=params_grads)File "/home/zz/program/MNIST-paddle/MNIST-test-paddle.py", line 253, in testoptimizer.minimize(avg_loss)File "/home/zz/program/MNIST-paddle/MNIST-test-paddle.py", line 364, in <module>test()
C++ Callstacks:
Enforce failed. Expected allocating <= available, but received allocating:1837034932 > available:1395654400.
Insufficient GPU memory to allocation. at [/paddle/paddle/fluid/platform/gpu_info.cc:262]
PaddlePaddle Call Stacks:
我在在笔记本上运行该程序的时候报以上错误,在有运行一些代码的4核台机上运行也报以上错误
exe.run(program.desc, scope, 0, True, True, fetch_var_name)
paddle.fluid.core.EnforceNotMet: Invoke operator fill_constant error.
Insufficient GPU memory to allocation. at [/paddle/paddle/fluid/platform/gpu_info.cc:262
调用运算符填充\常量错误。分配的GPU内存不足。
最后在paddlepaddle的issue里面找到了相同的问题,
https://github.com/PaddlePaddle/Paddle/issues/18173
以下是自问自答的提问
https://github.com/PaddlePaddle/Paddle/issues/18173
5、多gpu
按照教程中的使用我在代码中加入一下内容
compiled_prog = fluid.compiler.CompiledProgram(fluid.default_main_program()).with_data_parallel(loss_name=avg_loss.name)
想要直接复制到多gpu,但是运行的时候再次报错
W0618 19:40:39.706670 10145 device_context.cc:261] Please NOTE: device: 1, CUDA Capability: 61, Driver API Version: 10.0, Runtime API Version: 9.0
W0618 19:40:39.710006 10145 device_context.cc:269] device: 1, cuDNN Version: 7.0.
W0618 19:40:41.227665 10145 graph.h:204] WARN: After a series of passes, the current graph can be quite different from OriginProgram. So, please avoid using the `OriginProgram()` method!
2019-06-18 19:40:41,227-WARNING: You can try our memory optimize feature to save your memory usage:# create a build_strategy variable to set memory optimize optionbuild_strategy = compiler.BuildStrategy()build_strategy.enable_inplace = Truebuild_strategy.memory_optimize = True# pass the build_strategy to with_data_parallel APIcompiled_prog = compiler.CompiledProgram(main).with_data_parallel(loss_name=loss.name, build_strategy=build_strategy)!!! Memory optimize is our experimental feature !!!some variables may be removed/reused internal to save memory usage, in order to fetch the right value of the fetch_list, please set the persistable property to true for each variable in fetch_list# Sampleconv1 = fluid.layers.conv2d(data, 4, 5, 1, act=None) # if you need to fetch conv1, then:conv1.persistable = TrueI0618 19:40:46.276876 10145 build_strategy.cc:285] SeqOnlyAllReduceOps:0, num_trainers:1
Traceback (most recent call last):File "/home/cj1/zz/book/02.recognize_digits/train.py", line 267, in <module>main(use_cuda=use_cuda, nn_type=predict)File "/home/cj1/zz/book/02.recognize_digits/train.py", line 249, in mainparams_filename=params_filename)File "/home/cj1/zz/book/02.recognize_digits/train.py", line 165, in trainfetch_list=[avg_loss, acc])File "/home/cj1/env-python3/lib/python3.6/site-packages/paddle/fluid/executor.py", line 580, in runreturn_numpy=return_numpy)File "/home/cj1/env-python3/lib/python3.6/site-packages/paddle/fluid/executor.py", line 446, in _run_parallelexe.run(fetch_var_names, fetch_var_name)
paddle.fluid.core.EnforceNotMet: Invoke operator mul error.
Python Callstacks: File "/home/cj1/env-python3/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1654, in append_opattrs=kwargs.get("attrs", None))File "/home/cj1/env-python3/lib/python3.6/site-packages/paddle/fluid/layer_helper.py", line 43, in append_opreturn self.main_program.current_block().append_op(*args, **kwargs)File "/home/cj1/env-python3/lib/python3.6/site-packages/paddle/fluid/layers/nn.py", line 323, in fc"y_num_col_dims": 1})File "/home/cj1/zz/book/02.recognize_digits/train.py", line 43, in loss_netprediction = fluid.layers.fc(input=hidden, size=10, act='softmax')File "/home/cj1/zz/book/02.recognize_digits/train.py", line 79, in convolutional_neural_networkreturn loss_net(conv_pool_2, label)File "/home/cj1/zz/book/02.recognize_digits/train.py", line 124, in trainprediction, avg_loss, acc = net_conf(img, label)File "/home/cj1/zz/book/02.recognize_digits/train.py", line 249, in mainparams_filename=params_filename)File "/home/cj1/zz/book/02.recognize_digits/train.py", line 267, in <module>main(use_cuda=use_cuda, nn_type=predict)
C++ Callstacks:
The places of matrices must be same at [/paddle/paddle/fluid/operators/math/blas_impl.h:392]
PaddlePaddle Call Stacks:
0 0x7f2ff70bed00p void paddle::platform::EnforceNotMet::Init<char const*>(char const*, char const*, int) + 352
1 0x7f2ff70bf079p paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) + 137
2 0x7f2ff77a48f4p void paddle::operators::math::Blas<paddle::platform::CUDADeviceContext>::MatMul<float>(paddle::framework::Tensor const&, bool, paddle::framework::Tensor const&, bool, float, paddle::framework::Tensor*, float) const + 388
3 0x7f2ff77a4ef6p paddle::operators::MulKernel<paddle::platform::CUDADeviceContext, float>::Compute(paddle::framework::ExecutionContext const&) const + 662
4 0x7f2ff77a50e3p std::_Function_handler<void (paddle::framework::ExecutionContext const&), paddle::framework::OpKernelRegistrarFunctor<paddle::platform::CUDAPlace, false, 0ul, paddle::operators::MulKernel<paddle::platform::CUDADeviceContext, float>, paddle::operators::MulKernel<paddle::platform::CUDADeviceContext, double>, paddle::operators::MulKernel<paddle::platform::CUDADeviceContext, paddle::platform::float16> >::operator()(char const*, char const*, int) const::{lambda(paddle::framework::ExecutionContext const&)#1}>::_M_invoke(std::_Any_data const&, paddle::framework::ExecutionContext const&) + 35
5 0x7f2ff8d4e376p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, paddle::framework::RuntimeContext*) const + 662
6 0x7f2ff8d4eae4p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 292
7 0x7f2ff8d4c40cp paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) + 332
8 0x7f2ff8b5acaap paddle::framework::details::ComputationOpHandle::RunImpl() + 250
9 0x7f2ff8b4dd60p paddle::framework::details::OpHandleBase::Run(bool) + 160
10 0x7f2ff8ab542dp
11 0x7f2ff7e28a73p std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, void> >::_M_invoke(std::_Any_data const&) + 35
12 0x7f2ff718b567p std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) + 39
13 0x7f30579da827p
14 0x7f2ff8ab4fc2p
15 0x7f2ff718c8a4p ThreadPool::ThreadPool(unsigned long)::{lambda()#1}::operator()() const + 404
16 0x7f30514799e0p
17 0x7f30579d26dbp
18 0x7f3057d0b88fp clone + 63 0x7fQ»
使用官方model,里面的多gpu复制函数是fluid.ParallelExecutor,可以正常运行
paddlepaddle使用笔记------安装相关推荐
- 蚂蚁笔记 linux安装教程,群晖docker安装蚂蚁笔记安装教程
原标题:群晖docker安装蚂蚁笔记安装教程 背景 偶然看见其他网友群晖一个 用途 当然是安装镜像了,需要安装2个 映像 mongo与leanote 2.直接创建mongo容器,端口27017 其他默 ...
- 【PaddlePaddle学习笔记】从零开始学习图像分类01——图像处理入门基础
本系列文章链接 [PaddlePaddle学习笔记]从零开始学习图像分类01--图像处理入门基础 未完待续...... 目录 一.关于图像的几个基本概念 1. 像素及其坐标 2. 图像的四种基本类型 ...
- 【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
学习笔记目录 [day 1]python编程:从入门到实践学习笔记-安装.变量和简单数据类型 [day 2]python编程:从入门到实践学习笔记-列表以及其操作 [day 3]python编程:从入 ...
- RHCSA笔记 - 安装虚拟机、安装rhel系统、连接Xshell
RHCSA笔记-安装 简介 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才 ...
- PaddlePaddle学习笔记1
PaddlePaddle学习笔记1 人工智能.机器学习.深度学习的关系 神经网络 使用飞桨构建波士顿房价预测模型 数据处理 模型设计 训练配置 训练过程 保存并测试模型 保存模型 测试模型 跟着飞桨平 ...
- Kotlin学习笔记——安装配置kotlin
这个系列主要为了整理一下自己学习kotlin的笔记以及学习过程中遇到的问题. 整个系列初期大约有20篇左右,我会尽快整理出来.后续会不定时更新,主要是实际使用的案例或者一些知识点的深入探讨. 1.安装 ...
- 群晖docker搭建印象笔记_群晖docker安装蚂蚁笔记安装教程
背景 偶然看见其他网友群晖搭建了蚂蚁笔记,自己也想装一个,但是在其他教程都碰见了一些坑,写个教程防止大家绕路. 用途 传说中蚂蚁笔记有桌面端.手机端.微信端的私有云笔记 安装教程 当然是安装镜像了,需 ...
- PaddlePaddle Gpu版本安装、cocoapi安装采坑、PaddleDetection快速上手
PaddleDetection 快速上手 本项目以路标数据集roadsign为例,详细说明了如何使用PaddleDetection训练一个目标检测模型,并对模型进行评估和预测. 本项目提供voc格式的 ...
- 网管软件Zabbix3.4.8 使用笔记 - 安装配置 20180509
目录 目录 前言 需求 下载 安装 第一次启动 初始设置 修改主题样式和语言 修改时区 Ubuntu操作系统时区设置 apache时区设置 首先把Zabbix服务器自身监控上,可以看到是否开始正常工作 ...
最新文章
- 编写UEditor插件
- 雾霾入侵机房会产生哪些危害?该如何防护?
- 说话不能太绝对,要留有余地
- 职工工资信息系统 c语言题,工资信息管理系统C语言设计.doc
- 安徽大学2014年c语言平时作业,安徽大学2014年c语言平时作业
- 计算机编程关键字一,和计算机编程有关的101条伟大的名言
- edp和edt哪个好_菲拉格慕香水edp和edt的区别 选择适合自己的香水方法
- Unity-两张图片叠加合成一张图片
- 数据挖掘学习1--数据挖掘流程
- 最常见的开源游戏引擎
- 多人联机游戏中联网模块(Socket)的设计和各种问题解决
- 垃圾回收只知道标记清除?一文帮你打通V8垃圾回收
- 嵌入式linux学习笔记(一)
- Clipper库中文帮助文档
- 用计算机弹奏的菊次郎的夏天,“你是钢琴家”“菊次郎的夏天”
- Linux 各个目录的作用
- 计算机组织电脑义诊是什么,计科院计算机协会开展电脑义诊活动
- PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018
- 虾皮电商发展趋势 虾皮台湾站介绍
- 天圆地方放样软件_天圆地方钣金放样下料方法