public void TensorDot3Dx2DAsEinsteinMatchesTensorDot() { int n = 6, m = 4, l = 2; var x = T.Matrix <float>("x"); var W = T.Shared(NN.Random.Uniform(-1f, 1f, l, m, n).As <float>(), "W"); var loss = T.Norm2(T.EinsteinSum(W, x, "lmn,nx->lmx") - T.Dot(W, x)); var err = T.Function(input: x, output: loss); for (int i = 0; i < 10; ++i) { AssertArray.IsLessThan(err(NN.Random.Uniform(-1f, 1f, n, 10)), 1e-5); } }