2019独角兽企业重金招聘Python工程师标准>>>

PaddlePaddle作为国内首个深度学习框架,最近发布了更加强大的Fluid1.2版本, 增加了对windows环境的支持,全面支持了Linux、Mac、 windows三大环境。

PaddlePaddle在功能完备的基础上,也尽量秉承易学易用的特点,在Windows的安装方面,体现了一键式的特点,大部分情况下,只需要一条简单的命令就可以完成安装。

用户在使用的过程中可能会面对安装和编译方面的问题,下面就从这两个方面来分别说明。

一、安装

在深度学习框架上, python语言由于本身的易用性和丰富的类库,被众多深度学习框架作为了应用方面的首选,PaddlePaddle也将python语言作为了自己的应用语言,如下介绍在python下怎么安装PaddlePaddle。­

1. 系统检查

PaddlePaddle目前支持windows7,8,10系列的专业和企业版本,且只支持64位的操作系统。

PaddlePaddle目前支持的python版本覆盖了2.7,3.5,3.6,3.7版本,基本上包含了目前主流使用的所有python版本,可以通过如下方式检查操作系统和python版本情况

>>>import platform

>>>platform.architecture()

('64bit','WindowsPE') # 64 bits on windows 64 bits

>>> platform.version()

'10.0.17134' # windows 10

>>> platform.python_version()

'2.7.15' # python 2.7

如笔者自己的系统就显示了如上信息。

2. 拉取安装包的方式

Paddlepaddle可以选择通过pip命令在线或离线安装,下面展示一下如何离线下载安装包。

PaddlePaddle的安装包已经放到了python官方支持的发布渠道上,打开PyPI官方网站,按图中所示输入Paddlepaddle,

用户将会得到当前所有的Paddlepaddle安装包,根据系统和python版本号选择对应版本即可

3. 安装过程

如果是在线安装,用户直接输入 pip install paddlepaddle即可正常安装。

如果是离线安装,用户输入 pip install paddlepaddle_xxx.whl 包也可以完成安装。

通常情况下pip命令伴随python安装包一起已经得到安装,如果用户发现自己没有安装pip,可以到PyPA

Documentation,按照提示安装pip即可。

如果出现错误,用户可以检查

请使用管理员权限账户操作(比如Administrator账号),并确保使用64位python(查看系统检查章节)

[MO用1]

通过 控制面板 – 账号 – 管理用户账号 即可看到如上界面。

4. 安装完成检查

安装完成后,用户可以打开python命令,输入如下语句,

>>> import paddle.fluid

>>> print(paddle.__version__)

1.2.0 # 当前paddle版本

如果出现错误,用户可以检查

1. PaddlePaddle依赖python的动态库,如果当前python没有选择安装到环境变量,则可能出现找不到依赖库的情况,用户可以在如下图中加入环境路径,再次启动即可。

二、编译

不想自己做编译的用户可以直接跳过此节。

一、 前期准备

1. 环境检查

当前paddle的编译只支持window10 专业/企业版本。

2. 工具准备

2.1 请安装Visual Studio 2015 update3版本。

2.2 下载cmake 3.0及以上版本 安装

2.3 下载git安装

2.4 下载python安装,请注意当前支持版本为2.7,3.5,3.6,3.7

2.4.1 下载pip安装

2.4.2 请运行 pip install protobuf numpy wheel

二、编译过程

Paddlepaddle的编译过程需要保证网络可用,因为部分依赖包需要通过网络环境获取。Paddlepaddle编译需要访问GitHub。

1. 用户需要到 GitHub PaddlePaddle 下载源代码,选择 release 1.2 分支,下载zip包或者 通过命令

a. git clone https://github.com/paddlepaddle/paddle

b. cd paddle

c. git checkout release /1.2

2. 在源代码目录下,建一个build子目录并进入

3. 运行cmake .. -G "Visual Studio 14 2015 Win64" -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIRS} -DPYTHON_LIBRARY=${PYTHON_LIBRARY} -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release

a. 其中PYTHON_INCLUDE_DIRS指的是python的include目录,比如 c:\Python35\include\

b. 其中PYTHON_LIBRARY指定是pythonxx.lib所在的目录,比如c:\Python35\libs\

c. 其中PYTHON_EXECUTABLE指的是python.exe,比如c:\Python35\ python.exe

d. 其中DWITH_FLUID_ONLY=ON指的是paddlepaddle在windows下只支持fluid版本

e. 其中WITH_GPU=OFF指的是paddlepaddle当前只支持CPU

f. 其中WITH_TESTING=OFF指的是关闭测试

