示例#1
0
        public static void Main(string[] args)
        {
            var gpuVolumeBuilder = new VolumeBuilder();
            var cpuVolumeBuilder = new Volume.Double.VolumeBuilder();

            const int nmLayers     = 3;
            const int layerSize    = 30;
            const int nmSets       = 12900;
            const int nmIterations = 1;
            var       input        = Shape.From(24, 1, 1);
            var       output       = 2;

            for (var batchSize = 10; batchSize < nmSets; batchSize *= 2)
            {
                Console.WriteLine($"-- {nameof(batchSize)} == {batchSize} ------------------");

                BuilderInstance <double> .Volume = cpuVolumeBuilder;
                var testNet = Create(layerSize, nmLayers, input, output);
                ExecuteNeuralNet("CPU", testNet, batchSize, nmSets, nmIterations);

                BuilderInstance <double> .Volume = gpuVolumeBuilder;
                testNet = Create(layerSize, nmLayers, input, output);
                ExecuteNeuralNet("GPU", testNet, batchSize, nmSets, nmIterations);

                Console.WriteLine();
            }
        }
示例#2
0
 public static Volume Create(IEnumerable <IFrameReference> frames, CreateVolumeProgressCallback callback)
 {
     Platform.CheckForNullReference(frames, "frames");
     using (VolumeBuilder builder = new VolumeBuilder(frames, callback))
     {
         return(builder.Build());
     }
 }
示例#3
0
 /// <summary>
 /// Builds only the header for a volume of the given frames without loading the volume itself.
 /// </summary>
 /// <param name="frames"></param>
 /// <returns></returns>
 internal static VolumeHeaderData BuildHeader(IEnumerable <IFrameReference> frames)
 {
     Platform.CheckForNullReference(frames, "frames");
     using (var builder = new VolumeBuilder(frames.ToList(), null))
     {
         return(builder.BuildVolumeHeader());
     }
 }
示例#4
0
		public static Volume Create(IEnumerable<IFrameReference> frames, CreateVolumeProgressCallback callback)
		{
			Platform.CheckForNullReference(frames, "frames");
			using (VolumeBuilder builder = new VolumeBuilder(frames, callback))
			{
				return builder.Build();
			}
		}
示例#5
0
        /// <summary>
        /// Validates the specified frames as suitable source data for <see cref="Volume"/>.
        /// </summary>
        /// <param name="frames">The frames to be validated.</param>
        /// <exception cref="ArgumentNullException">Thrown if the parameter was NULL.</exception>
        /// <exception cref="CreateVolumeException">Thrown if the specified source data is not suitable for creating a <see cref="Volume"/>.</exception>
        public static void Validate(IEnumerable <Frame> frames)
        {
            Platform.CheckForNullReference(frames, "frames");
            var frameReferences = frames.Select(f => f.CreateTransientReference()).ToList();

            try
            {
                VolumeBuilder.PrepareFrames(frameReferences);
            }
            finally
            {
                foreach (var reference in frameReferences)
                {
                    reference.Dispose();
                }
            }
        }
示例#6
0
		/// <summary>
		/// Builds only the header for a volume of the given frames without loading the volume itself.
		/// </summary>
		/// <param name="frames"></param>
		/// <returns></returns>
		internal static VolumeHeaderData BuildHeader(IEnumerable<IFrameReference> frames)
		{
			Platform.CheckForNullReference(frames, "frames");
			using (var builder = new VolumeBuilder(frames.ToList(), null))
			{
				return builder.BuildVolumeHeader();
			}
		}
示例#7
0
        public Shape(Op <T> x)
        {
            this._builder = BuilderInstance <T> .Create(); // we want to remain on host

            AddParent(x);
        }
示例#8
0
 /// <summary>
 /// Validates the specified frames as suitable source data for <see cref="Volume"/>.
 /// </summary>
 /// <param name="frames">The frames to be validated.</param>
 /// <exception cref="ArgumentNullException">Thrown if the parameter was NULL.</exception>
 /// <exception cref="CreateVolumeException">Thrown if the specified source data is not suitable for creating a <see cref="Volume"/>.</exception>
 public static void Validate(IEnumerable <IFrameReference> frames)
 {
     Platform.CheckForNullReference(frames, "frames");
     VolumeBuilder.PrepareFrames(frames.ToList());
 }
        public Shape(ConvNetSharp <T> graph, Dictionary <string, object> data) : base(graph)
        {
            this._builder = BuilderInstance <T> .Create(); // we want to remain on host

            this.Index = int.Parse((string)data["index"]);
        }
        public Shape(ConvNetSharp <T> graph, Op <T> x) : base(graph)
        {
            this._builder = BuilderInstance <T> .Create(); // we want to remain on host

            AddParent(x);
        }
示例#11
0
 public VolumeBuilderTests()
 {
     _builder = new VolumeBuilder(new Configuration());
 }