Пример #1
0
        public void WriteAndReadStorageFloatsViaDiskFile()
        {
            const int size = 10;

            var file = new Torch.IO.DiskFile("test19.dat", "rwb");

            Assert.IsNotNull(file);
            Assert.IsTrue(file.CanWrite);

            var storage0 = new AtenSharp.FloatTensor.FloatStorage(size);

            for (var i = 0; i < size; ++i)
            {
                storage0[i] = (float)i;
            }

            file.WriteFloats(storage0);
            Assert.AreEqual(size * sizeof(float), file.Position);
            file.Seek(0);

            var storage1 = new AtenSharp.FloatTensor.FloatStorage(size);
            var rd       = file.ReadFloats(storage1);

            Assert.AreEqual(rd, size);
            Assert.AreEqual(size * sizeof(float), file.Position);

            for (var i = 0; i < rd; ++i)
            {
                Assert.AreEqual(storage0[i], storage1[i]);
            }

            file.Close();
            Assert.IsFalse(file.IsOpen);
        }
Пример #2
0
        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);
        }