Skip to content

Design

This page describes the design rationale of all major components of the SnoScience package.

Interactions between user and neural network

The following sequence diagram describes the user calls and neural network responses.

useruseruserusernetworknetworknetworknetworkusernetworkuserusernetworknetworkuseruseruserusernetworknetworknetworknetworkinitialisationinitialise commandalt[supported configuration]report readyalt[unsupported loss function]report unsupported loss functionalt[unsupported optimiser]report unsupported optimiserloop[for all layers]add layeralt[supported configuration]report readyalt[unsupported activation function]report unsupported activation functiontrainingtrain commandalt[correct samples]trainreport finishedalt[incorrect samples]report incorrect samplespredictionpredict commandalt[correct samples]predictreturn predictionsalt[incorrect samples]report incorrect samples
useruseruserusernetworknetworknetworknetworkusernetworkuserusernetworknetworkuseruseruserusernetworknetworknetworknetworkinitialisationinitialise commandalt[supported configuration]report readyalt[unsupported loss function]report unsupported loss functionalt[unsupported optimiser]report unsupported optimiserloop[for all layers]add layeralt[supported configuration]report readyalt[unsupported activation function]report unsupported activation functiontrainingtrain commandalt[correct samples]trainreport finishedalt[incorrect samples]report incorrect samplespredictionpredict commandalt[correct samples]predictreturn predictionsalt[incorrect samples]report incorrect samples

Interactions between neural network and layers

The following sequence diagram describes how the neural network controls its layers.

networknetworknetworknetworknetworknetworknetworklayerlayerlayerlayerlayerlayerlayernetworklayernetworknetworklayerlayernetworknetworknetworknetworknetworknetworknetworklayerlayerlayerlayerlayerlayerlayerinitialisationloop[for layer in layers]initialise commandreport readytrainingloop[for epoch in epochs]loop[for layer in layers]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreport readycalculate output derivativescalculate output derivativesreport readycalculate losscalculate loss derivativeloop[for layer in layers]train neuronstrain neuronsreport readypredictionloop[for layer in layers]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreturn outputs
networknetworknetworknetworknetworknetworknetworklayerlayerlayerlayerlayerlayerlayernetworklayernetworknetworklayerlayernetworknetworknetworknetworknetworknetworknetworklayerlayerlayerlayerlayerlayerlayerinitialisationloop[for layer in layers]initialise commandreport readytrainingloop[for epoch in epochs]loop[for layer in layers]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreport readycalculate output derivativescalculate output derivativesreport readycalculate losscalculate loss derivativeloop[for layer in layers]train neuronstrain neuronsreport readypredictionloop[for layer in layers]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreturn outputs

Interactions between layer and neurons

The following sequence diagram describes how the layer controls its neurons.

layerlayerlayerlayerlayerlayerlayerlayerneuronneuronneuronneuronneuronneuronneuronneuronlayerneuronlayerlayerneuronneuronlayerlayerlayerlayerlayerlayerlayerlayerneuronneuronneuronneuronneuronneuronneuronneuroninitialisationloop[for neuron in neurons]initialise commandreport readytrainingloop[for epoch in epochs]loop[for neuron in neurons]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreport readycalculate output derivativescalculate output derivativesreport readycalculate total derivative (layer)loop[for neuron in neurons]calculate total derivativecalculate total derivativereport readycalculate weights and biascalculate weights and biasreport readypredictionloop[for neuron in neurons]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreturn outputs
layerlayerlayerlayerlayerlayerlayerlayerneuronneuronneuronneuronneuronneuronneuronneuronlayerneuronlayerlayerneuronneuronlayerlayerlayerlayerlayerlayerlayerlayerneuronneuronneuronneuronneuronneuronneuronneuroninitialisationloop[for neuron in neurons]initialise commandreport readytrainingloop[for epoch in epochs]loop[for neuron in neurons]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreport readycalculate output derivativescalculate output derivativesreport readycalculate total derivative (layer)loop[for neuron in neurons]calculate total derivativecalculate total derivativereport readycalculate weights and biascalculate weights and biasreport readypredictionloop[for neuron in neurons]calculate inputscalculate inputsreport readycalculate outputscalculate outputsreturn outputs