func TestExecute(t *testing.T) { PngBefore = "Before.png" PngAfter = "After.png" Filename = "Food.txt" ValidFilename := "Food.txt" Train = true Normalize = true somf.Gridsize = 25 somf.Dimensions = 3 somf.Interactions = 5000 somf.TxVar = 0.5 patterns, _, labels := somf.LoadFile(ValidFilename) Execute() for i := 0; i < len(patterns); i++ { Weights, label := somf.Koh.Test(patterns[i]) if labels[i] != label { err := errors.New("Erro: Resposta errada!") t.Fatal(err) } if int(Weights[i]*100) < 99 { err := errors.New("Porcentagem menor que 99%") t.Fatal(err) } } }
func Execute() { ShowParams() var patterns [][]float64 var out [][]float64 var labels []string // faz a leitura dos dados de treinamento if Loadtype == 0 { patterns, out, labels = somf.LoadFile(Filename) } if Loadtype == 1 { patterns, out, labels = somf.LoadKDDCup() Normalize = false } if Loadtype == 2 { somf.Koh = somf.LoadJson(Filename) } else { somf.Koh.Patterns = patterns somf.Koh.NumReg = len(patterns) somf.Koh.DimensionsOut = len(labels) somf.Koh.Labels = labels somf.Koh.Result = out somf.Koh = somf.Koh.Create(somf.Gridsize, somf.Dimensions, somf.Interactions, somf.TxVar) } if somf.Koh.Empty() { return } // Desenha o estado atual da grade antes do treino somf.Koh.Draw(PngBefore) if Normalize { somf.Koh = somf.Koh.NormalisePatterns() } if Train { // faz o treinamento da base de dados somf.Koh = somf.Koh.Train() } // Desenha o estado atual da grade depois do treino somf.Koh.Draw(PngAfter) // verifica se deve salvar o treinamento if Saved { somf.SaveJson(Savename) } }