.. Dynex SDK documentation master file, created by sphinx-quickstart on Sat Sep 23 17:55:25 2023. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to Dynex SDK's documentation! ===================================== .. toctree:: :maxdepth: 2 :caption: Dynex SDK Modules: Dynex Packages Getting started Guides Using the Dynex SDK Sampler Properties and Parameters Problem-Solving Handbook Neuromorphic Machine Learning Dynex TensorFlow Library Dynex PyTorch Library Dynex Qiskit class Dynex Quantum-CFD Library Dynex Quantum-SISR Library Dynex Scikit-Learn Plugin Note: The latest files are availabe in our `GitHub DynexSDK `_ Getting Started with the Dynex SDK ===================================== Introduces the Dynex Neuromorphic Computing Platform and the Dynex SDK, describes the basics of how it works, and explains with simple examples how to use it to solve problems and how to use it for Machine Learning. You can also join the `Dynex workspace on Slack `_ to learn more and to interact with the developer community. - `Welcome to the Dynex Platform `_ - `Workflow: Formulation and Sampling `_ - `What is Neuromorphic Computing? `_ - `Solving Problems With the Dynex SDK `_ - `Simple Sampling Examples `_ - `Appendix: Next Learning Steps `_ Videos ===================================== The following videos are available to explain how to use the Dynex SDK: - `Tutorial: Compute on Dynex: "Hello, world" (using Github CodeSpace) `_ - `Tutorial: Compute on Dynex: "Hello, world" (using pip install dynex) `_ Guides ===================================== Computing on Quantum or neuromorphic systems is fundamentally different than using traditional hardware and is a very active area of research with new algorithms surfacing almost on a weekly basis. Our guides are step-by-step instructions on how to utilise neuromorphic computing with the Dynex SDK. These examples are just some of multiple possibilities to perform machine learning tasks. However, they can be easily adopted to other use cases. - `Medium: Computing on the Dynex Neuromorphic Platform: Image Classification `_ - `Medium: Computing on the Dynex Neuromorphic Platform: IBM Qiskit 4-Qubit Full Adder Circuit `_ - `Medium: Benchmarking the Dynex Neuromorphic Platform with the Q-Score `_ Book ===================================== **Neuromorphic Computing for Computer Scientists: A complete guide to Neuromorphic Computing on the Dynex Neuromorphic Cloud Computing Platform**, Dynex Developers, 2024, 249 pages, available as eBook, paperback and hardcover .. image:: https://raw.githubusercontent.com/dynexcoin/website/main/bookannouncement.png :width: 600 - `Amazon.com `_ - `Amazon.co.uk `_ - `Amazon.de `_ Dynex Scientific Papers ===================================== - `Advancements in Unsupervised Learning: Mode-Assisted Quantum Restricted Boltzmann Machines Leveraging Neuromorphic Computing on the Dynex Platform `_; Adam Neumann, Dynex Developers; 112834961; Academia.edu; 2024 - `HUBO & QUBO and Prime Factorization `_; Samer Rahmeh, Cali Technology Solutions, Dynex Developers; 112871514; Academia.edu; 2024 - `Framework for Solving Harrow-Hassidim-Lloyd Problems with Neuromorphic Computing using the Dynex Cloud Computing Platform `_; Samer Rahmeh, Cali Technology Solutions, Dynex Developers; 112871175; Academia.edu; 2023 Using the Dynex SDK ===================================== Introduces the Dynex SDK and provides references to usage information. The Dynex Platform is intended to solve arbitrary application problems formulated as quadratic models. Problems submitted directly to the Dynex Platform are in the **binary quadratic model** (BQM>`_ format, unconstrained with binary-valued variables and structured for the topology of the Dynex Chips. They also accept arbitrarily structured quadratic models (QM>`_, constrained or unconstrained, with real, integer, and binary variables. The Dynex Platform, which implement state-of-the-art neuromorphic computations, is designed to accommodate even very large problems. - `Installing the Dynex SDK `_ - `License `_ - `Example Usage `_ Pricing ===================================== Using Dynex technology for computations on the local machine (mainnet=False) is free. It allows sampling of computing problems on the local machine before using the Dynex Neuromorphic Computing cloud and is mainly intended for prototyping and testing of code. Computing on the mainnet is being charged in DNX based on usage. Users can maintain their balances in the Dynex Market Place. The cost for compute on Dynex is based on supply & demand, whereas higher paid compute jobs are being prioritized by the workers. The value "CURRENT AVG BLOCK FEE" shows the current average price for compute. It defines the amount to be paid for each block, which is being produced every 2 minutes. Depending on the number of chips (num_reads), duration (annealing_time), size and complexity of your computational problem, only a fraction of the entire network is being used. The price charged for compute is being calculated as a fraction of the base "block fee" and is being displayed during computing in the Python interface as well as in the "Usage" section of the Dynex market place. - `Dynex Market Place `_ Sampler Properties and Parameters ===================================== This guide details limitations on problem size, the range of time allowed for solving problems, etc and input arguments that enable you to configure execution. - `Defining a Model `_ - `Sampling Models `_ - `Parallel Sampling `_ Problem-Solving Handbook ===================================== Provides advanced guidance on using the Dynex Platform, in particular the Dynex SDK. It lists, explains, and demonstrates techniques of problem formulation and configuring parameters to optimize performance. - `Advanced Examples `_ - `112 Optimization Problems and their QUBO formulations `_ Neuromorphic Machine Learning ===================================== Demonstrates various examples of neuromorphic enhanced Machine Learning techniques, for example Quantum-Boltzmann-Machines (QRBMs>`_, Quantum-Support-Vector-Machines (QSVM>`_ or feature optimisation with QBoost. Quantum computing algorithms for machine learning harness the power of quantum mechanics to enhance various aspects of machine learning tasks. As both, quantum computing and neuromorphic computing are sharing similar features, these algorithms can also be computed efficiently on the Dynex platform – but without the limitations of limited qubits, error correction or availability: **Quantum Support Vector Machine (QSVM>`_:** QSVM is a quantum-inspired algorithm that aims to classify data using a quantum kernel function. It leverages the concept of quantum superposition and quantum feature mapping to potentially provide computational advantages over classical SVM algorithms in certain scenarios. **Quantum Principal Component Analysis (QPCA>`_:** QPCA is a quantum version of the classical Principal Component Analysis (PCA>`_ algorithm. It utilizes quantum linear algebra techniques to extract the principal components from high-dimensional data, potentially enabling more efficient dimensionality reduction in quantum machine learning. **Quantum Neural Networks (QNN>`_:** QNNs are quantum counterparts of classical neural networks. They leverage quantum principles, such as quantum superposition and entanglement, to process and manipulate data. QNNs hold the potential to learn complex patterns and perform tasks like classification and regression, benefiting from quantum parallelism. **Quantum K-Means Clustering:** Quantum K-means is a quantum-inspired variant of the classical K-means clustering algorithm. It uses quantum algorithms to accelerate the clustering process by exploring multiple solutions simultaneously. Quantum K-means has the potential to speed up clustering tasks for large-scale datasets. **Quantum Boltzmann Machines (QBMs>`_:** QBMs are quantum analogues of classical Boltzmann Machines, which are generative models used for unsupervised learning. QBMs employ quantum annealing to sample from a probability distribution and learn patterns and structures in the data. **Quantum Support Vector Regression (QSVR>`_:** QSVR extends the concept of QSVM to regression tasks. It uses quantum computing techniques to perform regression analysis, potentially offering advantages in terms of efficiency and accuracy over classical regression algorithms. Here are some example of these algorithms implemented on the Dynex Platform: - `Example: Quantum-Support-Vector-Machine Implementation on Dynex `_ | Scientific background: Rounds, Max and Phil Goddard. “Optimal feature selection in credit scoring and classification using a quantum annealer.” (2017) - `Example: Quantum-Boltzmann-Machine (PyTorch) on Dynex `_ | Scientific background: Dixit V, Selvarajan R, Alam MA, Humble TS and Kais S (2021) Training Restricted Boltzmann Machines With a D-Wave Quantum Annealer. Front. Phys. 9:589626. doi: 10.3389/fphy.2021.589626; Sleeman, Jennifer, John E. Dorband and Milton Halem. “A Hybrid Quantum enabled RBM Advantage: Convolutional Autoencoders For Quantum Image Compression and Generative Learning.” Defense + Commercial Sensing (2020) - `Example: Quantum-Boltzmann-Machine Implementation (3-step QUBO) on Dynex `_ | Scientific background: Dixit V, Selvarajan R, Alam MA, Humble TS and Kais S (2021) Training Restricted Boltzmann Machines With a D-Wave Quantum Annealer. Front. Phys. 9:589626. doi: 10.3389/fphy.2021.589626; Sleeman, Jennifer, John E. Dorband and Milton Halem. “A Hybrid Quantum enabled RBM Advantage: Convolutional Autoencoders For Quantum Image Compression and Generative Learning.” Defense + Commercial Sensing (2020) - `Example: Quantum-Boltzmann-Machine (Collaborative Filtering) on Dynex `_ | Scientific background: Dixit V, Selvarajan R, Alam MA, Humble TS and Kais S (2021) Training Restricted Boltzmann Machines With a D-Wave Quantum Annealer. Front. Phys. 9:589626. doi: 10.3389/fphy.2021.589626; Sleeman, Jennifer, John E. Dorband and Milton Halem. “A Hybrid Quantum enabled RBM Advantage: Convolutional Autoencoders For Quantum Image Compression and Generative Learning.” Defense + Commercial Sensing (2020) - `Example: Quantum-Boltzmann-Machine Implementation on Dynex `_ | Scientific background: Dixit V, Selvarajan R, Alam MA, Humble TS and Kais S (2021) Training Restricted Boltzmann Machines With a D-Wave Quantum Annealer. Front. Phys. 9:589626. doi: 10.3389/fphy.2021.589626; Sleeman, Jennifer, John E. Dorband and Milton Halem. “A Hybrid Quantum enabled RBM Advantage: Convolutional Autoencoders For Quantum Image Compression and Generative Learning.” Defense + Commercial Sensing (2020) - `Example: Feature Selection - Titanic Survivals `_ | Scientific background: Xuan Vinh Nguyen, Jeffrey Chan, Simone Romano, and James Bailey. 2014. Effective global approaches for mutual information based feature selection. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining (KDD '14). Association for Computing Machinery, New York, NY, USA, 512–521 - `Example: Breast Cancer Prediction using the Dynex scikit-learn Plugin `_ | Scientific background: Bhatia, H.S., Phillipson, F. (2021). Performance Analysis of Support Vector Machine Implementations on the D-Wave Quantum Annealer. In: Paszynski, M., Kranzlmüller, D., Krzhizhanovskaya, V.V., Dongarra, J.J., Sloot, P.M.A. (eds) Computational Science – ICCS 2021. ICCS 2021. Lecture Notes in Computer Science(), vol 12747. Springer, Cham Dynex TensorFlow Library ===================================== Details how to work with Dynex Neuromorphic torch layers, which can be used in any NN model, in Google Tensorflow. Examples include hybrid models, neuromorphic-, transfer- and federated-learning. - `Using a Dynex TensorFlow layer `_ Dynex PyTorch Library ===================================== Details how to work with Dynex Neuromorphic torch layers, which can be used in any NN model, in PyTorch. Examples include hybrid models, neuromorphic-, transfer- and federated-learning. - `Using a Dynex PyTorch layer `_ Dynex Quantum-CFD Library ===================================== This repository provides a Python class used to converting the Harrow-Hassidim-Lloyd (HHL) algorithm, typically used for solving linear systems on quantum computers, into a Quadratic Uncon- strained Binary Optimization (QUBO) model termed as ”QCFD” to be computed on DYNEX Neuromorphic Network. This adaptation allows the use of classical and quantum-inspired solvers (a.k.a Simulated Annealing Sampler) and DYNEX Network users for finding solutions. .. image:: https://github.com/dynexcoin/QCFD/blob/main/imgs/4.png?raw=true :width: 600 - `Dynex Quantum-CFD Library`_ Dynex Quantum-SISR Library ===================================== Implementation of a Quantum Single Image Super-Resolution algorithm to use on the Dynex platform. One of the well-known classical approaches for SISR relies on the well-established patch-wise sparse modeling of the problem. Yet, this field’s current state of affairs is that deep neural networks (DNNs) have demonstrated far superior results than traditional approaches. Nevertheless, quantum computing is expected to become increasingly prominent for machine learning problems soon. Among the two paradigms of quantum computing, namely universal gate quantum computing and adiabatic quantum computing (AQC), the latter has been successfully applied to practical computer vision problems, in which quantum parallelism has been exploited to solve combinatorial optimization efficiently. .. image:: https://github.com/dynexcoin/website/blob/main/Quantum-SISR.png?raw=true :width: 600 - `Dynex Quantum-SISR Library `_ Dynex Qiskit class ===================================== Recent advances in quantum hardware have resulted in the first systems becoming publicly available. On one hand, gate-based quantum computers have been designed, such as the IBM Q, Rigetti’s Aspen, or IonQ’s systems using using superconducting transmons or ion tubes. On the other hand, adibiatic quantum computing and neuromorphic computing has emerged as another possibility to leverage physics inspired computations. It was shown that adiabatic quantum computing can solve the same problems as gate-based (universal) quantum computing given at least two degrees of freedom for 2-local Hamiltonian [3,4,5]. The Dynex Neuromorphic platform supports a 2-local Ising Hamiltonian with a single degree of freedom, which is why it is believed to only solve a subset of the problems that can be expressed by gate-based (universal) quantum machines. In 2014, Warren outlined how a set of universal quantum gates could be realized in adiabatic form using D-Wave’s annealing abstraction [1]. This is demonstrated, among others, for C-NOT, Toffoli (CC-NOT), Swap and C-Swap (Fredkin) gates in a {0, 1} base of qubit states, and for the Hadamard gate in a two-vector 0i,1i base. Thanks to groundbreaking research from Richard H. Warren, it is possible to directly translate Qiskit quantum circuits into Dynex Neuromorphic chips. The concept behind is a direct translation of Qiskit objects, but instead of running on IBM Q, the circuits are executed on the Dynex Neuromorphic platform. Here is an example of a one-qubit adder circuit using this approach: .. code-block:: Python from dynexsdk.qiskit import QuantumRegister, ClassicalRegister from dynexsdk.qiskit import QuantumCircuit, execute # Input Registers: a = qi[0]; b = qi[1]; ci = qi[2] qi = QuantumRegister(3) ci = ClassicalRegister(3) # Output Registers: s = qo[0]; co = qo[1] qo = QuantumRegister(2) co = ClassicalRegister(2) circuit = QuantumCircuit(qi,qo,ci,co) # Define adder circuit for idx in range(3): circuit.ccx(qi[idx], qi[(idx+1)%3], qo[1]) for idx in range(3): circuit.cx(qi[idx], qo[0]) circuit.measure(qo, co) # Run execute(circuit) # Print print(circuit) - `Dynex Qiskit Package `_ Dynex Scikit-Learn Plugin ===================================== This package provides a scikit-learn transformer for feature selection using the Dynex Neuromorphic Computing Platform. It is built to integrate seamlessly with scikit-learn, an industry-standard, state-of-the-art ML library for Python. This plug-in makes it easier to use the Dynex platform for the feature selection piece of ML workflows. Feature selection – a key building block of machine learning – is the problem of determining a small set of the most representative characteristics to improve model training and performance in ML. With this new plug-in, ML developers need not be experts in optimization or hybrid solving to get the business and technical benefits of both. Developers creating feature selection applications can build a pipeline with scikit-learn and then embed the Dynex Platform into this workflow more easily and efficiently. ​The package's main class, SelectFromQuadraticModel, can be used in any existing sklearn pipeline. - `Using the Dynex Scikit-Learn Plugin `_ Indices and tables ================== * :ref:`genindex` * :ref:`search`