0.1.9 • Published 7 years ago
node-red-contrib-brain2 v0.1.9
node-red-contrib-brain2
Install
$ cd $HOME/.node-red
$ npm install node-red-contrib-brain2
Or globally alongside Node-RED:
sudo npm install -g node-red-contrib-brain2
You will need to restart Node-RED for it to pick-up the new nodes.
Usage
node-red-contrib-brain2 is based on brain. You need to see it basic usage at first.
Import network
When there is msg.netJSON
input, network wil be reloaded with JSON provided
Train
When brain
node receive msg.trainData
, it trains the network and output net.toJSON
in msg.net
.
Additional network options can be provided in msg.neuralNetworkOptions
. See brain options doc.
Run
When there is msg.runData
input, brain
node will run net.run()
with data provided. And output the result in msg.decision
.
Example
[{"id":"b3bd8bc0.b3a68","type":"debug","z":"7f66fc40.e319a4","name":"","active":true,"console":"false","complete":"decision","x":730,"y":440,"wires":[]},{"id":"28113a05.5a4d66","type":"inject","z":"7f66fc40.e319a4","name":"inject to run from network saved to flow","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":190,"y":440,"wires":[["d7867c2d.4a5ec"]]},{"id":"d7867c2d.4a5ec","type":"function","z":"7f66fc40.e319a4","name":"fake data","func":"msg.runData = { r: 1, g: 0.4, b: 0 }\nmsg.netJSON = flow.get(\"net\");\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":440,"wires":[["6e3eac3e.09b554"]]},{"id":"ddac5726.90d5a","type":"debug","z":"7f66fc40.e319a4","name":"","active":true,"console":"false","complete":"net","x":720,"y":320,"wires":[]},{"id":"6eb2008.5eaa28","type":"inject","z":"7f66fc40.e319a4","name":"inject to train","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":270,"y":320,"wires":[["7d2cbf20.5940e8"]]},{"id":"7d2cbf20.5940e8","type":"function","z":"7f66fc40.e319a4","name":"fake data","func":"// This function return a fake json array\nmsg.trainData = [{input: { r: 0.03, g: 0.7, b: 0.5 }, output: { black: 1 }},\n {input: { r: 0.16, g: 0.09, b: 0.2 }, output: { white: 1 }},\n {input: { r: 0.5, g: 0.5, b: 1.0 }, output: { white: 1 }}]\n\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":320,"wires":[["2eece628.29eab2"]]},{"id":"d1902d95.7145b","type":"function","z":"7f66fc40.e319a4","name":"save network to flow","func":"if (!!msg.net) flow.set(\"net\",msg.net);\nreturn msg;","outputs":1,"noerr":0,"x":780,"y":260,"wires":[[]]},{"id":"9858fd.1b8e7f","type":"inject","z":"7f66fc40.e319a4","name":"inject to run","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":270,"y":360,"wires":[["5b9f6fc3.1652e8"]]},{"id":"5b9f6fc3.1652e8","type":"template","z":"7f66fc40.e319a4","name":"runData","field":"runData","fieldType":"msg","format":"json","syntax":"plain","template":"{ r: 1, g: 0.4, b: 0 }","x":420,"y":360,"wires":[["2eece628.29eab2"]]},{"id":"2eece628.29eab2","type":"brain2","z":"7f66fc40.e319a4","name":"brain2","learningRate":0.3,"errorThresh":0.005,"iterations":20000,"log":false,"logPeriod":10,"x":570,"y":320,"wires":[["ddac5726.90d5a","d1902d95.7145b","b3bd8bc0.b3a68"]]},{"id":"6e3eac3e.09b554","type":"brain2","z":"7f66fc40.e319a4","name":"brain2","learningRate":0.3,"errorThresh":0.005,"iterations":20000,"log":false,"logPeriod":10,"x":570,"y":440,"wires":[["b3bd8bc0.b3a68"]]}]
License
MIT License