| 98 | } |
| 99 | |
| 100 | TEST_F(TestTrain, SimpleLinearRegression) { |
| 101 | SymbolVar dev_w = opr::SharedDeviceTensor::make(*graph, *host_w, {"w"}), |
| 102 | dev_data = opr::Host2DeviceCopy::make(*graph, host_data, {"X"}), |
| 103 | dev_y_target = opr::SharedDeviceTensor::make(*graph, host_y, {"y_t"}), |
| 104 | dev_y = opr::MatrixMul::make(dev_data, dev_w.reshape({DIM, 1})) |
| 105 | .reshape({NR_DATA}) |
| 106 | .rename("y"), |
| 107 | delta = (dev_y - dev_y_target).rename("delta"), |
| 108 | loss = opr::Dot::make(delta, delta, {"loss"}), |
| 109 | grad = cg::grad(loss, dev_w).rename("grad"), |
| 110 | dev_w_updated = opr::AddUpdate::make(dev_w, grad, {1, learning_rate}); |
| 111 | |
| 112 | do_train(dev_w_updated, "simple-lr"); |
| 113 | } |
| 114 | |
| 115 | TEST_F(TestTrain, MultiCardLinearRegression) { |
| 116 | SymbolVar dev_data_all = opr::Host2DeviceCopy::make(*graph, host_data, {"X_all"}), |