public void CopyCpuToCuda() { TorchTensor cpu = FloatTensor.Ones(new long[] { 2, 2 }); Assert.Equal("cpu", cpu.DeviceString); if (Torch.IsCudaAvailable()) { var cuda = cpu.Cuda(); Assert.Equal("cuda:0", cuda.DeviceString); // Copy back to CPU to inspect the elements var cpu2 = cuda.Cpu(); Assert.Equal("cpu", cpu2.DeviceString); var data = cpu.Data <float>(); for (int i = 0; i < 4; i++) { Assert.Equal(1, data[i]); } } else { Assert.Throws <InvalidOperationException>(() => cpu.Cuda()); } }
public void CopyCpuToCuda() { TorchTensor cpu = FloatTensor.Ones(new long[] { 2, 2 }); Assert.AreEqual(cpu.Device, "cpu"); if (Torch.IsCudaAvailable()) { var cuda = cpu.Cuda(); Assert.AreEqual(cuda.Device, "cuda"); // Copy back to CPU to inspect the elements cpu = cuda.Cpu(); var data = cpu.Data <float>(); for (int i = 0; i < 4; i++) { Assert.AreEqual(data[i], 1); } } else { Assert.ThrowsException <InvalidOperationException>(() => cpu.Cuda()); } }