blob: 4ae15eb7e70c4ea5e87538866925576bd49ef1e9 [file] [log] [blame]
# 度量(Metric)
该模块包含一组用于评估模型性能的度量类。 特定的度量类可以由C++的实现转换或直接使用Python实现。
示例用法:
```python
from singa import tensor
from singa import metric
x = tensor.Tensor((3, 5))
x.uniform(0, 1) # randomly genearte the prediction activation
x = tensor.SoftMax(x) # normalize the prediction into probabilities
y = tensor.from_numpy(np.array([0, 1, 3], dtype=np.int)) # set the truth
f = metric.Accuracy()
acc = f.evaluate(x, y) # averaged accuracy over all 3 samples in x
```
---
### class singa.metric.Metric
基类:`object`
度量类的基类
封装C++度量类的子类可以使用继承的前向函数,并评估此基类的函数。 其他子类需要重写这些函数。 用户需要提供预测值和真实值来获取度量值。
---
#### forward(x, y)
为每个样本计算度量值
**参数:**
- **x (Tensor)** – 预测值,每行代表一个样本的预测值
- **y (Tensor)** – 真实值,每行代表一个样本的真实值
**返回值:** 浮点数组成的tensor,每个样本对应一个浮点数输出
---
#### evaluate(x, y)
计算样本的平均度量值
**参数:**
- **x (Tensor)** – 预测值,每列代表一个样本的预测值
- **y (Tensor)** – 真实值,每列代表一个样本的真实值
**返回值:** 浮点数组成的tensor,每个样本对应一个浮点数输出
---
### class singa.metric.Accuracy
基类:`singa.metric.Metric`
对于单标签预测任务,计算top-1精确度。它调用C++函数实现计算。
---