public void TestReshapeFloat4DPointToTheSameStorage() { var x = new FloatTensor(10, 10, 10, 5); x.Fill(1); var y = x.NewWithStorage1d((UIntPtr)0, 5000, 1); y[567] = 0; int count = 0; for (int i = 0; i < x.Shape[0]; i++) { for (int j = 0; j < x.Shape[1]; j++) { for (int k = 0; k < x.Shape[2]; k++) { for (int l = 0; l < x.Shape[3]; l++) { Assert.AreEqual(x[i, j, k, l], y[count++]); } } } } }
public Tensor CreateVariable(float[] data, long[] shape, string name = "") { FloatTensor floatTensor = new FloatTensor(shape); var ptr = Marshal.UnsafeAddrOfPinnedArrayElement(data, 0); var tensor = FloatTensor.NewWithStorage1d(new FloatTensor.FloatStorage(new FloatTensor.FloatStorage.HType(ptr, false)), UIntPtr.Zero, data.Length, 1); return(Reshape(Out(tensor), shape)); }
public void NewFloatTensorWithStorage1D() { var x1 = new FloatTensor(9); var x2 = x1.NewWithStorage1d((UIntPtr)0, 9, 1); for (int i = 0; i < x1.Shape[0]; i++) { Assert.AreEqual(x1[i], x2[i]); } }
public void GetFloatTensorData() { const int size = 10; var storage0 = new AtenSharp.FloatTensor.FloatStorage(2 * size); var x1 = new FloatTensor(size); var x2 = FloatTensor.NewWithStorage1d(storage0, UIntPtr.Zero, size, 1); var x3 = x2.NewWithStorage1d((UIntPtr)size, size, 1); Assert.AreNotEqual(IntPtr.Zero, x1.Data); Assert.AreNotEqual(IntPtr.Zero, x2.Data); Assert.AreNotEqual(IntPtr.Zero, x3.Data); Assert.AreNotEqual(IntPtr.Zero, x1.Storage); Assert.AreNotEqual(IntPtr.Zero, x2.Storage); Assert.AreNotEqual(IntPtr.Zero, x3.Storage); }
public void TestReshapeFloat1D() { var x = new FloatTensor(10); for (int i = 0; i < x.Shape[0]; i++) { x[i] = i; } var y = x.NewWithStorage1d((UIntPtr)0, 10, 1); for (int i = 0; i < x.Shape[0]; i++) { Assert.AreEqual(y[i], i); Assert.AreEqual(x[i], i); } }
public void TestReshapeFloat1DPointToTheSameStorage() { var x = new FloatTensor(10); for (int i = 0; i < x.Shape[0]; i++) { x[i] = i; } var y = x.NewWithStorage1d((UIntPtr)0, 10, 1); y[5] = 0; for (int i = 0; i < x.Shape[0]; i++) { Assert.AreEqual(y[i], x[i]); } }