A python package to support the study of the behaviour of nano-materials by enabling to seamlessly measure through a hardware connection or an equivalent simulation of a nano-device. This package has been created and it is maintained by the Brains team of the NanoElectronics research group at the University of Twente. The package is part of the brainspy project, a set of python libraries to support the development of nano-scale in-materio hardware neural-network accelerators.
This package has been been mainly used for experiments related to obtaining neural-network like in-materio computation from boron-doped silicon.
If you are interested in
The aim of the hardware processor is to measure a boron-doped silicon unit, or a boron-doped silicon chip architecture.
Missing description of the architecture for hardware processors.
This can be done using two main setups:
- CDAQ to NiDAQ
- Missing description and reference to the manuals
- Dependencies
- nidaqmx
- CDAQ to CDAQ
- Missing description and reference to the manuals
- Dependencies
- nidaqmx
There are two main approaches to simulate the behaviour of a boron-doped silicon unit, or a boron doped silicon chip architecture:
One approach is to use a neural network to approximate the results of the device.
Another one is to use a monte carlo algorithm to analyse the internal physics of the device.
*Note: If you want to make development contributions to the code, please follow the instructions in ()[]
- This repository uses the Python programming language, with Anaconda as a package manager. In order to use this code, it is recommended to download Anaconda (with python3 version) for your Operating System, and install it following the official instructions:
- The Anaconda package manager, is based on environments. In order to install the corresponding environment for the code hosted in this repository, follow these instructions:
- Clone the repository into your computer.
- Open the terminal in which anaconda is installed.
- For Windows users, it might be installed as an independent terminal called Anaconda prompt.
- For Mac and Linux users, it can be run from the regular terminal.
- Inside the anaconda terminal, navigate to the main folder of the repository, in which the file conda-env-conf.yml is, using the following commands:
- list directory command:
ls
- change directory command:
cd my_folder
- list directory command:
- Install the environment:
conda env create -f conda-env-conf.yml
- Whenever developing or executing the code from this repository, the corresponding environment needs to be activated from the terminal where Anaconda is installed. This is done with the following command:
conda activate bspyinstr
This code contains useful libraries that are expected to be used and maintained by different researchers and students at University of Twente. If you would like to collaborate on the development of this or any projects of the Brains Research Group, you will be required to create a GitHub account. GitHub is based on the Git distributed version control system, if you are not familiar with Git, you can have a look at their documentation. If Git commands feel daunting, you are also welcome to use the graphical user interface provided by GitHub Desktop.
The development will follow the Github fork-and-pull workflow. You can have a look at how it works here. Feel free to create your own fork of the repository. Make sure you set this repository as upstream, in order to be able to pull the latest changes of this repository to your own fork by syncing. Pull requests on the original project will be accepted after maintainers have revised them. The code in this repository follows the PEP8 python coding style guide. Please make sure that your own fork is synced with this repository, and that it respects the PEP8 coding style.
We recommend you to use the open source development environment of Visual Studio Code for python, which can be installed following the official guide. For Ubuntu users, it is recommended to be installed using snap: sudo snap install --classic code
. We also recommend you to use an auto-formatter in order to follow PEP8. You can install several extensions that will help you with auto-formatting the code:
- Open your conda terminal and activate the environment (if you do not have it activated already):
conda activate bspy-instr
- Install the auto-formatter packages from pip:
pip install autopep8
pip install flake8
- From the same terminal, Open Visual Studio Code with the command:
code
- Go to the extensions marketplace (Ctrl+Shift+X)
- Install the following extensions:
- Python (Microsoft)
- Python Extension Pack (Don Jayamanne)
- Python Docs (Mukundan)
- Python-autopep8 (himanoa)
- cornflakes-linter (kevinglasson)
- On Visual Studio Code, press Ctrl+Shif+P and write "Open Settings (JSON)". The configuration file should look like this:
- Note: If you are using windows, you should add a line that points to your flake8 installation:
"cornflakes.linter.executablePath": "C:/Users/Your_user/AppData/Local/Continuum/anaconda3/envs/Scripts/flake8.exe"
- Note: If you are using windows, you should add a line that points to your flake8 installation:
{
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.formatOnSave": true
},
"python.jediEnabled": true,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue"
}
The code is based on similar scripts from the skynet legacy project. The original contributions to the scripts, which are the base of this project, can be found at skynet, and the authorship remains of those people who collaborated in it. Using existing scripts from skynet, a whole new structure has been designed and developed to be used as a general purpose python library. The code has been greatly refactored and improved, and it is currently maintained by:
- Unai Alegre Ibarra, @ualegre (u.alegre@utwente.nl)
- Hans Christian Ruiz-Euler, @hcruiz (h.ruiz@utwente.nl)
- Bram van de Ven, @bbroo1 (b.vandeven@utwente.nl)