{"id":106,"date":"2019-05-29T16:55:09","date_gmt":"2019-05-29T16:55:09","guid":{"rendered":"https:\/\/groups.cs.umass.edu\/binds\/?page_id=106"},"modified":"2019-05-29T16:55:09","modified_gmt":"2019-05-29T16:55:09","slug":"bindsnet-spiking-neural-networks-in-pytorch","status":"publish","type":"page","link":"https:\/\/groups.cs.umass.edu\/binds\/bindsnet-spiking-neural-networks-in-pytorch\/","title":{"rendered":"BindsNET: Spiking neural networks in PyTorch"},"content":{"rendered":"<p>We are developing a Python package used for simulating spiking neural networks (SNNs) built on top of the <a href=\"http:\/\/pytorch.org\">PyTorch<\/a> neural networks library. For the purpose of our projects, we are interested in applying SNNs to machine learning (ML) problems, but the code can be used for any purpose (machine learning, biological neural network simulation, etc.). There are several advantages to building a SNN library on top of PyTorch:<\/p>\n<ul>\n<li>The flexible <b>torch.Tensor<\/b> object (a thin <b>numpy.ndarray<\/b> wrapper) implements many linear algebra computations on both CPUs and GPUs.<\/li>\n<li>The <b>torch.nn<\/b> library provides numerous efficient neural network layer operations suitable for constructing spiking neural networks.<\/li>\n<li>PyTorch syntax is user-friendly, easy to read, and compact, leading to simple and extensible implementations of spiking neural network components.<\/li>\n<\/ul>\n<p>The <b>BindsNET<\/b> package is the first of its kind: a Python package implementing <i>machine learning-oriented spiking neural networks seamlessly on CPU and GPU hardware<\/i>. Optimizing for computational efficiency, only <i>relatively simple neuron and synapse objects are considered<\/i>; however, users may implement any desired neuronal and synpatic dynamics thanks to <i>easily extensible and modular library structure<\/i>. <b>BindsNET<\/b> includes submodules for the construction of SNNs, dataset loading and encoding into spike trains, generic plotting functionality, and network performance evaluation.<\/p>\n<p><a href=\"https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-107 size-large aligncenter\" src=\"https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML-1024x340.png\" alt=\"\" width=\"600\" height=\"199\" srcset=\"https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML-1024x340.png 1024w, https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML-300x100.png 300w, https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML-768x255.png 768w, https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML-1200x398.png 1200w, https:\/\/groups.cs.umass.edu\/binds\/wp-content\/uploads\/sites\/21\/2019\/05\/UML.png 1206w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><center><\/p>\n<figure><figcaption>Diagram of <b>BindsNET<\/b> library structure<\/figcaption><\/figure>\n<p><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are developing a Python package used for simulating spiking neural networks (SNNs) built on top of the PyTorch neural networks library. For the purpose of our projects, we are interested in applying SNNs to machine learning (ML) problems, but the code can be used for any purpose (machine learning, biological neural network simulation, etc.). &hellip; <a href=\"https:\/\/groups.cs.umass.edu\/binds\/bindsnet-spiking-neural-networks-in-pytorch\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;BindsNET: Spiking neural networks in PyTorch&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-106","page","type-page","status-publish","hentry","hfeed"],"_links":{"self":[{"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/pages\/106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/comments?post=106"}],"version-history":[{"count":1,"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/pages\/106\/revisions"}],"predecessor-version":[{"id":108,"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/pages\/106\/revisions\/108"}],"wp:attachment":[{"href":"https:\/\/groups.cs.umass.edu\/binds\/wp-json\/wp\/v2\/media?parent=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}