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(); } }
public static Volume Create(IEnumerable <IFrameReference> frames, CreateVolumeProgressCallback callback) { Platform.CheckForNullReference(frames, "frames"); using (VolumeBuilder builder = new VolumeBuilder(frames, callback)) { return(builder.Build()); } }
/// <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()); } }
public static Volume Create(IEnumerable<IFrameReference> frames, CreateVolumeProgressCallback callback) { Platform.CheckForNullReference(frames, "frames"); using (VolumeBuilder builder = new VolumeBuilder(frames, callback)) { return builder.Build(); } }
/// <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(); } } }
/// <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(); } }
public Shape(Op <T> x) { this._builder = BuilderInstance <T> .Create(); // we want to remain on host AddParent(x); }
/// <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); }
public VolumeBuilderTests() { _builder = new VolumeBuilder(new Configuration()); }