g. 其中CMAKE_BUILD_TYPE=Release指的是只支持Release编译

h. 其中-G "Visual Studio 14 2015 Win64"指的是只支持VS2016的64bit编译

4. 目录下会生成paddle.sln文件,用Visual Studio 2015打开,选择64位Release模式,开始编译。

三、编译完成检查

1. 检查方法

如果编译过程不出错则表明编译成功,用户可以到 build\python\dist 目录下查找对应的生成 whl 文件。

2. 常见编译问题

【问】为什么我的paddle.sln文件没有生成?

【答】请按编译过程要求检查是安装了指定的软件和版本

【问】编译过程中为什么出现ssl一类的网络错误?

【答】编译过程需要访问网络,请检查系统代理和网络连通情况。

【问】whl文件为什么没有生成?

【答】请按编译过程要求检查python的变量是否正确设置。

三、训练模型检测

1. 导入网络

PaddlePaddle在使用方面为了贴合用户需求,尽量做到了将复杂的概念简化,深度学习用户将网络结构会理解为多个层结构的叠加,相对应的,PaddlePaddle也对应的有了层的封装。

在定义网络方面,用户可以统一使用fluid.layers里面定义好的结构,来方面的构建一个神经网络结构,比如

# Include libraries.

import paddle

import paddle.fluid as fluid

import numpy

# Configure the neural network.

def net(x, y):

y_predict = fluid.layers.fc(input=x, size=1, act=None)

cost = fluid.layers.square_error_cost(input=y_predict, label=y)

avg_cost = fluid.layers.mean(cost)

return y_predict, avg_cost

2. 定义训练和预测函数

训练和预测方面,可以统一成为输入,计算和输出三个大的方面,用户可以使用fluid.layers.data来定义输入数据,对应在具体在执行层面,executor的run函数中,使用feed来接受输入数据。

下面可以定义预测函数和训练函数,示例

# Define train function.

def train(save_dirname):

x = fluid.layers.data(name='x', shape=[13], dtype='float32')

y = fluid.layers.data(name='y', shape=[1], dtype='float32')

y_predict, avg_cost = net(x, y)

sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.001)

sgd_optimizer.minimize(avg_cost)

train_reader = paddle.batch(

paddle.reader.shuffle(paddle.dataset.uci_housing.train(), buf_size=500),

batch_size=20)

place = fluid.CPUPlace()

exe = fluid.Executor(place)

def train_loop(main_program):

feeder = fluid.DataFeeder(place=place, feed_list=[x, y])

exe.run(fluid.default_startup_program())

PASS_NUM = 1000

for pass_id in range(PASS_NUM):

total_loss_pass = 0

for data in train_reader():

avg_loss_value, = exe.run(

main_program, feed=feeder.feed(data), fetch_list=[avg_cost])

total_loss_pass += avg_loss_value

if avg_loss_value < 5.0:

if save_dirname is not None:

fluid.io.save_inference_model(

save_dirname, ['x'], [y_predict], exe)

return

print("Pass %d, total avg cost = %f" % (pass_id, total_loss_pass))

train_loop(fluid.default_main_program())

# Infer by using provided test data.

def infer(save_dirname=None):

place = fluid.CPUPlace()

exe = fluid.Executor(place)

inference_scope = fluid.core.Scope()

with fluid.scope_guard(inference_scope):

[inference_program, feed_target_names, fetch_targets] = (

fluid.io.load_inference_model(save_dirname, exe))

test_reader = paddle.batch(paddle.dataset.uci_housing.test(), batch_size=20)

test_data = test_reader().next()

test_feat = numpy.array(map(lambda x: x[0], test_data)).astype("float32")

test_label = numpy.array(map(lambda x: x[1], test_data)).astype("float32")

results = exe.run(inference_program,

feed={feed_target_names[0]: numpy.array(test_feat)},

fetch_list=fetch_targets)

print("infer results: ", results[0])

print("ground truth: ", test_label)

2. 执行训练和预测

接着可以简单调用上面定义函数,训练过程会产生输出,用户可以自定义输出目录,在后面的预测过程中,加载训练输出的模型

# Run train and infer.

if __name__ == "__main__":

save_dirname = "fit_a_line.inference.model"

train(save_dirname)

infer(save_dirname)

程序将输出预测结果,比如在笔者的环境中输出为(仅作参考,用户环境可能有出入)

非常欢迎您为PaddlePaddle贡献文档,我们的文档在PaddlePaddle/FluidDoc (GitHub PaddlePaddle专区中的FluidDoc) 中统一管理,如您对PaddlePaddle有任何问题,也非常欢迎您在此Repo提交Issue,您的反馈是我们进步的动力

转载于:https://my.oschina.net/u/3968773/blog/2995911

全面支持三大主流环境 |百度PaddlePaddle新增Windows环境支持相关推荐

  1. 本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细

    转载自:http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程:windows环境下wampse ...

  2. TiggerRamDisk绕过激活锁,屏幕锁隐藏工具新增Windows版本,支持最新iOS16.3系统

    TiggerRamDisk这是一款可以绕过激活锁.屏幕锁界面完美隐藏的工具,也可以解决手机或者平板无法激活的问题,支持最新的IOS14.0-iOS16.3系统,支持Windows10以上和MacOS环 ...

  3. AI环境搭建步骤(Windows环境)

    1. 安装好Anaconda3版本 (1) 安装链接: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D 本文使用A ...

  4. 对Linux支持好的硬件厂商,浅析三大主流显卡厂商对 Linux 的驱动支持

    在挑选一台 Linux 兼容的电脑的时恐怕没有什么能比显卡更纠结了--本文将简要的比较 Intel.AMD 和 NVIDIA 显卡对于 Linux 的驱动支持情况. 以常见的 i686/AMD64 架 ...

  5. 3大主流显卡对linux的支持,转帖:浅析三大主流显卡厂商对 Linux 的驱动支持

    本帖最后由 slgxgls 于 2012-6-27 22:43 编辑 在挑选一台 Linux 兼容的电脑的时恐怕没有什么能比显卡更纠结了--本文将简要的比较 Intel.AMD 和 NVIDIA 显卡 ...

  6. java11 scala_JDK1.10+scala环境的搭建之windows环境

    第一步:安装jdk 1,http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html 去找下 ...

  7. 【环境变量设置】Windows环境变量设置

    啊没错是写anaconda的时候顺便着写的2333 以win10系统为例,打开"此电脑"的属性. 在属性中,下拉找到"高级系统设置". 选择环境变量 找到系统变 ...

  8. 三大升级!百度智能云加速文心一言产业化落地

    随着文心一言等AI应用的爆火,支撑人工智能所需的算力需求也随之暴涨.为支持文心一言超大规模计算需求,进一步实现文心一言的产业化落地,去年年底开始,百度智能云已经通过三大动作全面升级云服务能力: 202 ...

  9. 在Windows环境下Webots与Ros的联合仿真

    系统环境:Win11专业版 21H2   WSL2+Ubuntu18.04+ROS melodic 软件版本:WebotsR2020a rev1 前言 工作原因需要在Windows环境下进行开发,而代 ...

最新文章

  1. 周一02.3运行python程序的两种方式
  2. 华为hybrid-vlan
  3. android 崩溃搜索 AndroidRuntime
  4. Nginx 基础 ( 二)
  5. JFreeChart(二)之饼图
  6. mpvue 从零开始 女友的发带 2 window中设置
  7. 使用thymeleaf的时候报元素类型“meta“必须由匹配的结束标记
  8. c++字符数组整数转换中文大写金额的形式_如何对PHP日期数组进行排序
  9. 风变Python8编程时,两大思维模式
  10. 分享 | 绝对值得一看的深度学习三巨头之一的Yoshua Bengio清华大学讲座视频
  11. Visual Studio 2010 (ASP.Net 4.0)新功能一览(转载)
  12. 【dfs+简单贪心】Leaf Sets【Codeforces Round #510 (Div. 2)】
  13. MySQL 入门(三)—— MySQL数据类型
  14. App中自动生成二维码
  15. Cisco Packet Tracer 实验教程
  16. 实验一 路由器的基本管理
  17. Android系统电池管理(PowerManagerService)框架分析及其在实体设备和虚拟设备上的差异(一)
  18. 易学难精的Python入门之前应该了解哪一些~
  19. 开启Atcoder之路
  20. js base64编码格式图片另存为下载

热门文章

  1. 一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路
  2. FFmpeg中libswscale库简介及测试代码
  3. RANSAC鲁棒参数估计
  4. java7特性_Java7特性中,abstract class和interf
  5. sqlite复制数据主键重复_Flutter 数据库指南
  6. Java学习总结:44(文件复制案例)
  7. Java项目:OA办公自动化系统设计和实现(java+springboot+freemarker+mysql+maven+mybatis+jpa)
  8. 文件流能转换格式吗_amr转换mp3格式文件
  9. 取消对 null 指针“l”的引用。_C++中的引用
  10. vue 发展历程时间轴动画_PPT时间轴如何做出创意感?海量素材免费分享,网友:收藏...