| 9 | using namespace test; |
| 10 | |
| 11 | TEST_F(ARM_COMMON, RNNCell) { |
| 12 | Checker<RNNCell> checker(handle()); |
| 13 | using NonlineMode = param::RNNCell::NonlineMode; |
| 14 | param::RNNCell param; |
| 15 | for (auto mode : {NonlineMode::IDENTITY, NonlineMode::RELU, NonlineMode::TANH}) |
| 16 | for (size_t batch : {1, 4}) |
| 17 | for (size_t n : {3, 4, 5, 23, 100}) |
| 18 | for (size_t h : {5, 23, 100}) |
| 19 | for (size_t out : {3, 6, 25, 100}) { |
| 20 | param.nonlineMode = mode; |
| 21 | checker.set_param(param); |
| 22 | checker.exec( |
| 23 | {{batch, n}, |
| 24 | {out, n}, |
| 25 | {1, out}, |
| 26 | {batch, h}, |
| 27 | {out, h}, |
| 28 | {1, out}, |
| 29 | {}}); |
| 30 | checker.exec( |
| 31 | {{batch, n}, |
| 32 | {out, n}, |
| 33 | {batch, out}, |
| 34 | {batch, h}, |
| 35 | {out, h}, |
| 36 | {batch, out}, |
| 37 | {}}); |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | TEST_F(ARM_COMMON, RNNCellRecord) { |
| 42 | TaskRecordChecker<RNNCell> checker(0); |