2016-09-15 4 views
4

Ich möchte Daten aus CSV laden diese Datei wie:Encog Last CSV-Datei mit maßgeschneiderten Netzwerk

var format = new CSVFormat('.', ' '); 
IVersatileDataSource source = new CSVDataSource(filename, false, format); 
var data = new VersatileMLDataSet(source); ... 

Dann habe ich zwei Möglichkeiten:

Verwenden EncogModel

var model = new EncogModel(data); 
model.SelectMethod(data, MLMethodFactory.TypeFeedforward); ... 

Mache dein eigenes Netzwerk

var network = new BasicNetwork(); 
network.AddLayer(new BasicLayer(null, true, 11)); 
network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 8)); 
network.AddLayer(new BasicLayer(new ActivationTANH(), true, 5)); 
... 
IMLDataSet trainingSet = new BasicMLDataSet(input, output); 

Ich weiß nicht, wie die Anzahl der Schichten, Neuronen und Aktivierungsfunktionen mit der ersten Option (Encog Model) festgelegt wird. Alles, was ich bekomme, ist ein Standard-Feedforward-Netzwerk mit nur einer versteckten Ebene.


Ich weiß nicht, wie leicht Eingabe- und Ausgabefelder separat bekommen für mein eigenes Netzwerk (zweite Option) von VersatileMLDataSet. Ich kann das ganze Array (Input + Output) bekommen, aber es muss einen Weg geben, wie man nur Input-Array oder Output-Array bekommt.

Antwort

3

ich Antwort in der Dokumentation (Encog Methode & Lernfabriken, Seite 75) gefunden, mit EncogModel ist möglich anpassen Netzwerk wie folgt aus:

var methodFactory = new MLMethodFactory(); 
var method = methodFactory . Create(
MLMethodFactory .TYPEFEEDFORWARD, 
”?:B−>SIGMOID−>4:B−>SIGMOID−>?”, 
2, 
1); 

Der obige Code erstellt ein neuronales Netz mit zwei Eingangs Neuronen und ein Ausgabe-Neuron. Es gibt vier versteckte Neuronen. Bias-Neuronen werden auf den Eingabe- und versteckten Layern platziert. Wie es für neuronale Netze typisch ist, gibt es keine Vorspannungsneuronen auf der Ausgabeschicht . Die Sigmoid-Aktivierung Funktion wird zwischen dem Eingang und versteckten Neuron, sowie zwischen der versteckten und der Ausgangsebene verwendet. Sie können die zwei Fragezeichen in der neuronalen Netzwerkarchitekturzeichenfolge feststellen. Diese werden mit den in der create-Methode angegebenen Eingabe- und Ausgabeschichtgrössen gefüllt und sind optional. Sie können die Eingabe- und Ausgabegrößen fest codieren. In diesem Fall werden die im create-Aufruf angegebenen Nummern ignoriert.

Verwandte Themen