예제 #1
0
        public override Symbol Build(Symbol data)
        {
            var weightName = UUID.GetID(ID + "_w");
            var biasName   = UUID.GetID(ID + "_b");

            var bias = UseBias ? Symbol.Variable(biasName) : null;

            InitParams.Add(weightName, KernalInitializer);
            if (UseBias)
            {
                InitParams.Add(biasName, BiasInitializer);
            }

            ConstraintParams.Add(weightName, KernalConstraint);
            if (UseBias)
            {
                ConstraintParams.Add(biasName, BiasConstraint);
            }

            RegularizerParams.Add(weightName, KernalRegularizer);
            if (UseBias)
            {
                RegularizerParams.Add(biasName, BiasRegularizer);
            }

            var l = sym.FullyConnected(data, Symbol.Variable(weightName), Dim, bias, !UseBias, true, ID);

            if (Activation != ActivationType.Linear)
            {
                var act = ActivationRegistry.Get(Activation);
                l = act.Build(l);
            }

            return(l);
        }
예제 #2
0
 public Dense(int dim, ActType activation       = ActType.Linear,
              BaseInitializer kernalInitializer = null, BaseRegularizer kernalRegularizer = null, BaseConstraint kernalConstraint = null,
              bool useBias = true, BaseInitializer biasInitializer = null, BaseRegularizer biasRegularizer = null, BaseConstraint biasConstraint = null)
     : base("dense")
 {
     Dim               = dim;
     Act               = ActivationRegistry.Get(activation);
     UseBias           = useBias;
     KernalInitializer = kernalInitializer ?? new GlorotUniform();
     BiasInitializer   = biasInitializer ?? new Zeros();
     KernalConstraint  = kernalConstraint;
     BiasConstraint    = biasConstraint;
     KernalRegularizer = kernalRegularizer;
     BiasRegularizer   = biasRegularizer;
 }
예제 #3
0
        public override Symbol Build(Symbol x)
        {
            var   biasName   = UUID.GetID(ID + "_b");
            var   weightName = UUID.GetID(ID + "_w");
            var   bias       = UseBias ? Symbol.Variable(biasName) : null;
            Shape pad        = null;

            if (Padding.HasValue)
            {
                pad = new Shape(Padding.Value, Padding.Value, Padding.Value);
            }
            else
            {
                pad = new Shape();
            }

            if (UseBias)
            {
                InitParams.Add(biasName, BiasInitializer);
            }
            InitParams.Add(weightName, KernalInitializer);

            ConstraintParams.Add(weightName, KernalConstraint);
            if (UseBias)
            {
                ConstraintParams.Add(biasName, BiasConstraint);
            }

            RegularizerParams.Add(weightName, KernalRegularizer);
            if (UseBias)
            {
                RegularizerParams.Add(biasName, BiasRegularizer);
            }

            var conv = sym.Deconvolution(x, Symbol.Variable(weightName), new Shape(KernalSize.Item1, KernalSize.Item2, KernalSize.Item3),
                                         Filters, new Shape(Strides.Item1, Strides.Item2, Strides.Item3), new Shape(DialationRate.Item1, DialationRate.Item2, DialationRate.Item3), pad,
                                         new Shape(), new Shape(), bias, !UseBias, 1, 512, null, false, null, ID);

            if (Activation != ActivationType.Linear)
            {
                var act = ActivationRegistry.Get(Activation);
                conv = act.Build(conv);
            }

            return(conv);
        }
예제 #4
0
 public Dense(
     int dim,
     ActivationType activation         = ActivationType.Linear,
     BaseInitializer weightInitializer = null,
     bool useBias = false,
     BaseInitializer biasInitializer = null)
     : base("dense")
 {
     Dim               = dim;
     Activation        = ActivationRegistry.Get(activation);
     UseBias           = useBias;
     WeightInitializer = weightInitializer ?? new GlorotUniform();
     if (useBias)
     {
         BiasInitializer = biasInitializer ?? new Zeros();
     }
 }
