当前位置: 首页 > 编程日记 > 正文

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

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

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

相关文章:

设计模式之原型模式(Prototype)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factory(抽象工厂模式)&#xff1b;3、Singleton(单例模式)&#xff1b;4、Builder(建造者模式、生成器模式…

NFS共享服务挂载时出现“access denied by server while mounting”的解决方法

笔者用的Linuxf发行版本为Centos6.4&#xff0c;以下方法理论上讲对于Fedora, Red Hat均有效&#xff1a; 搭建好NFS服务后&#xff0c;如果用以下的命令进行挂载&#xff1a; # mount -t nfs 172.16.12.140:/home/liangwode/test /mnt 出现如下错误提示&#xff1a; mount.nf…

设计模式之桥接模式(Bridge)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式包括&#xff1a;1、FactoryMethod(工厂方法模式)&#xff1b;2、Abstract Factory(抽象工厂模式)&#xff1b;3、Singleton(单例模式)&#xff1b;4、Builder(建造者模式、生成器模式…

原360首席科学家颜水成正式加入依图科技,任首席技术官

7 月 29 日&#xff0c;依图科技宣布原 360 首席科学家颜水成正式加入&#xff0c;担任依图科技首席技术官&#xff08;CTO&#xff09;一职。依图方面称&#xff0c;颜水成加入后将带领团队进一步夯实依图在人工智能基础理论和原创算法方面的技术优势&#xff0c;为依图在商业…

分布式存储fastdfs安装使用

1.下载地址https://github.com/happyfish100/fastdfshttps://github.com/happyfish100/fastdfs/wiki安装辅助说明文档2.安装编译环境yum install git gcc gcc-c make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y三台主机&#xff1a…

Hibernate学习(九)———— 二级缓存和事务级别详讲

序言 这算是hibernate的最后一篇文章了&#xff0c;下一系列会讲解Struts2的东西&#xff0c;然后说完Struts2&#xff0c;在到Spring&#xff0c;然后在写一个SSH如何整合的案例。之后就会在去讲SSM&#xff0c;在之后我自己的个人博客应该也差不多可以做出来了。基本上先这样…

超详细中文预训练模型ERNIE使用指南

作者 | 高开远&#xff0c;上海交通大学&#xff0c;自然语言处理研究方向最近在工作上处理的都是中文语料&#xff0c;也尝试了一些最近放出来的预训练模型&#xff08;ERNIE&#xff0c;BERT-CHINESE&#xff0c;WWM-BERT-CHINESE&#xff09;&#xff0c;比对之后还是觉得百…

linux内核SMP负载均衡浅析

需求 在《linux进程调度浅析》一文中提到&#xff0c;在SMP&#xff08;对称多处理器&#xff09;环境下&#xff0c;每个CPU对应一个run_queue&#xff08;可执行队列&#xff09;。如果一个进程处于TASK_RUNNING状态&#xff08;可执行状态&#xff09;&#xff0c;则它…

结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

结构体中最后一个成员为[0]长度数组的用法&#xff1a;这是个广泛使用的常见技巧&#xff0c;常用来构成缓冲区。比起指针&#xff0c;用空数组有这样的优势&#xff1a;(1)、不需要初始化&#xff0c;数组名直接就是所在的偏移&#xff1b;(2)、不占任何空间&#xff0c;指针需…

超全!深度学习在计算机视觉领域的应用一览

作者 | 黄浴&#xff0c;奇点汽车美研中心首席科学家兼总裁转载自知乎简单回顾的话&#xff0c;2006年Geoffrey Hinton的论文点燃了“这把火”&#xff0c;现在已经有不少人开始泼“冷水”了&#xff0c;主要是AI泡沫太大&#xff0c;而且深度学习不是包治百病的药方。计算机视…

SHAREPOINT2010数据库升级2013

在作TEST-SPCONTENT命令时&#xff0c;会提示认证方式不一样。 The [SharePoint - 80] web application is configured with claims authentication mode however the content database you are trying to attach is intended to be used against a windows classic authentic…

设计模式之简单工厂模式(Simply Factory)摘录

从设计模式的类型上来说&#xff0c;简单工厂模式是属于创建型模式&#xff0c;又叫静态工厂方法(Static Factory Method)模式&#xff0c;但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的…

别得意,你只是假装收藏了而已

今天分享我在看罗振宇的《2018 时间的朋友》演讲视频记下的一些思考。跨年演讲中有过这样的一个来自印象笔记的片段&#xff0c;列举了几组对比来说明&#xff1a; 『你在朋友圈里又佛又丧&#xff0c;你在收藏夹里偷偷地积极向上。』 扎心了&#xff0c;这不就是说我吗&#x…

Exchange2003-2010迁移系列之四,配置第一台Exchange CAS/HUB服务器

配置第一台CAS/HUB关于Cas/hub的配置请大家详见前面关于Ex2010的部署&#xff08;两个配置基本相同在这里就不做详细的解说了&#xff09;下面关于Cas的配置在前面已经提到了但是下面是另一种新的方法大家就看看吧生产环境中部署Exchange2010服务器时&#xff0c;是需要按照一定…

设计模式之适配器模式(Adapter)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

JAVA方法中的参数用final来修饰的效果

很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改&#xff0c;其实也就是这个原因&#xff0c;但理解起来可能会有歧义&#xff0c;我们需要注意的是&#xff0c;在final修饰的方法参数中&#xff0c;如果修饰的是基本类型&#xff0c;那么在这个方…

2019世界机器人大赛圆满落幕,荆州中学等15支队伍获「全能奖」

7月28日&#xff0c;2019世界机器人大赛总决赛在河北保定圆满落下帷幕。保定市市委常委罗德强、中国电子学会副秘书长梁靓、保定市政府秘书长王保辉、保定市政府副秘书长安利文、保定市徐水区区长李志永、保定市莲池区政府党组副书记赵建军、世界机器人大赛组委会秘书长李洋、长…

在任何设备上都完美呈现的30个华丽的响应式网站

如今&#xff0c;一个网站只在桌面屏幕上好看是远远不够的&#xff0c;同时也要在平板电脑和智能手机中能够良好呈现。响应式的网站是指它能够适应客户端的屏幕尺寸&#xff0c;自动响应客户端尺寸变化。在这篇文章中&#xff0c;我将向您展示在任何设备上都完美的30个华丽的响…

设计模式之装饰模式(Decorator)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

解决流程自动化“最后一公里问题”,达观数据发布智能 RPA

2019 年7月 26 日&#xff0c;业界领先的人工智能企业达观数据在北京召开“达道至简”为主题的产品发布会&#xff0c;正式推出国内首款自主研发集OCR(光学字符识别)与 NLP(自然语言处理)于一体的达观智能RPA。达观数据创始人兼CEO陈运文、副总裁金克、贾学锋和联合创始人高翔携…

利用脚本生成GUID

实际上&#xff0c;可以使用一种非常简单的方法来生成 GUID&#xff0c;但这种方法近乎像是作弊。&#xff08;您可听清楚了&#xff0c;我们说的可是“近乎”。&#xff09;“Scriptlet.TypeLib”对象的设计用途是帮助您创建“Windows 脚本组件”&#xff08;实质上&#xff0…

设计模式之组合模式(Composite)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

快速开发生命周期支持工具

去年有幸研究公司管理产品的软件平台,当时考虑的产品是基于业务模型之上的一个系统平台,从建模到运行、部署、维护全生命周期管理.当时就提出两个希望先实践解决的就是可复用原型的设计和使用工作流和规则引擎的协作处理询标产品.前一阵子在公司研究成本产品的成本分析和算法,一…

华人学者解开计算机领域30年难题:布尔函数敏感度猜想

整理 | 郭芮来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;1992年&#xff0c;布尔函数敏感度猜想&#xff08;Boolean Sensitivity&#xff09;被提出&#xff0c;这成为了理论计算机科学近三十年来最重要、最令人困惑的开放性问题之一。而近日&#xff0c;来自E…

从1.5K到18K 一个程序员的5年成长之路(二)

这一切都来自于心态CSDN&#xff1a;从开始学习&#xff0c;到学有所成和找工作&#xff0c;再到工作中遇到各种困难&#xff0c;然后获得突破&#xff0c;在整个过程中&#xff0c;能总结下你心态都有哪些变化&#xff1f;是用运用什么方法或方式进行调整&#xff1f;雷果国&a…

设计模式之享元模式(Flyweight)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

你想见的大神都来AI ProCon 2019了,优惠票限时抢购开启!

如今 AI 的发展真实地面临着诸多瓶颈、尽管很多智能助手已经可以执行很多任务&#xff0c;但距离真正的人机自然交互还需要很长时间&#xff1b;强人工智能也迟迟未出现&#xff0c;不知何时才能出现&#xff1b;现有的 AI 只能做好一件事&#xff0c;Alpha Go 只会下棋&#x…

qt练习11 鼠标,按键,滚轮事件学习

源代码: http://files.cnblogs.com/hnrainll/event.zip

windows server 2008 R2上安装MRTG指南

一、实验环境 参考教程&#xff1a;http://www.netmon.org/dummies.htm http://www.docin.com/p-158415185.html MRTG中文手册&#xff1a;http://bbs.chinaunix.net/thread-1344687-1-1.html http://www.enterastream.com/whitepapers/mrtg/mrtg-manual-cap9.html 1.硬件平台 …

设计模式之外观模式(Facade)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…