()
| 37 | |
| 38 | |
| 39 | def test_l1_loss(): |
| 40 | N = 3 |
| 41 | C = 5 |
| 42 | predictions = relax.TensorStructInfo((N, C), "float32") |
| 43 | targets = relax.TensorStructInfo((N, C), "float32") |
| 44 | l1_loss = relax.training.loss.L1Loss() |
| 45 | |
| 46 | @R.function |
| 47 | def expected( |
| 48 | predictions: R.Tensor((3, 5), "float32"), targets: R.Tensor((3, 5), "float32") |
| 49 | ) -> R.Tensor((), "float32"): |
| 50 | R.func_attr({"global_symbol": "l1_loss"}) |
| 51 | with R.dataflow(): |
| 52 | lv: R.Tensor((3, 5), "float32") = R.subtract(predictions, targets) |
| 53 | lv1: R.Tensor((3, 5), "float32") = R.abs(lv) |
| 54 | gv: R.Tensor((), "float32") = R.mean(lv1, axis=None, keepdims=False) |
| 55 | R.output(gv) |
| 56 | return gv |
| 57 | |
| 58 | assert_structural_equal(l1_loss(predictions, targets), expected) |
| 59 | |
| 60 | |
| 61 | def test_l1_loss_append(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…