专栏首页PaddlePaddle【FAQ】模型配置相关问题汇总

【FAQ】模型配置相关问题汇总

导语

我们用13篇推文向您介绍了如何安装、编译和使用PaddlePaddle,您可以点击公众号右下角的历史消息获取相应的使用指南。

在使用指南的最后一部分,我们汇总了使用PaddlePaddle过程中的常见问题,本部分推文目录如下:

2.22:【FAQ】模型配置相关问题汇总

2.23:【FAQ】参数设置相关问题汇总

2.24:【FAQ】本地训练与预测相关问题汇总

2.25:【FAQ】集群训练与预测相关问题汇总

2.26:【FAQ】如何贡献代码

2.27:【FAQ】如何贡献文档

模型配置相关问题汇总
|1. 出现 Duplicated layer name 错误怎么办?

出现该错误的原因一般是用户对不同layer的参数 name 设置了相同的取值。遇到该错误时,先找出参数 name 取值相同的layer,然后将这些layer的参数 name 设置为不同的值。

|2. paddle.layer.memory 的参数 name 如何使用?

paddle.layer.memory 用于获取特定layer上一时间步的输出,该layer是通过参数 name 指定,即,paddle.layer.memory 会关联参数 name 取值相同的layer,并将该layer上一时间步的输出作为自身当前时间步的输出。

PaddlePaddle的所有layer都有唯一的name,用户通过参数 name 设定,当用户没有显式设定时,PaddlePaddle会自动设定。而 paddle.layer.memory 不是真正的layer,其name由参数 memory_name 设定,当用户没有显式设定时,PaddlePaddle会自动设定。paddle.layer.memory 的参数 name 用于指定其要关联的layer,需要用户显式设定。

|3. 两种使用 drop_out 的方法有何区别?

在PaddlePaddle中使用dropout有两种方式:

在相应layer的 layer_atter 设置 drop_rate,以 paddle.layer.fc 为例,代码如下:

fc = paddle.layer.fc(input=input, layer_attr=paddle.attr.ExtraLayerAttribute(drop_rate=0.5))

使用 paddle.layer.dropout,以 paddle.layer.fc 为例,代码如下:

fc = paddle.layer.fc(input=input)

drop_fc = paddle.layer.dropout(input=fc, dropout_rate=0.5)

paddle.layer.dropout 实际上使用了 paddle.layer.add_to,并在该layer里采用第一种方式设置 drop_rate 来使用dropout的。这种方式对内存消耗较大。

PaddlePaddle在激活函数里实现dropout,而不是在layer里实现。

paddle.layer.lstmemory、paddle.layer.grumemory、paddle.layer.recurrent 不是通过一般的方式来实现对输出的激活,所以不能采用第一种方式在这几个layer里设置 drop_rate 来使用dropout。若要对这几个layer使用dropout,可采用第二种方式,即使用 paddle.layer.dropout。

|4. 不同的 recurrent layer 的区别?

以LSTM为例,在PaddlePaddle中包含以下 recurrent layer:

paddle.layer.lstmemory

paddle.networks.simple_lstm

paddle.networks.lstmemory_group

paddle.networks.bidirectional_lstm

按照具体实现方式可以归纳为2类:

A.由 recurrent_group 实现的 recurrent layer:

  • 用户在使用这一类recurrent layer时,可以访问由recurrent unit在一个时间步内计算得到的中间值(例如:hidden states, memory cells等);
  • 上述的 paddle.networks.lstmemory_group 是这一类的 recurrent layer ;

B.将recurrent layer作为一个整体来实现:

  • 用户在使用这一类recurrent layer,只能访问它们的输出值;
  • 上述的 paddle.networks.lstmemory_group 、 paddle.networks.simple_lstm 和 paddle.networks.bidirectional_lstm 属于这一类的实现;

将recurrent layer作为一个整体来实现, 能够针对CPU和GPU的计算做更多优化, 所以相比于recurrent group的实现方式, 第二类 recurrent layer 计算效率更高。 在实际应用中,如果用户不需要访问LSTM的中间变量,而只需要获得recurrent layer计算的输出,我们建议使用第二类实现。

此外,关于LSTM, PaddlePaddle中还包含 paddle.networks.lstmemory_unit 这一计算单元:

  • 不同于上述介绍的recurrent layer , paddle.networks.lstmemory_unit 定义了LSTM单元在一个时间步内的计算过程,它并不是一个完整的recurrent layer,也不能接收序列数据作为输入;
  • paddle.networks.lstmemory_unit 只能在recurrent_group中作为step function使用;

|5. PaddlePaddle的softmax能否指定计算的维度?

PaddlePaddle的softmax不能指定计算维度,只能按行计算。 在图像任务中,对于NCHW,如果需要在C维度计算softmax,可以先使用 paddle.layer.switch_order 改变维度顺序,即将NCHW转换成NHWC,再做一定的reshape,最后计算softmax。

|6. PaddlePaddle是否支持维数可变的数据输入?

PaddlePaddle提供的 paddle.data_type.dense_array 支持维数可变的数据输入。在使用时,将对应数据层的维数设置成一个大于输入数据维数的值用于占位即可。

本文分享自微信公众号 - PaddlePaddle(PaddleOpenSource),作者:PaddlePaddle

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【图像分类】如何转化模型文件

    场景文字识别 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。图像分类是根据图像的语义信息对不同类别图像进行区分,是计...

    用户1386409
  • PaddlePaddle发布基于Docker的AI系统开发流程

    继两周前(2017年3月11日)PaddlePaddle社区发布新的PythonAPI之后,最近又发布了对应的新版Docker镜像,并优化了镜像的体积和组织方式...

    用户1386409
  • 【进阶篇】RNN配置

    编写|PaddlePaddle 排版|wangp 本教程将指导你如何在 PaddlePaddle 中配置循环神经网络(RNN)。本教程中,您将了解如何: 配置循...

    用户1386409
  • iOS 视图,动画渲染机制探究

    终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,...

    QQ音乐技术团队
  • iOS 视图,动画渲染机制探究

    终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,...

    腾讯Bugly
  • python-分解多列表嵌套

        for first_layer in lists:         if isinstance(first_layer,list):          ...

    py3study
  • circos 可视化手册-tile 篇

    tile用来展示基因组上区域的分布,和之前介绍过的highlight不同,这些区域在图中并不是位于同一层的。为了避免不同区域之间的重叠,tile会将有重叠的区域...

    生信修炼手册
  • 深度优先、广度优先创建n叉树

    theanarkh
  • 【DB笔试面试648】在Oracle中,当自动收集任务运行时,哪些对象会被收集?

    存在缺失和陈旧的统计信息的表、索引和分区会被收集。当自动收集任务运行时,优先收集缺失统计信息的对象,然后再收集陈旧统计信息的对象。可以从DBA_TAB_STAT...

    小麦苗DBA宝典
  • 网购秒杀系统架构设计

    本文是「大型网站技术架构 - 核心原理与案例分析」 第 12 章的学习笔记,感兴趣的朋友可以去购买

    柳公子

扫码关注云+社区

领取腾讯云代金券