Save the date! Google I/O returns May 18-20

tf.keras.losses.categorical_hinge

Computes the categorical hinge loss between `y_true` and `y_pred`.

`loss = maximum(neg - pos + 1, 0)` where `neg=maximum((1-y_true)*y_pred) and pos=sum(y_true*y_pred)`

Standalone usage:

````y_true = np.random.randint(0, 3, size=(2,))`
`y_true = tf.keras.utils.to_categorical(y_true, num_classes=3)`
`y_pred = np.random.random(size=(2, 3))`
`loss = tf.keras.losses.categorical_hinge(y_true, y_pred)`
`assert loss.shape == (2,)`
`pos = np.sum(y_true * y_pred, axis=-1)`
`neg = np.amax((1. - y_true) * y_pred, axis=-1)`
`assert np.array_equal(loss.numpy(), np.maximum(0., neg - pos + 1.))`
```

`y_true` The ground truth values. `y_true` values are expected to be 0 or 1.
`y_pred` The predicted values.

Categorical hinge loss values.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"没有我需要的信息" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"太复杂/步骤太多" },{ "type": "thumb-down", "id": "outOfDate", "label":"内容需要更新" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"其他" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"易于理解" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"解决了我的问题" },{ "type": "thumb-up", "id": "otherUp", "label":"其他" }]