| 85 | class Xavier : public Initializer { |
| 86 | public: |
| 87 | void Fill(Tensor& t) override { |
| 88 | CHECK_EQ(t.nDim(), 2u); |
| 89 | float scale = sqrt(6.0f / (t.shape(0) + t.shape(1))); |
| 90 | LOG(INFO) << "xavier scale " << scale; |
| 91 | singa::Uniform(-scale, scale, &t); |
| 92 | } |
| 93 | }; |
| 94 | |
| 95 | /// Ref: [He, Zhang, Ren and Sun 2015]: Delving Deep into Rectifiers: |