public static GWGraph <TrainingInputNodeData, TrainingInputEdgeData, TrainingInputGraphData> ExampleData() { var rdm = new Random(); var graph = GWGraphpackageOne.GWString <TrainingInputNodeData, TrainingInputEdgeData, TrainingInputGraphData>(6); graph.Data = new TrainingInputGraphData(); graph.Data.ObservationToCRFScoreProbability = new double[5, 5]; for (int i = 0; i < 5; i++) { for (int k = 0; k < 5; k++) { graph.Data.ObservationToCRFScoreProbability[i, k] = rdm.NextDouble(); } } foreach (var node in graph.Nodes) { node.Data = new TrainingInputNodeData(); node.Data.Observation = rdm.Next(5); } foreach (var edge in graph.Edges) { edge.Data = new TrainingInputEdgeData(); } return(graph); }
static void Main(string[] args) { CRFBase.Build.Do(); // als Referenz folgende Klasse: //var oldWorkFlow = new WorkflowPede(); //WorkflowPede.Start(null); { // example Gradient Descent //var request = new ExecuteGradientDescent(); //request.Request(); //Console.Write(request.Result); } { // example viterbi var graph = GWGraphpackageOne.GWString <CRFNodeData, CRFEdgeData, CRFGraphData>(12); foreach (var node in graph.Nodes) { node.Data = new CRFNodeData(); node.Data.Scores = new double[] { 1, 2 }; } foreach (var edge in graph.Edges) { edge.Data = new CRFEdgeData(); edge.Data.Scores = new double[, ] { { -11, 1 }, { 2, -22 } }; } var request = new SolveInference(graph, 2, 100); request.Request(); foreach (var entry in request.Solution.Labeling) { Console.Write(entry); Console.ReadKey(); } } }