Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Quantum Neural Network built with Tensorflow Quantum and training on Breast Histopathology Images on Kaggle by Paul Mooney (Invasive Ductal Carcinoma)

License

NotificationsYou must be signed in to change notification settings

BreastCancerAI/Tensorflow-Quantum-IDC-Classifer-2020

Repository files navigation

Tensorflow Quantum IDC Classifier 2020

IDC QNN, Leveraging Quantum MNIST to detect Invasive Ductal Carcinoma

GeniSysAI Server

Introduction

In this project we will leverageTensorflow QuantumMNIST Classification code and modify the network to detect Invasive Ductal Carcinoma (IDC). This is an introductory tutorial that I made whilst learning the basics of Tensorflow Quantum for Quantum Neural Networks.

 

Hardware

I used the following hardware, but the tutorial should work on other NVIDIA GPUs.

  • Intel® Core™ i7-7700HQ CPU @ 2.80GHz × 8
  • NVIDIA GTX 1050 Ti Ti/PCIe/SSE2

 

Operating system

  • Ubuntu 18.04

 

Programming language

  • Python 3.7

 

Software

In this project we have used the following core softwares:

  • Tensorflow 2.1.0
  • Tensorflow-Quantum

 

Tensorflow Quantum

"TensorFlow Quantum (TFQ) is a quantum machine learning library for rapid prototyping of hybrid quantum-classical ML models. Research in quantum algorithms and applications can leverage Google’s quantum computing frameworks, all from within TensorFlow.

TensorFlow Quantum focuses on quantum data and building hybrid quantum-classical models. It integrates quantum computing algorithms and logic designed in Cirq, and provides quantum computing primitives compatible with existing TensorFlow APIs, along with high-performance quantum circuit simulators. Read more in the TensorFlow Quantum white paper."Source

 

Breast Histopathology Images

The dataset used in this project is an open dataset:Breast Histopathology Images byPaul Mooney onKaggle.

"The original dataset consisted of 162 whole mount slide images of Breast Cancer (BCa) specimens scanned at 40x. From that, 277,524 patches of size 50 x 50 were extracted (198,738 IDC negative and 78,786 IDC positive). Each patch’s file name is of the format: uxXyYclassC.png — > example 10253idx5x1351y1101class0.png . Where u is the patient ID (10253idx5), X is the x-coordinate of where this patch was cropped from, Y is the y-coordinate of where this patch was cropped from, and C indicates the class where 0 is non-IDC and 1 is IDC."Source

In our project we will use a dataset made up from the Breast Histopathology Images.

 

Installation

Please follow theTensorflow Quantum IDC Classifier 2020 Installation Guide to install Tensorflow Quantum IDC Classifier 2020.

 

Training the Quantum Neural Network

Now you are ready to train your Quantum Neural Network. As mentioned above, an Ubuntu machine was used. Using different machines/GPU may vary the results, if so please let us know your findings.

Start The Training

Ensuring you have completed all previous steps, you can start training using the following commands from the project root.

python3 IdcQnn.py Train

This tells the classifier to start in Train mode which will start the model training process.

Data

First the data will be prepared.

2020-04-16 05:16:34,873 - Data - INFO - Data Helper Class initialization complete.2020-04-16 05:16:34,890 - Data - INFO - Data Paths: 100002020-04-16 05:16:47,459 - Data - INFO - Data shuffled2020-04-16 05:17:26,171 - Data - INFO - Converted data shape: (10000, 4, 4, 1)2020-04-16 05:17:26,172 - Data - INFO - Encoded labels shape: (10000,)2020-04-16 05:17:26,173 - Data - INFO - Training data: (7450, 4, 4, 1, 1)2020-04-16 05:17:26,173 - Data - INFO - Training labels: (7450,)2020-04-16 05:17:26,173 - Data - INFO - Validation data: (2550, 4, 4, 1, 1)2020-04-16 05:17:26,173 - Data - INFO - Validation labels: (2550,)

You can find the code for this part of the tutorial in theClasses/Data.py file.

Start adding some of that Quantumness

Now we are starting to get to the interesting part! It is time to introduce some Quantum magic! In the Classification with Quantum Neural Networks on Near Term Processors paper, Farhi et al proposed that each pixel would be represented by a Qubit.

You can find the code for this part of the tutorial in theClasses/QMNIST.py file.

First the data is converted to a binary encoding, then each pixel in each image is converted into a Qubit, then finally we create Circ Circuits and convert them to Tensorflow Quantum Tensors.

2020-04-16 05:17:26,173 - QMNIST - INFO - QMNIST Helper Class initialization complete.2020-04-16 05:17:26,174 - QMNIST - INFO - Data converted to binary encoding!2020-04-16 05:17:32,850 - QMNIST - INFO - Data pixels converted to Qubits!2020-04-16 05:17:42,309 - QMNIST - INFO - Converted Cirq circuits to TFQ tensors!2020-04-16 05:17:42,317 - QModel - INFO - QNN model created.

The Quantum Neural Network

Next the code will create the Quantum Neural Network we will use to detect IDC.

Model: "sequential"_________________________________________________________________Layer (type)                 Output Shape              Param #   =================================================================pqc (PQC)                    (None, 1)                 32        =================================================================Total params: 32Trainable params: 32Non-trainable params: 0_________________________________________________________________

The training

The training will now begin, if you are using the provided configuration, your network will train for 3 epochs. When complete you should see the same, or similar to, the following output.

Train on 7450 samples, validate on 2550 samplesEpoch 1/37450/7450 [==============================] - 1513s 203ms/sample - loss: 0.9296 - hinge_accuracy: 0.5653 - val_loss: 0.8434 - val_hinge_accuracy: 0.5965Epoch 2/37450/7450 [==============================] - 1512s 203ms/sample - loss: 0.8396 - hinge_accuracy: 0.5847 - val_loss: 0.8051 - val_hinge_accuracy: 0.6020Epoch 3/37450/7450 [==============================] - 1433s 192ms/sample - loss: 0.8218 - hinge_accuracy: 0.5886 - val_loss: 0.7989 - val_hinge_accuracy: 0.60472550/2550 [==============================] - 16s 6ms/sample - loss: 0.7989 - hinge_accuracy: 0.6047

Results

We can see that the hinge accuracy is not very good. Increasing the dataset with actual training images (Non augmented) decreased the hinge accuracy considerably. In the next update to this tutorial we will go deeper into how to increase the accuracy of this model.

 

Contributing

TheBreast Cancer AI Research Project encourages, and welcomes, code contributions, bug fixes and enhancements from the Github.

Please read theCONTRIBUTING document for a full guide to forking our repositories and submitting your pull requests. You will also find information about our code of conduct on this page.

Contributors

 

Versioning

We use SemVer for versioning. For the versions available, seeReleases.

 

License

This project is licensed under theMIT License - see theLICENSE file for details.

 

Bugs/Issues

We use therepo issues to track bugs and general requests related to using this project. SeeCONTRIBUTING for more info on how to submit bugs, feature requests and proposals.

About

A Quantum Neural Network built with Tensorflow Quantum and training on Breast Histopathology Images on Kaggle by Paul Mooney (Invasive Ductal Carcinoma)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp