Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
d24abe85
X
X2Paddle
项目概览
PaddlePaddle
/
X2Paddle
12 个月 前同步成功
通知
327
Star
698
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
26
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
X2Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
26
Issue
26
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d24abe85
编写于
4月 02, 2019
作者:
J
Jason
提交者:
GitHub
4月 02, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update SofmaxWithLoss.md
上级
22ce7222
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
6 deletion
+6
-6
caffe2fluid/doc/SofmaxWithLoss.md
caffe2fluid/doc/SofmaxWithLoss.md
+6
-6
未找到文件。
caffe2fluid/doc/SofmaxWithLoss.md
浏览文件 @
d24abe85
...
...
@@ -31,18 +31,18 @@ paddle.fluid.layers.softmax_with_cross_entropy(
```
### 功能差异
#### 计算机制的差异
#### 计算机制
Caffe:只可以使用硬标签的输入,同时进行预处理操作。
PaddlePaddle:可以使用
`soft_label`
来设置是使用软标签(True)还是硬标签(False);将
`numeric_stable_mode`
设为True,同时在GPU环境下运行,可是在使用硬标签之前先进行预处理。此外,软标签和硬标签的label输入略有不同,当log概率的输入大小为
`N*K`
时(
`N`
代表batch size,
`K`
代表类别数量),软标签的输入大小为
`N*K`
,其重的数值数据类型为
`float`
或者
`double`
,每一个batch中的值都是0或者1(1代表属于这个类别,0则代表不属于);硬标签的输入大小为
`N*1`
,其重的数值数据类型为
`int`
,每一个batch中的值都是大于等于0且小于K(代表属于某一个类别)。在Caffe中,则只可以使用硬标签的输入,同时进行预处理操作。
计算softmax的loss时,根据每个样本是否被分配至多个类别中可以分为两类——硬标签和软标签,具体如下:
**硬标签:**
即one-hot label,每个样本仅分到一个类别中。在硬标签中,根据是否对未初始化的log概率进行预处理,又可以分为两类,预处理主要是完成对每个样本中的每个log概率减去该样本中的最大的log概率。
**软标签:**
每个样本至少被分配到一个类别中。
Caffe:只可以使用硬标签的输入,同时进行预处理操作。
PaddlePaddle:可以使用
`soft_label`
来设置是使用软标签(True)还是硬标签(False);将
`numeric_stable_mode`
设为True,同时在GPU环境下运行,可是在使用硬标签之前先进行预处理。此外,软标签和硬标签的label输入略有不同,当log概率的输入大小为
`N*K`
时(
`N`
代表batch size,
`K`
代表类别数量),软标签的输入大小为
`N*K`
,其重的数值数据类型为
`float`
或者
`double`
,每一个batch中的值都是0或者1(1代表属于这个类别,0则代表不属于);硬标签的输入大小为
`N*1`
,其重的数值数据类型为
`int`
,每一个batch中的值都是大于等于0且小于K(代表属于某一个类别)。在Caffe中,则只可以使用硬标签的输入,同时进行预处理操作。
#### 输出
的差异
#### 输出
结果
Caffe:输出是对所有样本的loss进行归一化后的结果,同时根据
`normalize`
和
`normalization`
的设置,归一化形式略有不同,当
`normalization`
是FULL或0时整个loss取和后除以batch的大小,当
`normalization`
是VALID或1时整个loss取和后除以除
`ignore_label`
以外的样本数,为NONE时则取和;当
`normalization`
未设置时,采用
`normalize`
的值进行判断,若
`normalize==1`
则归一化方式是VALID,若
`normalize==0`
则归一化方式是FULL。
PaddlePaddle:输出是每个样本的loss所组成的一个向量,同时如果将参数
`return_softmax`
设为True,则输出的是loss向量和softmax值组成的一个元组。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录