//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> For later adding Activation </summary> /// /// <param name="activation"> The activation. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public void SetActivation([CanBeNull] CompressibleActivationLayer activation) { Activator = activation; if (Activator != null) { foreach (var activationParameter in _activationParameters) { KernelString = KernelString?.Replace(activationParameter.Key, activationParameter.Value); } } CreateKernel(); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Initializes a new instance of the KelpNet.Common.Functions.CompressibleFunction class. /// </summary> /// /// <param name="functionName"> Name of the function. </param> /// <param name="activation"> (Optional) The activation. </param> /// <param name="activationParameters"> (Optional) Options for controlling the activation. </param> /// <param name="name"> (Optional) The name. </param> /// <param name="inputNames"> (Optional) List of names of the inputs. </param> /// <param name="outputNames"> (Optional) List of names of the outputs. </param> /// <param name="gpuEnable"> (Optional) True if GPU enable. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// protected CompressibleLayer(bool verbose, [NotNull] string functionName, [CanBeNull] CompressibleActivationLayer activation = null, [CanBeNull] KeyValuePair <string, string>[] activationParameters = null, [CanBeNull] string name = FUNCTION_NAME, [CanBeNull] string[] inputNames = null, [CanBeNull] string[] outputNames = null, bool gpuEnable = false) : base(name, inputNames, outputNames) { Verbose = verbose; string kernelNameBase = functionName.Replace(" ", string.Empty); ForwardKernelName = kernelNameBase + string.Intern("Forward"); BackwardgWKernelName = kernelNameBase + string.Intern("gWBackward"); BackwardgXKernelName = kernelNameBase + string.Intern("gXBackward"); KernelString = Weaver.GetKernelSource(functionName); _activationParameters = activationParameters; SetActivation(activation); SetGpuEnable(gpuEnable); }