tf.nn.softmax_cross_entropy_with_logits.md 1.5 KB
Newer Older
J
jiangjiajun 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
## tf.nn.softmax_cross_entropy_with_logits

### [tf.nn.rnn_cell.MultiRNNCell](https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits)

```python
tf.nn.softmax_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None
)
```

### [paddle.fluid.layers.softmax_with_cross_entropy](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#softmax-with-cross-entropy)
```python
paddle.fluid.layers.softmax_with_cross_entropy(
    logits, 
    label, 
    soft_label=False, 
    ignore_index=-100, 
    numeric_stable_mode=False, 
    return_softmax=False
)
```

### 功能差异

#### 标签类型
TensorFlow:`labels`只能使用软标签,其`shape``[batch, num_classes]`,表示样本在各个类别上的概率分布;  

PaddlePaddle:通过设置`soft_label`,可以选择软标签或者硬标签。当使用硬标签时,`label``shape``[batch, 1]``dtype``int64`;当使用软标签时,其`shape``[batch, num_classes]``dtype``int64`

#### 返回值
TensorFlow:返回`batch`中各个样本的log loss;  

PaddlePaddle:当`return_softmax``False`时,返回`batch`中各个样本的log loss;当`return_softmax``True`时,再额外返回`logtis`的归一化值。


### 代码示例
```
# logits的shape为[32, 10], dtype为float32; label的shape为[32, 1], dtype为int64

# loss的shape为[32, 1], dtype为float32
loss = fluid.layers.softmax_with_cross_entropy(logits, label, soft_label=False)
                                               

```