Пример #1
0
        static void Main(string[] args)
        {
            DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);

            var value = GetMinibatchData().data.DeepClone();

//            var value = GetValue();

            GC.Collect();
            Console.WriteLine(value.IsValid);                             // => true
            Console.WriteLine(string.Join(", ", value.Shape.Dimensions)); // => exception occurs
        }
Пример #2
0
        public void ValueObject_test02()
        {
            DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);

            var value = GetMinibatchData().data.DeepClone();

            //            var value = GetValue();

            GC.Collect();
            Assert.True(value.IsValid);
            Assert.Equal(3, value.Shape.Dimensions.Last());
        }
Пример #3
0
        public void ValueObject_test0()
        {
            DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);

            var value = GetMinibatchData().data;

            GC.Collect();

            Assert.True(value.IsValid);

            Action testCode = () => { var lst = value.Shape.Dimensions.ToString(); };
            var    ex       = Record.Exception(testCode);

            Assert.True(ex.Message.StartsWith("This Value object is invalid and can no longer be accessed."));
        }
Пример #4
0
        public void ValueObject_test0()
        {
            DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);

            var value = GetMinibatchData().data;

            GC.Collect();

            Assert.True(value.IsValid);

            Action testCode = () => { var lst = value.Shape.Dimensions.ToString(); };
            var    ex       = Record.Exception(testCode);

            Assert.False(value.IsValid);
        }
Пример #5
0
        protected override void EndProcessing()
        {
            DeviceDescriptor device;

            if (CPUDevice)
            {
                device = DeviceDescriptor.CPUDevice;
            }
            else if (DefaultDevice)
            {
                device = DeviceDescriptor.UseDefaultDevice();
            }
            else
            {
                device = DeviceDescriptor.GPUDevice(GPUDeviceId);
            }

            WriteObject(DeviceDescriptor.TrySetDefaultDevice(device));
        }
Пример #6
0
        public void ValueObject_test0()
        {
            DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);

            var value = GetMinibatchData().data;

            GC.Collect();
            Assert.True(value.IsValid);

            var ex = Assert.Throws <System.ApplicationException>(() =>
            {
                var lst = value.Shape.Dimensions.ToList();
            });

            var result = $"This Value object is invalid and can no longer be accessed." +
                         $"This usually happens when a temporary Value object returned by the CNTK library is not cloned and " +
                         $"accessed later after it has been erased by the library. The Value objects created inside and " +
                         $"returned by the library from APIs like Forward, Backward etc. are temporary and are only guaranteed " +
                         $"to be valid until the next Forward/Backward call. If you want to access the Values later, you must " +
                         $"explicitly clone them.";

            //  Assert.True(result);
        }
Пример #7
0
 public MsgPackSamplerTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #8
0
 public TrainingSessionTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #9
0
 public MinibatchDataTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #10
0
 public NodeGroupText()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #11
0
 public ConverterTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #12
0
 public NDArrayViewTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }
Пример #13
0
 public CompositeFunctionTest()
 {
     UnmanagedDllLoader.Load(@"..\..\..\..\lib");
     DeviceDescriptor.TrySetDefaultDevice(DeviceDescriptor.CPUDevice);
 }