public void tf_int_shape() { using (var K = new TensorFlowBackend()) { #region doc_int_shape var input = K.placeholder(shape: new int?[] { 2, 4, 5 }); var a = K.int_shape(input); // (2, 4, 5) var val = new[, ] { { 1, 2 }, { 3, 4 } }; var kvar = K.variable(array: val); var b = K.int_shape(kvar); //(2, 2) #endregion Assert.AreEqual(new[] { 2, 4, 5 }, a); Assert.AreEqual(new[] { 2, 2 }, b); } }
public void tf_ndim_test() { // https://github.com/fchollet/keras/blob/f65a56fb65062c8d14d215c9f4b1015b97cc5bf3/keras/backend/tensorflow_backend.py#L508 using (var K = new TensorFlowBackend()) { #region doc_ndim var input = K.placeholder(shape: new int?[] { 2, 4, 5 }); double[,] val = new double[, ] { { 1, 2 }, { 3, 4 } }; var kvar = K.variable(array: (Array)val); int?a = K.ndim(input); // 3 int?b = K.ndim(kvar); // 2 #endregion Assert.AreEqual(3, a); Assert.AreEqual(2, b); } }
public void tf_variable_test() { using (var K = new TensorFlowBackend()) { #region doc_variable double[,] val = new double[, ] { { 1, 2 }, { 3, 4 } }; var kvar = K.variable(array: (Array)val, dtype: DataType.Double, name: "example_var"); var a = K.dtype(kvar); // 'float64' var b = kvar.eval(); // { { 1, 2 }, { 3, 4 } } #endregion Assert.AreEqual(DataType.Double, a); Assert.AreEqual(new double[, ] { { 1, 2 }, { 3, 4 } }, b); } }
public void tf_random_uniform() { using (var K = new TensorFlowBackend()) { #region doc_random_uniform var kvar = K.random_uniform(new int[] { 100, 2000 }, minval: -4, maxval: 2, dtype: DataType.Double, seed: 1337, name: "uni"); var a = K.dtype(kvar); // float64 (Double) var b = kvar.eval(); #endregion double[,] actual = (double[, ])b; Assert.AreEqual(100, actual.Rows()); Assert.AreEqual(2000, actual.Columns()); var u = UniformContinuousDistribution.Estimate(actual.Reshape()); Assert.AreEqual(-4, u.Minimum, 1e-3); Assert.AreEqual(+2, u.Maximum, 1e-3); Assert.AreEqual(-1, u.Mean, 1e-2); } }
public void tf_softmax_test() { using (var K = new TensorFlowBackend()) { double[,] a = new double[, ] { { -4, 2 }, { 0.02, 0.3 } }; var ta = K.variable(array: (Array)a, name: "example_var", dtype: DataType.Double); var tr = K.softmax(ta); double[,] r = (double[, ])tr.eval(); AssertEx.AreEqual(new double[, ] { { 0.0024726231566347748, 0.99752737684336534 }, { 0.430453776060771, 0.56954622393922893 } }, r, 1e-8); AssertEx.AreEqual(r.GetRow(0), Accord.Math.Special.Softmax(a.GetRow(0)), 1e-8); AssertEx.AreEqual(r.GetRow(1), Accord.Math.Special.Softmax(a.GetRow(1)), 1e-8); } }
public void tf_zeros() { using (var K = new TensorFlowBackend()) { #region doc_zeros var kvar = K.zeros(new int[] { 3, 4 }); var a = K.eval(kvar); // new[,] {{ 0., 0., 0., 0.}, // { 0., 0., 0., 0.}, // { 0., 0., 0., 0.}} #endregion float[,] actual = (float[, ])a; Assert.AreEqual(3, actual.Rows()); Assert.AreEqual(4, actual.Columns()); double[,] expected = new[, ] { { 0.0, 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0, 0.0 } }; Assert.AreEqual(expected, actual); } }