예제 #5
0
        public static ActivationRegistry <IPipelineAction> RegisterStandardServices(IServiceCollection services, IDataStore testsDataStore, LogEventLevel logEventLevel)
        {
            Log.Logger = new LoggerConfiguration()
                         .Enrich.FromLogContext()
                         .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Scope} {Message:lj}{NewLine}{Exception}")
                         .MinimumLevel.Is(logEventLevel)
                         .CreateLogger();

            services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true));

            services.AddSingleton <Testing.CyberTester>();

            services.AddSingleton <ITestStorage, DataStoreBasedTestStorage>();

            //DataStores. unnamed one is the default
            services.AddSingleton <IDataStoreProvider, DataStoreProvider>();
            services.AddSingleton <IDataStore>(testsDataStore);

            //Tests selection
            services.AddSingleton <Func <IDataStore, bool> >((dataStore) => dataStore.Contains(".test"));

            //content/stream transformation //TODO
            services.AddSingleton <IContentProcessor, ContentProcessor>();

            services.AddSingleton <IObjectFactory <IPipelineAction>, ObjectFactory <IPipelineAction> >();
            services.AddSingleton <IObjectFactory <IStreamTransformer>, ObjectFactory <IStreamTransformer> >();

            var actionsRegistry = new ActivationRegistry <IPipelineAction>();

            services.AddSingleton(actionsRegistry);
            RegisterBuiltInActions(actionsRegistry);

            var transformersRegistry = new ActivationRegistry <IStreamTransformer>();

            services.AddSingleton(transformersRegistry);
            RegisterBuiltInStreamTransformers(transformersRegistry);

            services.AddSingleton <ITokenSelectorProvider>(sp => new PropertyBasedTokenSelectorProvider("id"));

            services.AddSingleton <HttpClient>();

            return(actionsRegistry);
        }
예제 #6
0
        public static void RegisterBuiltInActions(ActivationRegistry <IPipelineAction> registry)
        {
            registry.Register <HttpNoBodyAction>("http.get", new Dictionary <string, object> {
                { "httpMethod", HttpMethod.Get }
            });
            registry.Register <HttpAction>("http.put", new Dictionary <string, object> {
                { "httpMethod", HttpMethod.Put }
            });
            registry.Register <HttpAction>("http.post", new Dictionary <string, object> {
                { "httpMethod", HttpMethod.Post }
            });
            registry.Register <HttpNoBodyAction>("http.delete", new Dictionary <string, object> {
                { "httpMethod", HttpMethod.Delete }
            });

            registry.Register <JsonSelectAction>("json.select");
            registry.Register <JsonSelectManyAction>("json.select_many");
            registry.Register <JsonRemoveAction>("json.remove");
            registry.Register <JsonReplaceAction>("json.replace");
            registry.Register <JsonOrderAction>("json.order");
            registry.Register <JsonEditAction>("json.edit");
            registry.Register <JsonValidateAction>("json.validate");

            registry.Register <ToJTokenAction>("to_jtoken");
            registry.Register <LoadItemAction>("item.load");
            registry.Register <SaveItemAction>("item.save");
            registry.Register <SetItemAction>("item.set");
            registry.Register <AssertItemAction>("assert");
            registry.Register <AssertContentDiffAction>("assert_diff");
            registry.Register <AssertContentJsonAction>("assert.json");

            registry.Register <SleepAction>("sleep");
            registry.Register <ExecuteAction>("execute");

            //registry.Register<LogInfoAction>("log.info");
        }
예제 #7
0
 public static void RegisterBuiltInStreamTransformers(ActivationRegistry <IStreamTransformer> registry)
 {
     registry.Register <ConcatStreamTransformer>("concat");
     registry.Register <ConcatJsonArrayStreamTransformer>("concatArray");
     registry.Register <RefStreamTransformer>("ref");
 }
예제 #8
0
 public static void RegisterActions(ActivationRegistry <IPipelineAction> registry)
 {
     registry.Register <HelloWorldAction>("hello_world");
 }