Skip to content

Instantly share code, notes, and snippets.

Created June 23, 2011 19:25
Show Gist options
  • Select an option

  • Save anonymous/1043402 to your computer and use it in GitHub Desktop.

Select an option

Save anonymous/1043402 to your computer and use it in GitHub Desktop.
jung neural network stuff
public Graph<Neuron, Synapse> generateNeuroNetz(NeuronalesNetz net) {
int neuroNetCount = net.getNeuronen().size();
Graph<Neuron, Synapse> graph = new SparseMultigraph<Neuron, Synapse>();
for (Synapse synapse : net.getSynapsen()) {
Neuron start = net.getNeuronen().get(synapse.getStartNeuronID());
Neuron goal = net.getNeuronen().get(synapse.getGoalNeuronID());
graph.addEdge(synapse, start, goal, EdgeType.DIRECTED);
}
int neuroGraphCount = graph.getVertexCount();
if(neuroGraphCount <neuroNetCount){
LOG.info("Nicht alle Neuronen des Netzes wurden dem Graph hinzugefügt, da einige Neuronen keine Synapsen verbinden");
}
return graph;
}
g = generateNeuroNetz(net);
vv = new VisualizationViewer<Neuron, Synapse>(new ISOMLayout<Neuron, Synapse>(g));
getVv().setGraphLayout(new FRLayout<Neuron, Synapse>(getGraph()));
for (Neuron neuron : getGraph().getVertices()) {
if (neuron.getLayer() == null) {
continue;
}
Integer neuronGroup = neuron.getGroupIdOfLayer();
Integer neuronLayer = neuron.getNeuronIdOfLayer();
double x = 100 + neuronGroup*100 + neuronLayer*50;// + Math.random()*100;
double y = 100 + neuron.getLayer() * 100;
getVv().getGraphLayout().setLocation(neuron, new Point2D.Double(x, y));
}
}
class NeuronInfo<V> implements Transformer<V, String>{} // V = Neuron
NeuronInfo neuroInfo;
getVv().getRenderContext().setVertexLabelTransformer(neuroInfo);
class DisplayNeuron<V, E> implements Predicate<Context<Graph<V, E>, V>> { // V = Neuron, E = Synapse
V v = context.element;
Neuron neuron = (Neuron) v;
Integer neuroLayer = neuron.getLayer();
if (filterOn) {
return true;
}
if (layer.equals(neuroLayer)) {
return true;
}
return false;
}
}
if (b == true) {
getVv().getRenderContext().setEdgeShapeTransformer(
new EdgeShape.QuadCurve<Neuron, Synapse>());
} else {
getVv().getRenderContext().setEdgeShapeTransformer(
new EdgeShape.Line<Neuron, Synapse>());
}
initNetz(null);//Zum ersten Start ein kleines Beipspiel-Netz
getVv().getRenderContext().setVertexFillPaintTransformer(getNeuronColor());
getVv().getRenderContext().setEdgeDrawPaintTransformer(getSynapsenColorTransformer());
getVv().getRenderContext().setVertexDrawPaintTransformer(neuronenBorderColor);
getVv().getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line<Neuron, Synapse>()); // Kantenform, gebogen/gerade
getVv().getRenderContext().setVertexIncludePredicate(displayNeuroLayer);
getVv().getRenderContext().setArrowFillPaintTransformer( new ConstantTransformer(Color.lightGray));
getVv().getRenderContext().setArrowDrawPaintTransformer( new ConstantTransformer(Color.black));
graphMouse = new DefaultModalGraphMouse();
graphMouse.add(new GraphPopUp(this));
graphMouse.setMode(ModalGraphMouse.Mode.TRANSFORMING);
getVv().setVertexToolTipTransformer(new NeuronTooltip());
getVv().setGraphMouse(graphMouse);
getVv().setBackground(colorVv);
DisplayNeuron<Neuron,Synapse> displayNeuroLayer;
getVv().getRenderContext().setVertexIncludePredicate(displayNeuroLayer);
// #################
GraphZoomScrollPane graphPanel = new GraphZoomScrollPane(getVv());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment