public void DumpSetting() { Logger.WriteLine("Model File: {0}", ModelFile); Logger.WriteLine("Hidden Layer Type: {0}", ModelType.ToString()); Logger.WriteLine("Output Layer Type: {0}", OutputLayerType.ToString()); if (ModelDirection == 0) { Logger.WriteLine("RNN Direction: Forward"); } else { Logger.WriteLine("RNN Direction: Bi-directional"); } Logger.WriteLine("Learning rate: {0}", LearningRate); Logger.WriteLine("Dropout: {0}", Dropout); Logger.WriteLine("Max Iteration: {0}", MaxIteration); Logger.WriteLine("Hidden layers: {0}", HiddenLayerSizeList.Count); Logger.WriteLine("RNN-CRF: {0}", IsCRFTraining); Logger.WriteLine("SIMD: {0}, Size: {1}bits", System.Numerics.Vector.IsHardwareAccelerated, Vector <double> .Count * sizeof(double) * 8); Logger.WriteLine("Gradient cut-off: {0}", GradientCutoff); if (SaveStep > 0) { Logger.WriteLine("Save temporary model after every {0} sentences", SaveStep); } }
/// <summary> /// Выходной слой. /// </summary> /// <param name="inputs">Входные значения.</param> /// <param name="type">Тип выходного слоя (по-умолчанию распознавание чисел).</param> /// <param name="countOfNeurons">Количество нейронов.</param> public OutputLayer(List<double> inputs, OutputLayerType type = OutputLayerType.NumberRecognizing, int countOfNeurons = 10) { _inputs = inputs; _type = type; _countOfNeurons = countOfNeurons; }
/// <summary> /// Конструктор выходного слоя для распознавания чисел. /// </summary> /// <param name="neurons">Нейроны.</param> /// <param name="modeType">Тип мода сети.</param> /// <param name="type">Тип распознавания.</param> public OutputLayer(List<Neuron> neurons, NetworkModeType modeType, OutputLayerType type = OutputLayerType.NumberRecognizing) { if (!type.Equals(OutputLayerType.NumberRecognizing) && !modeType.Equals(NetworkModeType.Recognizing)) throw new Exception("Данный конструкто предназначен только для распознавания чисел."); _type = type; _layerNeurons = neurons; }