diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..91fb51f --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: [astorfi] diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..f18c7c0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,37 @@ +sudo: required +language: python +cache: pip +git: + depth: false + quiet: true + +python: # The following versions + - "3.6" + - "3.7" +# command to install dependencies + +build: + stage: build + only: + - paths: + - "^codes/*" + +install: + - pip install numpy + - pip install matplotlib + - pip install pandas + - pip install seaborn + - pip install pathlib + - pip install tensorflow_datasets + - pip install scikit-image + # install TensorFlow from https://storage.googleapis.com/tensorflow/ + - if [[ "$TRAVIS_PYTHON_VERSION" == "3.6" ]]; then + pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.3.0-cp36-cp36m-manylinux2010_x86_64.whl; + elif [[ "$TRAVIS_PYTHON_VERSION" == "3.7" ]]; then + pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.3.0-cp37-cp37m-manylinux2010_x86_64.whl; + fi +script: + # You can run all python files in parallel, http://stackoverflow.com/questions/5015316 + # - find codes/python/ -type f -name "*.py" |xargs -n 1 python + # get list of changed files and if they are Python files, run them. + - ./travis.sh diff --git a/README.rst b/README.rst index 6e4bc14..778ef7c 100644 --- a/README.rst +++ b/README.rst @@ -1,20 +1,16 @@ -.. image:: _img/mainpage/follow-twitter.gif - :height: 100px - :width: 200 px - :scale: 50 % - :alt: alternate text - :align: right - :target: https://twitter.com/osforscience + ******************** `TensorFlow Course`_ ******************** +.. image:: https://travis-ci.org/instillai/TensorFlow-Course.svg?branch=master + :target: https://travis-ci.org/instillai/TensorFlow-Course .. image:: https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat :target: https://github.com/open-source-for-science/TensorFlow-Course/pulls -.. image:: https://badges.frapsoft.com/os/v2/open-source.svg?v=102 - :target: https://github.com/ellerbrock/open-source-badge/ -.. image:: https://img.shields.io/twitter/follow/osforscience.svg?label=Follow&style=social - :target: https://twitter.com/osforscience +.. image:: https://img.shields.io/twitter/follow/machinemindset.svg?label=Follow&style=social + :target: https://twitter.com/machinemindset +.. image:: https://zenodo.org/badge/151300862.svg + :target: https://zenodo.org/badge/latestdoi/151300862 This repository aims to provide simple and ready-to-use tutorials for TensorFlow. @@ -26,6 +22,18 @@ Each tutorial includes ``source code`` and most of them are associated with a `` .. _TensorFlow: https://www.tensorflow.org/install/ .. _Wikipedia: https://en.wikipedia.org/wiki/TensorFlow/ + +########################################################################## +Sponsorship +########################################################################## + +To support maintaining and upgrading this project, please kindly consider `Sponsoring the project developer `_. + +Any level of support is a great contribution here :heart: + +**Status:** *This project has been updated to **TensorFlow 2.3**.* + + ################# Table of Contents ################# @@ -33,6 +41,45 @@ Table of Contents :local: :depth: 3 + +========================================== +Download Free TensorFlow Roadmap EBook +========================================== + +.. raw:: html + +
+ +.. raw:: html + + + + + +.. raw:: html + +
+ +========================================== +Slack Group +========================================== + +.. raw:: html + +
+ +.. raw:: html + + + + + +.. raw:: html + +
+ + + ~~~~~~~~~~~~~~~~~~~~~ What is TensorFlow? ~~~~~~~~~~~~~~~~~~~~~ @@ -40,7 +87,6 @@ TensorFlow is an open-source software library for dataflow programming across a TensorFlow was developed by the Google Brain team for internal Google use. It was released under the Apache 2.0 open source license on November 9, 2015. -The current stable release as of September 27, 2018 is 1.11.0 ============ Motivation @@ -81,6 +127,7 @@ It is worth noting that, **the main goal of this project is to provide well-docu TensorFlow Installation and Setup the Environment ================================================= + .. image:: _img/mainpage/installation-logo.gif :height: 100px :width: 200 px @@ -89,7 +136,7 @@ TensorFlow Installation and Setup the Environment :align: right :target: docs/tutorials/installation -.. _TensorFlow Installation: docs/tutorials/installation +.. _TensorFlow Installation: https://www.tensorflow.org/install In order to install TensorFlow please refer to the following link: @@ -97,7 +144,7 @@ In order to install TensorFlow please refer to the following link: .. image:: _img/mainpage/installation.gif - :target: https://www.youtube.com/watch?v=_3JFEPk4qQY&t=2s + :target: https://www.tensorflow.org/install The virtual environment installation is recommended in order to prevent package conflict and having the capacity to customize the working environment. @@ -120,11 +167,26 @@ Warm-up :alt: alternate text :align: right -+----+---------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| # | topic | Source Code | | -+====+=====================+========================================================================================+==============================================+ -| 1 | Start-up | `Welcome `_ / `IPython `_ | `Documentation `_ | -+----+---------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ + +.. _colab: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/0-welcome/welcome.ipynb +.. _Documentationcnnwelcome: docs/tutorials/0-welcome +.. _ipythonwelcome: codes/ipython/0-welcome/welcome.ipynb +.. _pythonwelcome: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/0-welcome/welcome.py +.. _videowelcome: https://youtu.be/xd0DVygHlNE + + +.. |Welcome| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/0-welcome/welcome.ipynb + +.. |youtubeim| image:: _img/mainpage/YouTube.png + :target: https://github.com/instillai/TensorFlow-Course/blob/master/_img/mainpage/YouTube.png + + ++----+---------------------+--------------------------+------------------------------------------------------------------------+-------------------------------------------+ +| # | topic | Run | Source Code | Media | ++====+=====================+==========================+========================================================================+===========================================+ +| 1 | Start-up | |Welcome| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+---------------------+--------------------------+------------------------------------------------------------------------+-------------------------------------------+ ========================== @@ -132,20 +194,64 @@ Warm-up Basics ~~~~~~ -.. image:: _img/mainpage/basics.gif - :height: 100px - :width: 200 px - :scale: 50 % - :alt: alternate text - :align: right +.. raw:: html + +
+ +.. raw:: html + + + + + +.. raw:: html + +
+ +.. raw:: html + +
+ + + +.. _ipythontensors: codes/ipython/1-basics/tensors.ipynb +.. _pythontensors: codes/python/1-basics/tensors.py +.. _videotensors: https://youtu.be/Od-VvnYUbFw +.. |Tensors| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/1-basics/tensors.ipynb -+----+---------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| # | topic | Source Code | | -+====+=====================+========================================================================================+==============================================+ -| 2 | *TensorFLow Basics* | `Basic Math Operations `_ / `IPython `_ | `Documentation `_ | -+----+---------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| 3 | *TensorFLow Basics* | `TensorFlow Variables `_ / `IPython `_ | `Documentation `_ | -+----+---------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ +.. _ipythonad: codes/ipython/1-basics/automatic_differentiation.ipynb +.. _pythonad: codes/python/1-basics/automatic_differentiation.py +.. _videoad: https://youtu.be/l-MGydWW-UE +.. |AD| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/1-basics/automatic_differentiation.ipynb + +.. _ipythongraphs: codes/ipython/1-basics/graph.ipynb +.. _pythongraphs: codes/python/1-basics/graph.py +.. _videographs: https://youtu.be/P9xA1s6AUNk +.. |graphs| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/1-basics/graph.ipynb + + +.. _ipythonmodels: codes/ipython/1-basics/models.ipynb +.. _pythonmodels: codes/python/1-basics/models.py +.. _videomodels: https://youtu.be/WnlUE04REOY +.. |models| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/1-basics/models.ipynb + + + ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------+-----------------------------------------+ +| # | topic | Run | Source Code | Media | ++====+===================================+==========================+========================================================================+=========================================+ +| 1 | Tensors | |Tensors| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------+-----------------------------------------+ +| 2 | Automatic Differentiation | |AD| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------+-----------------------------------------+ +| 3 | Introduction to Graphs | |graphs| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------+-----------------------------------------+ +| 4 | TensorFlow Models | |models| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------+-----------------------------------------+ ========================== @@ -153,24 +259,59 @@ Basics Basic Machine Learning ~~~~~~~~~~~~~~~~~~~~~~ -.. image:: _img/mainpage/basicmodels.gif - :height: 100px - :width: 200 px - :scale: 50 % - :alt: alternate text - :align: right +.. raw:: html + +
+ +.. raw:: html + + + + + +.. raw:: html + +
+ +.. raw:: html + +
+ +.. .. image:: _img/mainpage/basicmodels.gif +.. :height: 100px +.. :width: 200 px +.. :scale: 50 % +.. :alt: alternate text +.. :align: right + + +.. _ipythonlinearreg: codes/ipython/basics_in_machine_learning/linearregression.ipynb +.. _pythonlinearreg: codes/python/basics_in_machine_learning/linearregression.py +.. _tutoriallinearreg: https://www.machinelearningmindset.com/linear-regression-with-tensorflow/ +.. _videoinearreg: https://youtu.be/2RTBBiKKuLI + +.. _tutorialdataaugmentation: https://www.machinelearningmindset.com/data-augmentation-with-tensorflow/ +.. _ipythondataaugmentation: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/basics_in_machine_learning/dataaugmentation.ipynb +.. _pythondataaugmentation: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/basics_in_machine_learning/dataaugmentation.py +.. _videodataaugmentation: https://youtu.be/HbzR2snHJF0 + +.. |lr| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/basics_in_machine_learning/linearregression.ipynb +.. |da| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/basics_in_machine_learning/dataaugmentation.ipynb + + ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------+ +| # | topic | Run | Source Code | More | Media | ++====+===================================+==========================+====================================================================================+==============================================+==============================================+ +| 1 | Linear Regression | |lr| | `Notebook `_ / `Python `_ | `Tutorial `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------+ +| 2 | Data Augmentation | |da| | `Notebook `_ / `Python `_ | `Tutorial `_ | `Video Tutorial `_ | ++----+-----------------------------------+--------------------------+------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------+ + -+----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| # | topic | Source Code | | -+====+============================+========================================================================================+==============================================+ -| 4 | *Linear Models* |`Linear Regression`_ / `IPython `_ | `Documentation `_ | -+----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| 5 | *Predictive Models* | `Logistic Regression`_ / `IPython `_ | `Documentation `_ | -+----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| 6 | *Support Vector Machines* | `Linear SVM`_ / `IPython `_ | | -+----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ -| 7 | *Support Vector Machines* |`MultiClass Kernel SVM`_ / `IPython `_ | | -+----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ + +.. +----+----------------------------+----------------------------------------------------------------------------------------+----------------------------------------------+ ========================== @@ -178,118 +319,109 @@ Basic Machine Learning Neural Networks ~~~~~~~~~~~~~~~~ -.. image:: _img/mainpage/CNNs.png - :height: 100px - :width: 200 px - :scale: 50 % - :alt: alternate text - :align: right +.. raw:: html -+----+-----------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------+ -| # | topic | Source Code | | -+====+===================================+===============================================================================================+==============================================+ -| 8 | *Multi Layer Perceptron* |`Simple Multi Layer Perceptron`_ / `IPython `_ | | -+----+-----------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------+ -| 9 | *Convolutional Neural Network* | `Simple Convolutional Neural Networks`_ | `Documentation `_ | -+----+-----------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------+ -| 10 | *Recurrent Neural Network* | `RNN`_ / `IPython `_ | | -+----+-----------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------+ +
-.. ~~~~~~~~~~~~ -.. **Welcome** -.. ~~~~~~~~~~~~ +.. raw:: html -.. The tutorial in this section is just a simple entrance to TensorFlow. + + + -.. _welcomesourcecode: codes/python/0-welcome -.. _Documentationcnnwelcome: docs/tutorials/0-welcome -.. _ipythonwelcome: codes/ipython/0-welcome/code/0-welcome.ipynb +.. raw:: html + +
+ +.. raw:: html + +
+ + +.. _ipythonmlp: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/neural_networks/mlp.ipynb +.. _pythonmlp: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/neural_networks/mlp.py +.. _videomlp: https://youtu.be/w20efZqSK2Y + +.. _ipythoncnn: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/neural_networks/CNNs.ipynb +.. _pythoncnn: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/neural_networks/cnns.py +.. _videocnn: https://youtu.be/WVifZBCRz8g +.. |mlp| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/neural_networks/mlp.ipynb +.. |cnn| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/neural_networks/CNNs.ipynb -.. +---+---------------------------------------------+-------------------------------------------------+ -.. | # | Source Code | | -.. +===+=============================================+=================================================+ -.. | 1 | `Welcome `_ | `Documentation `_ | -.. +---+---------------------------------------------+-------------------------------------------------+ -.. ~~~~~~~~~~ -.. **Basics** -.. ~~~~~~~~~~ -.. These tutorials are related to basics of TensorFlow. ++----+------------------------------------------+--------------------------+------------------------------------------------------+------------------------------------+ +| # | topic | Run | Source Code | Media | ++====+==========================================+==========================+======================================================+====================================+ +| 1 | *Multi Layer Perceptron* | |mlp| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+------------------------------------------+--------------------------+------------------------------------------------------+------------------------------------+ +| 2 | *Convolutional Neural Networks* | |cnn| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+------------------------------------------+--------------------------+------------------------------------------------------+------------------------------------+ -.. _basicmathsourcecode: codes/python/1-basics/basic_math_operations -.. _Documentationbasicmath: docs/tutorials/1-basics/basic_math_operations -.. _ipythonbasicmath: codes/ipython/1-basics/basic_math_operations/code/basic_math_operation.ipynb +========================== + +~~~~~~~~~~~~~~~~ +Advanced +~~~~~~~~~~~~~~~~ + + +.. raw:: html + +
-.. _ipythonvariabls: codes/ipython/1-basics/variables/code/variables.ipynb -.. _variablssourcecode: codes/python/1-basics/variables/README.rst -.. _Documentationvariabls: docs/tutorials/1-basics/variables +.. raw:: html + + + -.. +---+-----------------------------------------------------+-------------------------------------------------+ -.. | # | Source Code | | -.. +===+=====================================================+=================================================+ -.. | 1 | `Basic Math Operations `_ | `Documentation `_ | -.. +---+-----------------------------------------------------+-------------------------------------------------+ -.. | 2 | `TensorFlow Variables `_ | `Documentation `_ | -.. +---+-----------------------------------------------------+-------------------------------------------------+ +.. raw:: html -.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. **Machine Learning Basics** -.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. We are going to present concepts of basic machine learning models and methods and show how to implement them in Tensorflow. +
-.. _Linear Regression: codes/python/2-basics_in_machine_learning/linear_regression -.. _LinearRegressionipython: codes/ipython/2-basics_in_machine_learning/linear_regression/code/linear_regression.ipynb -.. _Documentationlr: docs/tutorials/2-basics_in_machine_learning/linear_regression +.. raw:: html -.. _Logistic Regression: codes/python/2-basics_in_machine_learning/logistic_regression -.. _LogisticRegressionipython: codes//ipython/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.ipynb -.. _LogisticRegDOC: docs/tutorials/2-basics_in_machine_learning/logistic_regression +
-.. _Linear SVM: codes/python/2-basics_in_machine_learning/linear_svm -.. _LinearSVMipython: codes//ipython/2-basics_in_machine_learning/linear_svm/code/linear_svm.ipynb -.. _MultiClass Kernel SVM: codes/python/2-basics_in_machine_learning/multiclass_svm -.. _MultiClassKernelSVMipython: codes/ipython/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.ipynb +.. _ipythoncustomtr: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/custom_training.ipynb +.. _pythoncustomtr: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/advanced/custom_training.py +.. _videocustomtr: https://youtu.be/z5gcabfyPfA -.. +---+---------------------------------------------+----------------------------------------+ -.. | # | Source Code | | -.. +===+=============================================+========================================+ -.. | 1 | `Linear Regression`_ | `Documentation `_ | -.. +---+---------------------------------------------+----------------------------------------+ -.. | 2 | `Logistic Regression`_ | `Documentation `_ | -.. +---+---------------------------------------------+----------------------------------------+ -.. | 3 | `Linear SVM`_ | | -.. +---+---------------------------------------------+----------------------------------------+ -.. | 4 | `MultiClass Kernel SVM`_ | | -.. +---+---------------------------------------------+----------------------------------------+ +.. _ipythondgenerator: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/dataset_generator.ipynb +.. _pythondgenerator: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/advanced/dataset_generator.py +.. _videodgenerator: https://youtu.be/-YsgMdDPu3g -.. ~~~~~~~~~~~~~~~~~~~ -.. **Neural Networks** -.. ~~~~~~~~~~~~~~~~~~~ -.. The tutorials in this section are related to neural network architectures. +.. _ipythontfrecords: https://github.com/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/tfrecords.ipynb +.. _pythontfrecords: https://github.com/instillai/TensorFlow-Course/blob/master/codes/python/advanced/tfrecords.py +.. _videotfrecords: https://youtu.be/zqavy_5QMk8 -.. _Simple Convolutional Neural Networks: codes/python/3-neural_networks/convolutional-neural-network -.. _Documentationcnn: docs/tutorials/3-neural_network/convolutiona_neural_network -.. _Simple Multi Layer Perceptron: codes/python/3-neural_networks/multi-layer-perceptron -.. _MultiLayerPerceptronipython: codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb +.. |ctraining| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/custom_training.ipynb -.. _RNN: codes/python/3-neural_networks/recurrent-neural-networks/code/rnn.py -.. _RNNIpython: codes/ipython/3-neural_networks/recurrent-neural-networks/code/rnn.ipynb +.. |dgenerator| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/dataset_generator.ipynb +.. |tfrecords| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/advanced/tfrecords.ipynb + + ++----+------------------------------------------+--------------------------+--------------------------------------------------------------------+----------------------------------------+ +| # | topic | Run | Source Code | Media | ++====+==========================================+==========================+====================================================================+========================================+ +| 1 | *Custom Training* | |ctraining| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+------------------------------------------+--------------------------+--------------------------------------------------------------------+----------------------------------------+ +| 2 | *Dataset Generator* | |dgenerator| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+------------------------------------------+--------------------------+--------------------------------------------------------------------+----------------------------------------+ +| 3 | *Create TFRecords* | |tfrecords| | `Notebook `_ / `Python `_ | `Video Tutorial `_ | ++----+------------------------------------------+--------------------------+--------------------------------------------------------------------+----------------------------------------+ -.. +---+---------------------------------------------+----------------------------------------+ -.. | # | Source Code | | -.. +===+=============================================+========================================+ -.. | 1 | `Multi Layer Perceptron`_ | | -.. +---+---------------------------------------------+----------------------------------------+ -.. | 2 | `Convolutional Neural Networks`_ | `Documentation `_ | -.. +---+---------------------------------------------+----------------------------------------+ ===================== @@ -301,6 +433,7 @@ Some Useful Tutorials * `Terry Um’s TensorFlow Exercises `_ - Re-create the codes from other TensorFlow examples * `Classification on time series `_ - Recurrent Neural Network classification in TensorFlow with LSTM on cellphone sensor data + ============= Contributing ============= @@ -318,6 +451,7 @@ Pull Request Process Please consider the following criterions in order to help us in a better way: * The pull request is mainly expected to be a code script suggestion or improvement. + * Please do NOT change the ipython files. Instead, change the corresponsing PYTHON files. * A pull request related to non-code-script sections is expected to make a significant difference in the documentation. Otherwise, it is expected to be announced in the issues section. * Ensure any install or build dependencies are removed before the end of the layer when doing a build and creating a pull request. * Add comments with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters. @@ -332,8 +466,20 @@ We are looking forward to your kind feedback. Please help us to improve this ope For contribution, please create a pull request and we will investigate it promptly. Once again, we appreciate your kind feedback and elaborate code inspections. -================ -Acknowledgement -================ +======================== +Developers +======================== + + +**Company**: Instill AI [`Website +`_] + +**Creator**: Machine Learning Mindset [`Blog +`_, `GitHub +`_, `Twitter +`_] -I have taken huge efforts in this project for hopefully being a small part of TensorFlow world. However, it would not have been plausible without the kind support and help of my friend and colleague `Domenick Poster `_ for his valuable advices. He helped me for having a better understanding of TensorFlow and my special appreciation goes to him. +**Developer**: Amirsina Torfi [`GitHub +`_, `Personal Website +`_, `Linkedin +`_ ] diff --git a/_img/0-welcome/joinslack.png b/_img/0-welcome/joinslack.png new file mode 100644 index 0000000..ee1b38b Binary files /dev/null and b/_img/0-welcome/joinslack.png differ diff --git a/_img/mainpage/Build.png b/_img/mainpage/Build.png new file mode 100644 index 0000000..8afb244 Binary files /dev/null and b/_img/mainpage/Build.png differ diff --git a/_img/mainpage/YouTube.png b/_img/mainpage/YouTube.png new file mode 100644 index 0000000..dfe0f44 Binary files /dev/null and b/_img/mainpage/YouTube.png differ diff --git a/_img/mainpage/booksubscribe.png b/_img/mainpage/booksubscribe.png new file mode 100644 index 0000000..42f72fb Binary files /dev/null and b/_img/mainpage/booksubscribe.png differ diff --git a/_img/mainpage/donation.jpg b/_img/mainpage/donation.jpg new file mode 100644 index 0000000..08556db Binary files /dev/null and b/_img/mainpage/donation.jpg differ diff --git a/_img/mainpage/subscribe.gif b/_img/mainpage/subscribe.gif new file mode 100644 index 0000000..ee60e08 Binary files /dev/null and b/_img/mainpage/subscribe.gif differ diff --git a/_img/mainpage/subscribe.png b/_img/mainpage/subscribe.png new file mode 100644 index 0000000..07f9ba8 Binary files /dev/null and b/_img/mainpage/subscribe.png differ diff --git a/_img/mainpage/teaser.gif b/_img/mainpage/teaser.gif new file mode 100644 index 0000000..9c6cf64 Binary files /dev/null and b/_img/mainpage/teaser.gif differ diff --git a/codes/ipython/0-welcome/README.rst b/codes/ipython/0-welcome/README.rst deleted file mode 100644 index 1ede2ab..0000000 --- a/codes/ipython/0-welcome/README.rst +++ /dev/null @@ -1,70 +0,0 @@ - -=========================== -Welcome to TensorFlow World -=========================== - -This document is dedicated to explain how to run the python script for this tutorial. - ---------------------------- -Test TensorFlow Environment ---------------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - -.. code:: shell - - cd code/ - python TensorFlow_Test.py - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] --log_dir='absolute/path/to/log_dir' - - -As an example the code can be executed as follows: - -.. code:: shell - - python 1-welcome.py --log_dir='~/log_dir' - -The ``--log_dir`` flag is to provide the address which the event files (for visualizing in Tensorboard) will be saved. The flag of ``--log_dir`` is not required because its default value is available in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_string( - 'log_dir', os.path.dirname(os.path.abspath(__file__)) + '/logs', - 'Directory where event logs are written to.') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - ----------------------------- -How to run the Tensorboard? ----------------------------- -.. _Google’s words: https://www.tensorflow.org/get_started/summaries_and_tensorboard -TensorBoard is the graph visualization tools provided by TensorFlow. Using `Google’s words`_: “The computations you'll use TensorFlow for - like training a massive deep neural network - can be complex and confusing. To make it easier to understand, -debug, and optimize TensorFlow programs, we've included a suite of visualization tools called -TensorBoard.” - -The Tensorboard can be run as follows in the terminal: - -.. code:: shell - - tensorboard --logdir="absolute/path/to/log_dir" - - - - - - diff --git a/codes/ipython/0-welcome/code/0-welcome.ipynb b/codes/ipython/0-welcome/code/0-welcome.ipynb deleted file mode 100644 index e54e240..0000000 --- a/codes/ipython/0-welcome/code/0-welcome.ipynb +++ /dev/null @@ -1,93 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#####################################################\n", - "########## Welcome to TensorFlow World ##############\n", - "#####################################################\n", - "\n", - "# The tutorials in this section is just a start for going into TensorFlow world.\n", - "# The TensorFlow flags are used for having a more user friendly environment.\n", - "\n", - "from __future__ import print_function\n", - "import tensorflow as tf\n", - "import os" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Defining some sentence!\n", - "welcome = tf.constant('Welcome to TensorFlow world!')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "output: Welcome to TensorFlow world!\n" - ] - } - ], - "source": [ - "# Run the session\n", - "with tf.Session() as sess:\n", - " print(\"output: \", sess.run(welcome))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Closing the session.\n", - "sess.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/0-welcome/welcome.ipynb b/codes/ipython/0-welcome/welcome.ipynb new file mode 100644 index 0000000..d278173 --- /dev/null +++ b/codes/ipython/0-welcome/welcome.ipynb @@ -0,0 +1,73 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "welcome.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "7i1UqqIkNxAt", + "outputId": "2f9c0fc3-ba1a-499d-f4ea-0bfe160ae841", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 129 + } + }, + "source": [ + "# Import tensorflow\n", + "import tensorflow as tf\n", + "\n", + "# Check version\n", + "print(\"Tensorflow version: \", tf.__version__)\n", + "\n", + "# Test TensorFlow for cuda availibility\n", + "print(\"Tensorflow is built with CUDA: \", tf.test.is_built_with_cuda())\n", + "\n", + "# Check devices\n", + "print(\"All devices: \", tf.config.list_physical_devices(device_type=None))\n", + "print(\"GPU devices: \", tf.config.list_physical_devices(device_type='GPU'))\n", + "\n", + "# Print a randomly generated tensor\n", + "# tf.math.reduce_sum: https://www.tensorflow.org/api_docs/python/tf/math/reduce_sum\n", + "# tf.random.normal: https://www.tensorflow.org/api_docs/python/tf/random/normal\n", + "print(tf.math.reduce_sum(tf.random.normal([1, 10])))\n" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Tensorflow version: 2.3.0\n", + "Tensorflow is built with CUDA: True\n", + "All devices: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'), PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n", + "GPU devices: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n", + "tf.Tensor(-4.315793, shape=(), dtype=float32)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rcU8_F3fPUb5" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/1-basics/automatic_differentiation.ipynb b/codes/ipython/1-basics/automatic_differentiation.ipynb new file mode 100644 index 0000000..69e8637 --- /dev/null +++ b/codes/ipython/1-basics/automatic_differentiation.ipynb @@ -0,0 +1,227 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "automatic_differentiation.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "MDevcewD85Im" + }, + "source": [ + "## Automatic Differentiation\n", + "\n", + "The [automatic differentiation](https://en.wikipedia.org/wiki/Automatic_differentiation) is to calculate derivative of functions which is useful for algorithms such as [stochastic gradient descent](https://en.wikipedia.org/wiki/Stochastic_gradient_descent).\n", + "\n", + "It's is particularly useful when we implement neural networks and desire to calculate differentiation of the output with respect to an input that are connected with a **chain of functions**:\n", + "\n", + "$L(x)=f(g(h(x)))$\n", + "\n", + "The differentiation is as below:\n", + "\n", + "$\\frac{dL}{dx} = \\frac{df}{dg}\\frac{dg}{dh}\\frac{dh}{dx}$\n", + "\n", + "The above rule is called the [chain rule](https://en.wikipedia.org/wiki/Chain_rule).\n", + "\n", + "So the [gradients](https://en.wikipedia.org/wiki/Gradient) needs to be calculated for ultimate derivative calculations.\n", + "\n", + "Let's see how TensorFlow does it!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iJoLp_aUvBFR" + }, + "source": [ + "# Loading necessary libraries\n", + "import tensorflow as tf\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "w9fp4we9FWQU" + }, + "source": [ + "### Introduction\n", + "\n", + "Some general information are useful to be addressed here:\n", + "\n", + "* To compute gradients, TensorFlow uses [tf.GradientTape](https://www.tensorflow.org/api_docs/python/tf/GradientTape) which records the operation for later being used for gradient computation.\n", + "\n", + "Let's have three similar example:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "26FVM1x8F-k0", + "outputId": "556b8873-8aab-4525-eb58-30053330f99b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + } + }, + "source": [ + "x = tf.constant([2.0])\n", + "\n", + "with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad:\n", + " f = x ** 2\n", + "\n", + "# Print gradient output\n", + "print('The gradient df/dx where f=(x^2):\\n', grad.gradient(f, x))" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "The gradient df/dx where f=(x^2):\n", + " None\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "y_UO_8xnG6SY", + "outputId": "fcc2f51b-8bf4-4ee3-c6a6-9180a7a94d90", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + } + }, + "source": [ + "x = tf.constant([2.0])\n", + "x = tf.Variable(x)\n", + "\n", + "with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad:\n", + " f = x ** 2\n", + "\n", + "# Print gradient output\n", + "print('The gradient df/dx where f=(x^2):\\n', grad.gradient(f, x))" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "The gradient df/dx where f=(x^2):\n", + " tf.Tensor([4.], shape=(1,), dtype=float32)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "s2SxqhpeHab7", + "outputId": "5c0be66e-171b-400b-8d55-d80fde11c7fd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + } + }, + "source": [ + "x = tf.constant([2.0])\n", + "\n", + "with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad:\n", + " grad.watch(x)\n", + " f = x ** 2\n", + "\n", + "# Print gradient output\n", + "print('The gradient df/dx where f=(x^2):\\n', grad.gradient(f, x))" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "The gradient df/dx where f=(x^2):\n", + " tf.Tensor([4.], shape=(1,), dtype=float32)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7TptydLkH2hh" + }, + "source": [ + "What's the difference between above examples?\n", + "\n", + "1. Using tf.Variable on top of the tensor to transform it into a [tf.Variable](https://www.tensorflow.org/guide/variable).\n", + "2. Using [.watch()](https://www.tensorflow.org/api_docs/python/tf/GradientTape#watch) operation.\n", + "\n", + "The tf.Variable turn tensor to a variable tensor which is the recommended approach by TensorFlow. The .watch() method ensures the variable is being tracked by the tf.GradientTape(). \n", + "\n", + "**You can see if we use neither, we get NONE as the gradient which means gradients were not being tracked!**\n", + "\n", + "NOTE: In general it's always safe to work with variable as well as using .watch() to ensure tracking gradients.\n", + "\n", + "We used default arguments as:\n", + "\n", + "1. **persistent=False**: It says, any variable that is hold with tf.GradientTape(), after one calling of gradient will be released. \n", + "2. **watch_accessed_variables=True**: By default watching variables. So if we have a variable, we do not need to use .watch() with this default setting.\n", + "\n", + "Let's have an example with **persistent=True**:\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V-ugyJGRHc7S", + "outputId": "a4813975-128b-4ad2-ad35-5c7270060ed1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 90 + } + }, + "source": [ + "x = tf.constant([2.0])\n", + "x = tf.Variable(x)\n", + "\n", + "# For practice, turn persistent to False to see what happens.\n", + "with tf.GradientTape(persistent=True, watch_accessed_variables=True) as grad:\n", + " f = x ** 2\n", + " h = x ** 3\n", + "\n", + "# Print gradient output\n", + "print('The gradient df/dx where f=(x^2):\\n', grad.gradient(f, x))\n", + "print('The gradient dh/dx where h=(x^3):\\n', grad.gradient(h, x))" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "text": [ + "The gradient df/dx where f=(x^2):\n", + " tf.Tensor([4.], shape=(1,), dtype=float32)\n", + "The gradient dh/dx where h=(x^3):\n", + " tf.Tensor([12.], shape=(1,), dtype=float32)\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/1-basics/basic_math_operations/README.rst b/codes/ipython/1-basics/basic_math_operations/README.rst deleted file mode 100644 index 9141fe1..0000000 --- a/codes/ipython/1-basics/basic_math_operations/README.rst +++ /dev/null @@ -1,60 +0,0 @@ - -=========================== -Welcome to TensorFlow World -=========================== - -This document is dedicated to explain how to run the python script for this tutorial. - - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] --log_dir='absolute/path/to/log_dir' - - -As an example the code can be executed as follows: - -.. code:: shell - - python 1-welcome.py --log_dir='~/log_dir' - -The ``--log_dir`` flag is to provide the address which the event files (for visualizing in Tensorboard) will be saved. The flag of ``--log_dir`` is not required because its default value is available in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_string( - 'log_dir', os.path.dirname(os.path.abspath(__file__)) + '/logs', - 'Directory where event logs are written to.') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - ----------------------------- -How to run the Tensorboard? ----------------------------- -.. _Google’s words: https://www.tensorflow.org/get_started/summaries_and_tensorboard -TensorBoard is the graph visualization tools provided by TensorFlow. Using `Google’s words`_: “The computations you'll use TensorFlow for - like training a massive deep neural network - can be complex and confusing. To make it easier to understand, -debug, and optimize TensorFlow programs, we've included a suite of visualization tools called -TensorBoard.” - -The Tensorboard can be run as follows in the terminal: - -.. code:: shell - - tensorboard --logdir="absolute/path/to/log_dir" - - - - - - diff --git a/codes/ipython/1-basics/basic_math_operations/code/basic_math_operation.ipynb b/codes/ipython/1-basics/basic_math_operations/code/basic_math_operation.ipynb deleted file mode 100644 index cd9ab72..0000000 --- a/codes/ipython/1-basics/basic_math_operations/code/basic_math_operation.ipynb +++ /dev/null @@ -1,119 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#####################################################\n", - "########## Welcome to TensorFlow World ##############\n", - "#####################################################\n", - "\n", - "# The tutorials in this section is just a start for math operations.\n", - "# The TensorFlow flags are used for having a more user friendly environment.\n", - "\n", - "from __future__ import print_function\n", - "import tensorflow as tf\n", - "import os" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Defining some constant values\n", - "a = tf.constant(5.0, name=\"a\")\n", - "b = tf.constant(10.0, name=\"b\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Some basic operations\n", - "x = tf.add(a, b, name=\"add\")\n", - "y = tf.div(a, b, name=\"divide\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a = 5.0\n", - "b = 10.0\n", - "a + b = 15.0\n", - "a/b = 0.5\n" - ] - } - ], - "source": [ - "# Run the session\n", - "with tf.Session() as sess:\n", - " print(\"a =\", sess.run(a))\n", - " print(\"b =\", sess.run(b))\n", - " print(\"a + b =\", sess.run(x))\n", - " print(\"a/b =\", sess.run(y))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Closing the session.\n", - "sess.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/1-basics/graph.ipynb b/codes/ipython/1-basics/graph.ipynb new file mode 100644 index 0000000..4792bd7 --- /dev/null +++ b/codes/ipython/1-basics/graph.ipynb @@ -0,0 +1,240 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "graph.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "MDevcewD85Im" + }, + "source": [ + "## Intorduction to TensorFlow graphs.\n", + "\n", + "For long, the big complaint about TensorFlow was *It's not flexible for debugging!* With the advent of TensorFlow 2.0, that changed drastically.\n", + "\n", + "Now TensorFlow allows you to run the oprations **eagerly**. That means, you can run TensorFlow operations by Python and return the outputs to Python again. That creates a lot of flexibility, especially for debugging. \n", + "\n", + "But there are some merits in NOT using the eagerly option. You can run operations on TensorFlow graphs that in some scenarios leads to significant speed up. According to TensorFlow:\n", + "\n", + "> Graphs are data structures that contain a set of [tf.Operation](https://www.tensorflow.org/api_docs/python/tf/Operation) objects, which represent units of computation; and [tf.Tensor](https://www.tensorflow.org/api_docs/python/tf/Tensor) objects, which represent the units of data that flow between operations. They are defined in a [tf.Graph](https://www.tensorflow.org/api_docs/python/tf/Graph) context. Since these graphs are data structures, they can be saved, run, and restored all without the original Python code.\n", + "\n", + "Let's have some example for transforming functions to graphs!\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iJoLp_aUvBFR" + }, + "source": [ + "# Loading necessary libraries\n", + "import tensorflow as tf\n", + "import numpy as np\n", + "import timeit" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8a9c8qUj-MSj" + }, + "source": [ + "### Operation\n", + "\n", + "We can take a Python function on graph with [@tf.function](https://www.tensorflow.org/api_docs/python/tf/function) decorator." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V-ugyJGRHc7S", + "outputId": "0bc0f944-4f6b-4fc2-95e2-8f517141cac6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + } + }, + "source": [ + "@tf.function\n", + "def multiply_fn(a, b):\n", + " return tf.matmul(a, b)\n", + "\n", + "# Create some tensors\n", + "a = tf.constant([[0.5, 0.5]])\n", + "b = tf.constant([[10.0], [1.0]])\n", + "\n", + "# Check function\n", + "print('Multiple a of shape {} with b of shape {}'.format(a.shape, b.shape))\n", + "print(multiply_fn(a, b).numpy())\n" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Multiple a of shape (1, 2) with b of shape (2, 1)\n", + "[[5.5]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zoh1CmJ59n-N", + "outputId": "addb1205-94a9-4f7b-d5b1-882ebed24a8a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 72 + } + }, + "source": [ + "# Function without neing take to graph, i.e., with eager execution.\n", + "def add_fn(a, b):\n", + " return tf.add(a, b)\n", + "\n", + "# Create some tensors\n", + "a = tf.constant([[0.5, 0.5]])\n", + "b = tf.constant([[10.0], [1.0]])\n", + "\n", + "# Check function\n", + "print('Add a of shape {} with b of shape {}'.format(a.shape, b.shape))\n", + "print(add_fn(a, b).numpy())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Add a of shape (1, 2) with b of shape (2, 1)\n", + "[[10.5 10.5]\n", + " [ 1.5 1.5]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "j-WywaJU_MXR" + }, + "source": [ + "### Speedup\n", + "\n", + "Now let's define a custom model and run it:\n", + "\n", + "1. eagerly\n", + "2. on graph\n", + "\n", + "To check how to define models refer to: https://www.tensorflow.org/api_docs/python/tf/keras/Model" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ynGAYcDC-y2W", + "outputId": "98d5fb24-d34b-4c53-85a9-b7456cfca4da", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 90 + } + }, + "source": [ + "class ModelShallow(tf.keras.Model):\n", + "\n", + " def __init__(self):\n", + " super(ModelShallow, self).__init__()\n", + " self.dense1 = tf.keras.layers.Dense(10, activation=tf.nn.relu)\n", + " self.dense2 = tf.keras.layers.Dense(20, activation=tf.nn.relu)\n", + " self.dense3 = tf.keras.layers.Dense(30, activation=tf.nn.softmax)\n", + " self.dropout = tf.keras.layers.Dropout(0.5)\n", + "\n", + " def call(self, inputs, training=False):\n", + " x = self.dense1(inputs)\n", + " if training:\n", + " x = self.dropout(x, training=training)\n", + " x = self.dense2(x)\n", + " out = self.dense3(x)\n", + " return out\n", + "\n", + "class ModelDeep(tf.keras.Model):\n", + "\n", + " def __init__(self):\n", + " super(ModelDeep, self).__init__()\n", + " self.dense1 = tf.keras.layers.Dense(1000, activation=tf.nn.relu)\n", + " self.dense2 = tf.keras.layers.Dense(2000, activation=tf.nn.relu)\n", + " self.dense3 = tf.keras.layers.Dense(3000, activation=tf.nn.softmax)\n", + " self.dropout = tf.keras.layers.Dropout(0.5)\n", + "\n", + " def call(self, inputs, training=False):\n", + " x = self.dense1(inputs)\n", + " if training:\n", + " x = self.dropout(x, training=training)\n", + " x = self.dense2(x)\n", + " out = self.dense3(x)\n", + " return out\n", + "\n", + "# Create the model with eager esxecution by default\n", + "model_shallow_with_eager = ModelShallow()\n", + "\n", + "# Take model to graph. \n", + "# NOTE: Instead of using decorators, we can ditectly operate tf.function on the model.\n", + "model_shallow_on_graph = tf.function(ModelShallow())\n", + "\n", + "# Model deep\n", + "model_deep_with_eager = ModelDeep()\n", + "model_deep_on_graph = tf.function(ModelDeep())\n", + "\n", + "# sample input\n", + "sample_input = tf.random.uniform([60, 28, 28])\n", + "\n", + "# Check time for shallow model\n", + "print(\"Shallow Model - Eager execution time:\", timeit.timeit(lambda: model_shallow_with_eager(sample_input), number=1000))\n", + "print(\"Shallow Model - Graph-based execution time:\", timeit.timeit(lambda: model_shallow_on_graph(sample_input), number=1000))\n", + "\n", + "# Check time for deep model\n", + "print(\"Deep Model - Eager execution time:\", timeit.timeit(lambda: model_deep_with_eager(sample_input), number=1000))\n", + "print(\"Deep Model - Graph-based execution time:\", timeit.timeit(lambda: model_deep_on_graph(sample_input), number=1000))" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Shallow Model - Eager execution time: 2.758659444999921\n", + "Shallow Model - Graph-based execution time: 1.1618621510001503\n", + "Deep Model - Eager execution time: 477.634194022\n", + "Deep Model - Graph-based execution time: 460.01053104599987\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oBvht7tVAX4I" + }, + "source": [ + "" + ], + "execution_count": 4, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/1-basics/models.ipynb b/codes/ipython/1-basics/models.ipynb new file mode 100644 index 0000000..4cfe8d7 --- /dev/null +++ b/codes/ipython/1-basics/models.ipynb @@ -0,0 +1,218 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "models.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "MDevcewD85Im" + }, + "source": [ + "## Models in TensorFlow\n", + "\n", + "In TensorFlow, you always need to define models to train a machine learning model. A model consists of layers that conduct operations and can be reused in the model's structure. Let's get started.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iJoLp_aUvBFR" + }, + "source": [ + "# Loading necessary libraries\n", + "import tensorflow as tf\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "t2tybyJb7Vdf" + }, + "source": [ + "### Layer\n", + "\n", + "In TensorFlow, we can implement layers using the high-level [tf.Module](https://www.tensorflow.org/api_docs/python/tf/Module) class." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oBvht7tVAX4I", + "outputId": "820d740e-87b7-499e-cea0-f949c4e3bb4f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 72 + } + }, + "source": [ + "class SampleLayer(tf.Module):\n", + " \"\"\"\n", + " We define the layer with a class that inherited the structure of tf.Module class.\n", + " \"\"\"\n", + " def __init__(self, name=None):\n", + " super().__init__(name=name)\n", + "\n", + " # Define a trainable variable\n", + " self.x = tf.Variable([[1.0, 3.0]], name=\"x_trainable\")\n", + "\n", + " # Define a non-trainable variable\n", + " self.y = tf.Variable(2.0, trainable=False, name=\"y_non_trainable\")\n", + " def __call__(self, input):\n", + " return self.x * input + self.y\n", + "\n", + "# Initialize the layer\n", + "# Here, __call__ function will not be called\n", + "simple_layer = SampleLayer(name=\"my_layer\")\n", + "\n", + "# Call the layer and extract some information\n", + "output = simple_layer(tf.constant(1.0))\n", + "print(\"Output:\", output)\n", + "print(\"Layer name:\", simple_layer.name)\n", + "print(\"Trainable variables:\", simple_layer.trainable_variables)" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Output: tf.Tensor([[3. 5.]], shape=(1, 2), dtype=float32)\n", + "Layer name: my_layer\n", + "Trainable variables: (,)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DFVkXDUK9tlj" + }, + "source": [ + "### Model\n", + "\n", + "Now. let's define a model. A model consists of multiple layers." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cp01Jsqg84ps", + "outputId": "4107ee01-08c0-4617-fad7-8d1183bfef26", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 92 + } + }, + "source": [ + "class Model(tf.Module):\n", + " def __init__(self, name=None):\n", + " super().__init__(name=name)\n", + "\n", + " self.layer_1 = SampleLayer('layer_1')\n", + " self.layer_2 = SampleLayer('layer_2')\n", + "\n", + " def __call__(self, x):\n", + " x = self.layer_1(x)\n", + " output = self.layer_2(x)\n", + " return output\n", + "\n", + "# Initialize the model\n", + "custom_model = Model(name=\"model_name\")\n", + "\n", + "# Call the model\n", + "# Call the layer and extract some information\n", + "output = custom_model(tf.constant(1.0))\n", + "print(\"Output:\", output)\n", + "print(\"Model name:\", custom_model.name)\n", + "print(\"Trainable variables:\", custom_model.trainable_variables)\n" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Output: tf.Tensor([[ 5. 17.]], shape=(1, 2), dtype=float32)\n", + "Model name: model_name\n", + "Trainable variables: (, )\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jdpeI9wg-65r" + }, + "source": [ + "### Keras Models\n", + "\n", + "Keras is a high-level API that is part of TensorFlow now. You can use [tf.keras.Model](https://www.tensorflow.org/api_docs/python/tf/keras/Model) to define a model. You can also use the collection of [tf.keras.layers](https://www.tensorflow.org/api_docs/python/tf/keras/layers) for your convenience. It's straightforward as below to define a model that has two fully-connected layers:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_D3TjQXm-p3y", + "outputId": "59f662e1-fc73-4d39-c152-7c40d746b2f5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 72 + } + }, + "source": [ + "class CustomModel(tf.keras.Model):\n", + "\n", + " def __init__(self):\n", + " super(CustomModel, self).__init__()\n", + " self.layer_1 = tf.keras.layers.Dense(16, activation=tf.nn.relu)\n", + " self.layer_2 = tf.keras.layers.Dense(32, activation=None)\n", + "\n", + " def call(self, inputs):\n", + " x = self.layer_1(inputs)\n", + " out = self.layer_2(inputs)\n", + " return out\n", + "\n", + "# Create model\n", + "custom_model = CustomModel()\n", + "\n", + "# Call the model\n", + "# Call the layer and extract some information\n", + "output = custom_model(tf.constant([[1.0, 2.0, 3.0]]))\n", + "print(\"Output shape:\", output.shape)\n", + "print(\"Model name:\", custom_model.name)\n", + "\n", + "# Count total trainable variables\n", + "total_trainable_var = np.sum([tf.size(var).numpy() for var in custom_model.trainable_variables])\n", + "print(\"Number of trainable variables:\", total_trainable_var)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Output shape: (1, 32)\n", + "Model name: custom_model\n", + "Number of trainable variables: 192\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/1-basics/readme.rst b/codes/ipython/1-basics/readme.rst deleted file mode 100644 index efbb1b4..0000000 --- a/codes/ipython/1-basics/readme.rst +++ /dev/null @@ -1,5 +0,0 @@ -============================== -Basics -============================== - - diff --git a/codes/ipython/1-basics/tensors.ipynb b/codes/ipython/1-basics/tensors.ipynb new file mode 100644 index 0000000..c1800d7 --- /dev/null +++ b/codes/ipython/1-basics/tensors.ipynb @@ -0,0 +1,409 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "tensors.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "7i1UqqIkNxAt" + }, + "source": [ + "# Import necessary libraries\n", + "import tensorflow as tf\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "I4YPHO9ba3Bc" + }, + "source": [ + "## Tensors\n", + "\n", + "Tensor are multi-dimensitonal arrays that are used in Tensorflow.\n", + "\n", + "We use the following definition:\n", + "\n", + "* **Rank:** The number of dimensions that a vector has.\n", + "\n", + "Below, we will define different kinds of tensors and show their rank using [tf.rank](https://www.tensorflow.org/api_docs/python/tf/rank) function." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rcU8_F3fPUb5", + "outputId": "9f9a8970-4e6b-4550-f90f-64acf7d372b4", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "tensor = tf.constant(0)\n", + "print(\"Print constant tensor {} of rank {}\".format(tensor, tf.rank(tensor)))\n", + "print(\"Show full tensor:\", tensor)" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Print constant tensor 0 of rank 0\n", + "Show full tensor: tf.Tensor(0, shape=(), dtype=int32)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ahIBf6_4cRnm", + "outputId": "b716e303-7c30-4bc5-84d0-f9e0142b710d", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# NOTE: We use .numpy() to transform tf.tensor to numpy\n", + "tensor = tf.constant([1,2,3])\n", + "print(\"Tensor:\", tensor)\n", + "print(\"Rank:\", tf.rank(tensor).numpy())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Tensor: tf.Tensor([1 2 3], shape=(3,), dtype=int32)\n", + "Rank: 1\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ss3aDmDTd-LS" + }, + "source": [ + "### Tensor Operations" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TKX2U0Imcm7d", + "outputId": "7ea93f1e-a98b-418d-8f9c-5f117e1405b2", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "x = tf.constant([[1, 1],\n", + " [1, 1]])\n", + "y = tf.constant([[2, 4],\n", + " [6, 8]])\n", + "\n", + "# Add two tensors\n", + "print(tf.add(x, y), \"\\n\")\n", + "\n", + "# Add two tensors\n", + "print(tf.matmul(x, y), \"\\n\")\n" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "tf.Tensor(\n", + "[[3 5]\n", + " [7 9]], shape=(2, 2), dtype=int32) \n", + "\n", + "tf.Tensor(\n", + "[[ 8 12]\n", + " [ 8 12]], shape=(2, 2), dtype=int32) \n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BlEgQ2t2edKl" + }, + "source": [ + "### Muti-dimentional Tensors\n", + "\n", + "This part is not much different compared to what we learned so far. However, it would be nice to try extracting as much information as we can from a multi-dimentional tensor.\n", + "\n", + "\n", + "Let's use [tf.ones](https://www.tensorflow.org/api_docs/python/tf/ones) for our purpose here. It creates an all-one tensor." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Gdtt0e4-fDkl", + "outputId": "c59185ab-84f1-4e02-d327-255df4cb2b1f", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# We set the shape of the tensor and the desired data type.\n", + "tensor = tf.ones(shape = [2, 3, 6], dtype = tf.float32)\n", + "print('Tensor:', tensor)" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Tensor: tf.Tensor(\n", + "[[[1. 1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1. 1.]]\n", + "\n", + " [[1. 1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1. 1.]\n", + " [1. 1. 1. 1. 1. 1.]]], shape=(2, 3, 6), dtype=float32)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "c5PChFhlfXmx", + "outputId": "15da08f5-98df-4b54-a580-f90881976b38", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "print(\"Tensor Rank: \", tf.rank(tensor).numpy())\n", + "print(\"Shape: \", tensor.shape)\n", + "print(\"Elements' type\", tensor.dtype)\n", + "print(\"The size of the second axis:\", tensor.shape[1])\n", + "print(\"The size of the last axis:\", tensor.shape[-1])\n", + "print(\"Total number of elements: \", tf.size(tensor).numpy())\n", + "print(\"How many dimensions? \", tensor.ndim)" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Tensor Rank: 3\n", + "Shape: (2, 3, 6)\n", + "Elements' type \n", + "The size of the second axis: 3\n", + "The size of the last axis: 6\n", + "Total number of elements: 36\n", + "How many dimensions? 3\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cnYwTBqPhW1I" + }, + "source": [ + "### Indexing\n", + "\n", + "TensorFlow indexing is aligned with Python indexing. See the following examples." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "34-Tfcsnf6uG" + }, + "source": [ + "x = tf.constant([[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]])" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "tNZhisXDhoLp", + "outputId": "5a955103-8ca5-496c-bee1-8828d437491a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# All elements\n", + "print(x[:].numpy())" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[1 2 3]\n", + " [4 5 6]\n", + " [7 8 9]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "KUghwlZ7hr10", + "outputId": "bc6bac99-c1f7-4f16-bb53-7cea60feb1b1", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# All elements of the first row\n", + "print(x[0,:].numpy())" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[1 2 3]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NSCMESaPhwnV", + "outputId": "71ce4701-7169-4538-f535-a5f22e5b9a1d", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# First row and last column\n", + "print(x[0,-1].numpy())" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "3\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hH8Fhi2Sh2rt", + "outputId": "d2d85c95-df34-4cbf-cc74-f0f9214319ac", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# From second row to last and from third column to last\n", + "print(x[1:,2:].numpy)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + ">\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y_zEE3-7iUmu" + }, + "source": [ + "### Data types\n", + "\n", + "You can change the data type of the tesnorflow tensors for your purpose. This will be done easily by [tf.cast](https://www.tensorflow.org/api_docs/python/tf/cast)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mFsqRDxAiK95", + "outputId": "5f3aa9b1-b5c1-4fad-cd18-96e376b742d8", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "original_tensor = tf.constant([1, 2, 3, 4], dtype=tf.int32)\n", + "print('Original tensor: ', original_tensor)\n", + "print(\"Tensor type before casting: \", original_tensor.dtype)\n", + "\n", + "# Casting to change dtype\n", + "casted_tensor = tf.cast(original_tensor, dtype=tf.float32)\n", + "print('New tensor: ', casted_tensor)\n", + "print(\"Tensor type after casting: \", casted_tensor.dtype)" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Original tensor: tf.Tensor([1 2 3 4], shape=(4,), dtype=int32)\n", + "Tensor type before casting: \n", + "New tensor: tf.Tensor([1. 2. 3. 4.], shape=(4,), dtype=float32)\n", + "Tensor type after casting: \n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "81XDYbnxi-nx" + }, + "source": [ + "" + ], + "execution_count": 12, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/1-basics/variables/README.rst b/codes/ipython/1-basics/variables/README.rst deleted file mode 100644 index 084e15f..0000000 --- a/codes/ipython/1-basics/variables/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -========== -Variables -========== - -This source code is dedicated to define and initialize variables. - - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python variable.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - - - - diff --git a/codes/ipython/1-basics/variables/code/variables.ipynb b/codes/ipython/1-basics/variables/code/variables.ipynb deleted file mode 100644 index 4f33f67..0000000 --- a/codes/ipython/1-basics/variables/code/variables.ipynb +++ /dev/null @@ -1,141 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "## This code create some arbitrary variables and initialize them ###\n", - "# The goal is to show how to define and initialize variables from scratch.\n", - "\n", - "import tensorflow as tf\n", - "from tensorflow.python.framework import ops" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#######################################\n", - "######## Defining Variables ###########\n", - "#######################################\n", - "\n", - "# Create three variables with some default values.\n", - "weights = tf.Variable(tf.random_normal([2, 3], stddev=0.1),\n", - " name=\"weights\")\n", - "biases = tf.Variable(tf.zeros([3]), name=\"biases\")\n", - "custom_variable = tf.Variable(tf.zeros([3]), name=\"custom\")\n", - "\n", - "# Get all the variables' tensors and store them in a list.\n", - "all_variables_list = ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "############################################\n", - "######## Customized initializer ############\n", - "############################################\n", - "\n", - "## Initialation of some custom variables.\n", - "## In this part we choose some variables and only initialize them rather than initializing all variables.\n", - "\n", - "# \"variable_list_custom\" is the list of variables that we want to initialize.\n", - "variable_list_custom = [weights, custom_variable]\n", - "\n", - "# The initializer\n", - "init_custom_op = tf.variables_initializer(var_list=variable_list_custom )" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "########################################\n", - "######## Global initializer ############\n", - "########################################\n", - "\n", - "# Method-1\n", - "# Add an op to initialize the variables.\n", - "init_all_op = tf.global_variables_initializer()\n", - "\n", - "# Method-2\n", - "init_all_op = tf.variables_initializer(var_list=all_variables_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "##########################################################\n", - "######## Initialization using other variables ############\n", - "##########################################################\n", - "\n", - "# Create another variable with the same value as 'weights'.\n", - "WeightsNew = tf.Variable(weights.initialized_value(), name=\"WeightsNew\")\n", - "\n", - "# Now, the variable must be initialized.\n", - "init_WeightsNew_op = tf.variables_initializer(var_list=[WeightsNew])" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "######################################\n", - "####### Running the session ##########\n", - "######################################\n", - "with tf.Session() as sess:\n", - " # Run the initializer operation.\n", - " sess.run(init_all_op)\n", - " sess.run(init_custom_op)\n", - " sess.run(init_WeightsNew_op)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/2-basics_in_machine_learning/linear_regression/README.rst b/codes/ipython/2-basics_in_machine_learning/linear_regression/README.rst deleted file mode 100644 index af6caf9..0000000 --- a/codes/ipython/2-basics_in_machine_learning/linear_regression/README.rst +++ /dev/null @@ -1,46 +0,0 @@ -================== -Linear Regression -================== - -This document is dedicated to explain how to run the python script for this tutorial. The documentation is available `here `_. Alternatively, you can check this ``Linear Regression using TensorFlow`` `blog post `_ for further details. - -.. _blogpostlinearregression: http://www.machinelearninguru.com/deep_learning/tensorflow/machine_learning_basics/linear_regresstion/linear_regression.html - -.. _Documentationlinearregression: https://github.com/astorfi/TensorFlow-World/wiki/Linear-Regeression - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python linear_regression.py --num_epochs=50 - -The ``--num_epochs`` flag is to provide the number of epochs that will be used for training. The ``--num_epochs`` flag is not required because its default value is ``50`` and is provided in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_integer( - 'num_epochs', 50, 'The number of epochs for training the model. Default=50') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/ipython/2-basics_in_machine_learning/linear_regression/code/linear_regression.ipynb b/codes/ipython/2-basics_in_machine_learning/linear_regression/code/linear_regression.ipynb deleted file mode 100644 index 2647630..0000000 --- a/codes/ipython/2-basics_in_machine_learning/linear_regression/code/linear_regression.ipynb +++ /dev/null @@ -1,258 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import tensorflow as tf\n", - "import xlrd\n", - "import os\n", - "from sklearn.utils import check_random_state" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Generating artificial data.\n", - "n = 50\n", - "XX = np.arange(n)\n", - "rs = check_random_state(0)\n", - "YY = rs.randint(-10, 10, size=(n,)) + 2.0 * XX\n", - "data = np.stack([XX,YY], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#######################\n", - "## Defining flags #####\n", - "#######################\n", - "\n", - "num_epochs = 50" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# creating the weight and bias.\n", - "# The defined variables will be initialized to zero.\n", - "W = tf.Variable(0.0, name=\"weights\")\n", - "b = tf.Variable(0.0, name=\"bias\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "###############################\n", - "##### Necessary functions #####\n", - "###############################\n", - "\n", - "# Creating placeholders for input X and label Y.\n", - "def inputs():\n", - " \"\"\"\n", - " Defining the place_holders.\n", - " :return:\n", - " Returning the data and label place holders.\n", - " \"\"\"\n", - " X = tf.placeholder(tf.float32, name=\"X\")\n", - " Y = tf.placeholder(tf.float32, name=\"Y\")\n", - " return X,Y\n", - "\n", - "# Create the prediction.\n", - "def inference(X):\n", - " \"\"\"\n", - " Forward passing the X.\n", - " :param X: Input.\n", - " :return: X*W + b.\n", - " \"\"\"\n", - " return X * W + b\n", - "\n", - "def loss(X, Y):\n", - " '''\n", - " compute the loss by comparing the predicted value to the actual label.\n", - " :param X: The input.\n", - " :param Y: The label.\n", - " :return: The loss over the samples.\n", - " '''\n", - "\n", - " # Making the prediction.\n", - " Y_predicted = inference(X)\n", - " return tf.reduce_sum(tf.squared_difference(Y, Y_predicted))/(2*data.shape[0])\n", - "\n", - "\n", - "# The training function.\n", - "def train(loss):\n", - " learning_rate = 0.0001\n", - " return tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "epoch 1, loss=1573.599976\n", - "epoch 2, loss=1332.513916\n", - "epoch 3, loss=1128.868408\n", - "epoch 4, loss=956.848999\n", - "epoch 5, loss=811.544067\n", - "epoch 6, loss=688.804993\n", - "epoch 7, loss=585.127441\n", - "epoch 8, loss=497.550781\n", - "epoch 9, loss=423.574799\n", - "epoch 10, loss=361.087372\n", - "epoch 11, loss=308.304138\n", - "epoch 12, loss=263.718170\n", - "epoch 13, loss=226.056366\n", - "epoch 14, loss=194.243423\n", - "epoch 15, loss=167.371048\n", - "epoch 16, loss=144.671936\n", - "epoch 17, loss=125.497986\n", - "epoch 18, loss=109.301781\n", - "epoch 19, loss=95.620842\n", - "epoch 20, loss=84.064514\n", - "epoch 21, loss=74.302887\n", - "epoch 22, loss=66.057228\n", - "epoch 23, loss=59.092148\n", - "epoch 24, loss=53.208710\n", - "epoch 25, loss=48.238998\n", - "epoch 26, loss=44.041073\n", - "epoch 27, loss=40.495071\n", - "epoch 28, loss=37.499771\n", - "epoch 29, loss=34.969639\n", - "epoch 30, loss=32.832432\n", - "epoch 31, loss=31.027143\n", - "epoch 32, loss=29.502199\n", - "epoch 33, loss=28.214087\n", - "epoch 34, loss=27.126015\n", - "epoch 35, loss=26.206921\n", - "epoch 36, loss=25.430567\n", - "epoch 37, loss=24.774773\n", - "epoch 38, loss=24.220827\n", - "epoch 39, loss=23.752905\n", - "epoch 40, loss=23.357647\n", - "epoch 41, loss=23.023775\n", - "epoch 42, loss=22.741753\n", - "epoch 43, loss=22.503529\n", - "epoch 44, loss=22.302298\n", - "epoch 45, loss=22.132318\n", - "epoch 46, loss=21.988735\n", - "epoch 47, loss=21.867451\n", - "epoch 48, loss=21.764999\n", - "epoch 49, loss=21.678465\n", - "epoch 50, loss=21.605358\n" - ] - } - ], - "source": [ - "with tf.Session() as sess:\n", - "\n", - " # Initialize the variables[w and b].\n", - " sess.run(tf.global_variables_initializer())\n", - "\n", - " # Get the input tensors\n", - " X, Y = inputs()\n", - "\n", - " # Return the train loss and create the train_op.\n", - " train_loss = loss(X, Y)\n", - " train_op = train(train_loss)\n", - "\n", - " # Step 8: train the model\n", - " for epoch_num in range(num_epochs):\n", - " loss_value, _ = sess.run([train_loss,train_op],\n", - " feed_dict={X: data[:,0], Y: data[:,1]})\n", - "\n", - " # Displaying the loss per epoch.\n", - " print('epoch %d, loss=%f' %(epoch_num+1, loss_value))\n", - "\n", - " # save the values of weight and bias\n", - " wcoeff, bias = sess.run([W, b])" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "###############################\n", - "#### Evaluate and plot ########\n", - "###############################\n", - "Input_values = data[:,0]\n", - "Labels = data[:,1]\n", - "Prediction_values = data[:,0] * wcoeff + bias\n", - "\n", - "# uncomment if plotting is desired!\n", - "plt.plot(Input_values, Labels, 'ro', label='main')\n", - "plt.plot(Input_values, Prediction_values, label='Predicted')\n", - "\n", - "# Saving the result.\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.2" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/2-basics_in_machine_learning/linear_regression/updating_model.gif b/codes/ipython/2-basics_in_machine_learning/linear_regression/updating_model.gif deleted file mode 100644 index a6eeb72..0000000 Binary files a/codes/ipython/2-basics_in_machine_learning/linear_regression/updating_model.gif and /dev/null differ diff --git a/codes/ipython/2-basics_in_machine_learning/linear_svm/README.rst b/codes/ipython/2-basics_in_machine_learning/linear_svm/README.rst deleted file mode 100644 index 192f00a..0000000 --- a/codes/ipython/2-basics_in_machine_learning/linear_svm/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -=========== -Linear SVM -=========== - -This document is dedicated to explain how to run the python script for this tutorial. For this tutorial, we will create a linear SVM for separation of the data. The data that is used for this code is linearly separable. - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python linear_svm.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/ipython/2-basics_in_machine_learning/linear_svm/code/linear_svm.ipynb b/codes/ipython/2-basics_in_machine_learning/linear_svm/code/linear_svm.ipynb deleted file mode 100644 index d4c2882..0000000 --- a/codes/ipython/2-basics_in_machine_learning/linear_svm/code/linear_svm.ipynb +++ /dev/null @@ -1,272 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import tensorflow as tf\n", - "from sklearn import datasets\n", - "import random\n", - "import sys" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "##########################\n", - "### Required Functions ###\n", - "##########################\n", - "delta = 1.0\n", - "Reg_param = 1.0\n", - "C_param = 0.1\n", - "batch_size = 32\n", - "num_steps = 1000\n", - "is_evaluation = True\n", - "initial_learning_rate=0.1\n", - "\n", - "def loss_fn(W,b,x_data,y_target):\n", - " logits = tf.subtract(tf.matmul(x_data, W),b)\n", - " norm_term = tf.divide(tf.reduce_sum(tf.multiply(tf.transpose(W),W)),2)\n", - " classification_loss = tf.reduce_mean(tf.maximum(0., tf.subtract(delta, tf.multiply(logits, y_target))))\n", - " total_loss = tf.add(tf.multiply(C_param,classification_loss), tf.multiply(Reg_param,norm_term))\n", - " return total_loss\n", - "\n", - "def inference_fn(W,b,x_data,y_target):\n", - " prediction = tf.sign(tf.subtract(tf.matmul(x_data, W), b))\n", - " accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, y_target), tf.float32))\n", - " return accuracy\n", - "\n", - "def next_batch_fn(x_train,y_train,num_samples=batch_size):\n", - " index = np.random.choice(len(x_train), size=num_samples)\n", - " X_batch = x_train[index]\n", - " y_batch = np.transpose([y_train[index]])\n", - " return X_batch, y_batch" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "##########################\n", - "### Dataset peparation ###\n", - "##########################\n", - "\n", - "# Dataset loading and organizing.\n", - "iris = datasets.load_iris()\n", - "\n", - "# Only the first two features are extracted and used.\n", - "X = iris.data[:, :2]\n", - "\n", - "# The labels are transformed to -1 and 1.\n", - "y = np.array([1 if label==0 else -1 for label in iris.target])\n", - "\n", - "# Get the indices for train and test sets.\n", - "my_randoms = np.random.choice(X.shape[0], X.shape[0], replace=False)\n", - "train_indices = my_randoms[0:int(0.5 * X.shape[0])]\n", - "test_indices = my_randoms[int(0.5 * X.shape[0]):]\n", - "\n", - "# Splitting train and test sets.\n", - "x_train = X[train_indices]\n", - "y_train = y[train_indices]\n", - "x_test = X[test_indices]\n", - "y_test = y[test_indices]" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "#############################\n", - "### Defining Placeholders ###\n", - "#############################\n", - "\n", - "x_data = tf.placeholder(shape=[None, X.shape[1]], dtype=tf.float32)\n", - "y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32)\n", - "W = tf.Variable(tf.random_normal(shape=[X.shape[1],1]))\n", - "bias = tf.Variable(tf.random_normal(shape=[1,1]))\n", - "\n", - "# Calculation of loss and accuracy.\n", - "total_loss = loss_fn(W, bias, x_data, y_target)\n", - "accuracy = inference_fn(W, bias, x_data, y_target)\n", - "\n", - "# Defining train_op\n", - "train_op = tf.train.GradientDescentOptimizer(initial_learning_rate).minimize(total_loss)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:From /home/sina/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/util/tf_should_use.py:133: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.\n", - "Instructions for updating:\n", - "Use `tf.global_variables_initializer` instead.\n" - ] - } - ], - "source": [ - "###############\n", - "### Session ###\n", - "###############\n", - "sess = tf.Session()\n", - "\n", - "# Initialization of the variables.\n", - "init = tf.initialize_all_variables()\n", - "sess.run(init)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step #100, training accuracy= % 92.00, testing accuracy= % 92.00 \n", - "Step #200, training accuracy= % 98.67, testing accuracy= % 94.67 \n", - "Step #300, training accuracy= % 98.67, testing accuracy= % 94.67 \n", - "Step #400, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #500, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #600, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #700, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #800, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #900, training accuracy= % 98.67, testing accuracy= % 100.00 \n", - "Step #1000, training accuracy= % 98.67, testing accuracy= % 100.00 \n" - ] - } - ], - "source": [ - "###############################\n", - "### Training the Linear SVM ###\n", - "###############################\n", - "for step_idx in range(num_steps):\n", - "\n", - " # Get the batch of data.\n", - " X_batch, y_batch = next_batch_fn(x_train, y_train, num_samples=batch_size)\n", - "\n", - " # Run the optimizer.\n", - " sess.run(train_op, feed_dict={x_data: X_batch, y_target: y_batch})\n", - "\n", - " # Calculation of loss and accuracy.\n", - " loss_step = sess.run(total_loss, feed_dict={x_data: X_batch, y_target: y_batch})\n", - " train_acc_step = sess.run(accuracy, feed_dict={x_data: x_train, y_target: np.transpose([y_train])})\n", - " test_acc_step = sess.run(accuracy, feed_dict={x_data: x_test, y_target: np.transpose([y_test])})\n", - "\n", - " # Displaying the desired values.\n", - " if (step_idx + 1) % 100 == 0:\n", - " print('Step #%d, training accuracy= %% %.2f, testing accuracy= %% %.2f ' % (step_idx + 1, float(100 * train_acc_step), float(100 * test_acc_step)))\n", - " \n" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "image/png": "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\ntnXrVv74xz+m/HlFMtbHH4fm2CMF/PDhoStnFPA1qJOvZtGiRbz44ossW7aMRo0asXnzZvbtS867\nHZaXl9MgyuVeB0L+hhtuSMjjiWS1evWiX/64Ywc0i/RmdQLq5GvYuHEjbdq0oVGjRgC0adOG4447\njqVLl9KvXz969erF+eefz8aNGwEoLi5m7Nix9OjRg4KCAt5++20A3n77bc444wx69uzJmWeeyUcf\nfQTAY489xtChQzn33HPp378/O3bsoH///hQWFtK1a1eef/55ILQc8SeffEKPHj0YN24c7s64ceMo\nKCiga9euTJ8+HQitj9O3b1+GDh1Kly5dUv3tEkmuRYtC3XukgL/99tB2BXxsdVmyMpEftS41HG0Z\n0ER8xLB9+3bv3r27d+7c2a+//nqfN2+e79u3z8844wzftGmTu7s/9dRTPnr0aHd379evn19zzTXu\n7v766697fn5oqePS0lIvKytzd/c5c+b4JZdc4u7u06ZN8+OPP75yCeKysjIvLS11d/eSkhI/6aST\nvKKiwv/5z39WPpa7+4wZM/y8887z8vJy//LLL/2EE07wL774wufOnetNmzaNuuywlhqWrBXrZ7i8\nPN3VpQ05s9RwkhxxxBEsXbqUBQsWMHfuXEaMGMHPfvYz3n//fQYMGADA/v37OfbYYyvvc+mllwJw\n9tlns23bNrZu3cr27du58sorWb16NWZ20GJkAwYM4KijjgJC/8n+9Kc/Zf78+dSrV4/PP/+cr776\nqkZdCxcu5NJLL6V+/focc8wx9OvXj3feeYcWLVrQp08fLTkswTFzZuS34YPQcgXXXpvaerKcQj6C\n+vXrU1xcTHFxMV27duXBBx8kPz+fRYsWRdzfqq1wZ2b8/Oc/55xzzmHmzJmsW7eO4uLiyvFmVX69\nfPLJJykpKWHp0qXk5eXRqVOnWpcjrq6Zfl2VIHAPzb1HU1ERe7lgiShz5+STOWETw0cffcTq1asr\nby9fvpxTTz2VkpKSypAvKyvjgw8+qNznwPz4woULadmyJS1btqS0tJTjjz8eCM3DR1NaWsrRRx9N\nXl4ec+fO5dNPPwWgefPmbN++vXK/vn37Mn36dPbv309JSQnz58+nT7Q3PxDJNpMmRQ/4F17414qS\nUmfq5KvZsWMHN910E1u3bqVBgwb8+7//O1OnTmXMmDH86Ec/orS0lPLycm6++Wby8/OB0Bt99OzZ\n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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "if is_evaluation:\n", - " [[w1], [w2]] = sess.run(W)\n", - " [[b]] = sess.run(bias)\n", - " x_line = [data[1] for data in X]\n", - "\n", - " # Find the separator line.\n", - " line = []\n", - " line = [-w2/w1*i+b/w1 for i in x_line]\n", - "\n", - " # coor_pos_list = [positive_X, positive_y]\n", - " # coor_neg_list = [negative_X, negative_y]\n", - "\n", - " for index, data in enumerate(X):\n", - " if y[index] == 1:\n", - " positive_X = data[1]\n", - " positive_y = data[0]\n", - " elif y[index] == -1:\n", - " negative_X = data[1]\n", - " negative_y = data[0]\n", - " else:\n", - " sys.exit(\"Invalid label!\")\n", - " \n", - " # uncomment if plotting is desired!\n", - " # Plotting the SVM decision boundary.\n", - " plt.plot(positive_X, positive_y, '+', label='Positive')\n", - " plt.plot(negative_X, negative_y, 'o', label='Negative')\n", - " plt.plot(x_line, line, 'r-', label='Separator', linewidth=3)\n", - " plt.legend(loc='best')\n", - " plt.title('Linear SVM')\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/2-basics_in_machine_learning/logistic_regression/README.rst b/codes/ipython/2-basics_in_machine_learning/logistic_regression/README.rst deleted file mode 100644 index ee36af1..0000000 --- a/codes/ipython/2-basics_in_machine_learning/logistic_regression/README.rst +++ /dev/null @@ -1,37 +0,0 @@ -================== -Logistic Regression -================== - -This document is dedicated to explaining how to run the python script for this tutorial. ``Logistic regression`` is a binary -classification algorithm in which `yes` or `no` are the only possible responses. The linear output is transformed to a probability of course between zero and 1. The decision is made by thresholding the probability and saying it belongs to which class. We consider ``Softmax`` with ``cross entropy`` loss for minimizing the loss. - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python logistic_regression.py --num_epochs=50 --batch_size=512 --max_num_checkpoint=10 --num_classes=2 - -Different ``flags`` are provided for training. For the full list please refer to the source code. The above example is just an example as is! - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/ipython/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.ipynb b/codes/ipython/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.ipynb deleted file mode 100644 index a20c9e3..0000000 --- a/codes/ipython/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.ipynb +++ /dev/null @@ -1,334 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import tensorflow as tf\n", - "import tempfile\n", - "import urllib\n", - "import pandas as pd\n", - "import os\n", - "from tensorflow.examples.tutorials.mnist import input_data" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "######################################\n", - "######### Necessary flags ############\n", - "######################################\n", - "\n", - "max_num_checkpoint = 10\n", - "num_classes = 2\n", - "batch_size = 512\n", - "num_epochs = 10\n", - "\n", - "##########################################\n", - "######## Learning rate flags #############\n", - "##########################################\n", - "\n", - "initial_learning_rate = 0.001\n", - "learning_rate_decay_factor = 0.95\n", - "num_epochs_per_decay = 1\n", - "\n", - "#########################################\n", - "########## status flags #################\n", - "#########################################\n", - "\n", - "is_training = False\n", - "fine_tuning = False\n", - "online_test = True\n", - "allow_soft_placement = True\n", - "log_device_placement = False\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.\n", - "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", - "Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.\n", - "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", - "Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.\n", - "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", - "Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.\n", - "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" - ] - } - ], - "source": [ - "# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist)\n", - "# It checks and download MNIST if it's not already downloaded then extract it.\n", - "# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images.\n", - "mnist = input_data.read_data_sets(\"MNIST_data/\", reshape=True, one_hot=False)\n", - "\n", - "########################\n", - "### Data Processing ####\n", - "########################\n", - "# Organize the data and feed it to associated dictionaries.\n", - "data={}\n", - "\n", - "data['train/image'] = mnist.train.images\n", - "data['train/label'] = mnist.train.labels\n", - "data['test/image'] = mnist.test.images\n", - "data['test/label'] = mnist.test.labels\n", - "\n", - "def extract_samples_Fn(data):\n", - " index_list = []\n", - " for sample_index in range(data.shape[0]):\n", - " label = data[sample_index]\n", - " if label == 1 or label == 0:\n", - " index_list.append(sample_index)\n", - " return index_list\n", - "\n", - "\n", - "# Get only the samples with zero and one label for training.\n", - "index_list_train = extract_samples_Fn(data['train/label'])\n", - "\n", - "\n", - "# Get only the samples with zero and one label for test set.\n", - "index_list_test = extract_samples_Fn(data['test/label'])\n", - "\n", - "# Reform the train data structure.\n", - "data['train/image'] = mnist.train.images[index_list_train]\n", - "data['train/label'] = mnist.train.labels[index_list_train]\n", - "\n", - "# Reform the test data structure.\n", - "data['test/image'] = mnist.test.images[index_list_test]\n", - "data['test/label'] = mnist.test.labels[index_list_test]\n", - "\n", - "# Dimentionality of train\n", - "dimensionality_train = data['train/image'].shape\n", - "\n", - "# Dimensions\n", - "num_train_samples = dimensionality_train[0]\n", - "num_features = dimensionality_train[1]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1, Training Loss= 0.32686\n", - "Epoch 2, Training Loss= 0.13760\n", - "Epoch 3, Training Loss= 0.08637\n", - "Epoch 4, Training Loss= 0.06380\n", - "Epoch 5, Training Loss= 0.05090\n", - "Epoch 6, Training Loss= 0.04240\n", - "Epoch 7, Training Loss= 0.03636\n", - "Epoch 8, Training Loss= 0.03186\n", - "Epoch 9, Training Loss= 0.02838\n", - "Epoch 10, Training Loss= 0.02562\n", - "Final Test Accuracy is % 99.95\n" - ] - } - ], - "source": [ - "#######################################\n", - "########## Defining Graph ############\n", - "#######################################\n", - "\n", - "graph = tf.Graph()\n", - "with graph.as_default():\n", - " ###################################\n", - " ########### Parameters ############\n", - " ###################################\n", - "\n", - " # global step\n", - " global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", - "\n", - " # learning rate policy\n", - " decay_steps = int(num_train_samples / batch_size *\n", - " num_epochs_per_decay)\n", - " learning_rate = tf.train.exponential_decay(initial_learning_rate,\n", - " global_step,\n", - " decay_steps,\n", - " learning_rate_decay_factor,\n", - " staircase=True,\n", - " name='exponential_decay_learning_rate')\n", - " ###############################################\n", - " ########### Defining place holders ############\n", - " ###############################################\n", - " image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image')\n", - " label_place = tf.placeholder(tf.int32, shape=([None,]), name='gt')\n", - " label_one_hot = tf.one_hot(label_place, depth=num_classes, axis=-1)\n", - " dropout_param = tf.placeholder(tf.float32)\n", - "\n", - " ##################################################\n", - " ########### Model + Loss + Accuracy ##############\n", - " ##################################################\n", - " # A simple fully connected with two class and a softmax is equivalent to Logistic Regression.\n", - " logits = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs = num_classes, scope='fc')\n", - "\n", - " # Define loss\n", - " with tf.name_scope('loss'):\n", - " loss_tensor = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=label_one_hot))\n", - "\n", - " # Accuracy\n", - " # Evaluate the model\n", - " prediction_correct = tf.equal(tf.argmax(logits, 1), tf.argmax(label_one_hot, 1))\n", - "\n", - " # Accuracy calculation\n", - " accuracy = tf.reduce_mean(tf.cast(prediction_correct, tf.float32))\n", - "\n", - " #############################################\n", - " ########### training operation ##############\n", - " #############################################\n", - "\n", - " # Define optimizer by its default values\n", - " optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", - "\n", - " # 'train_op' is a operation that is run for gradient update on parameters.\n", - " # Each execution of 'train_op' is a training step.\n", - " # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow\n", - " # update the 'global_step' and increment it by one!\n", - "\n", - " # gradient update.\n", - " with tf.name_scope('train_op'):\n", - " gradients_and_variables = optimizer.compute_gradients(loss_tensor)\n", - " train_op = optimizer.apply_gradients(gradients_and_variables, global_step=global_step)\n", - "\n", - "\n", - " ############################################\n", - " ############ Run the Session ###############\n", - " ############################################\n", - " session_conf = tf.ConfigProto(\n", - " allow_soft_placement=allow_soft_placement,\n", - " log_device_placement=log_device_placement)\n", - " sess = tf.Session(graph=graph, config=session_conf)\n", - "\n", - " with sess.as_default():\n", - "\n", - " # The saver op.\n", - " saver = tf.train.Saver()\n", - "\n", - " # Initialize all variables\n", - " sess.run(tf.global_variables_initializer())\n", - "\n", - " # The prefix for checkpoint files\n", - " checkpoint_prefix = 'model'\n", - "\n", - " # If fie-tuning flag in 'True' the model will be restored.\n", - " if fine_tuning:\n", - " saver.restore(sess, os.path.join(checkpoint_path, checkpoint_prefix))\n", - " print(\"Model restored for fine-tuning...\")\n", - "\n", - " ###################################################################\n", - " ########## Run the training and loop over the batches #############\n", - " ###################################################################\n", - "\n", - " # go through the batches\n", - " test_accuracy = 0\n", - " for epoch in range(num_epochs):\n", - " total_batch_training = int(data['train/image'].shape[0] / batch_size)\n", - "\n", - " # go through the batches\n", - " for batch_num in range(total_batch_training):\n", - " #################################################\n", - " ########## Get the training batches #############\n", - " #################################################\n", - "\n", - " start_idx = batch_num * batch_size\n", - " end_idx = (batch_num + 1) * batch_size\n", - "\n", - " # Fit training using batch data\n", - " train_batch_data, train_batch_label = data['train/image'][start_idx:end_idx], data['train/label'][\n", - " start_idx:end_idx]\n", - "\n", - " ########################################\n", - " ########## Run the session #############\n", - " ########################################\n", - "\n", - " # Run optimization op (backprop) and Calculate batch loss and accuracy\n", - " # When the tensor tensors['global_step'] is evaluated, it will be incremented by one.\n", - " batch_loss, _, training_step = sess.run(\n", - " [loss_tensor, train_op,\n", - " global_step],\n", - " feed_dict={image_place: train_batch_data,\n", - " label_place: train_batch_label,\n", - " dropout_param: 0.5})\n", - "\n", - " ########################################\n", - " ########## Write summaries #############\n", - " ########################################\n", - "\n", - "\n", - " #################################################\n", - " ########## Plot the progressive bar #############\n", - " #################################################\n", - "\n", - " print(\"Epoch \" + str(epoch + 1) + \", Training Loss= \" + \\\n", - " \"{:.5f}\".format(batch_loss))\n", - "\n", - " ############################################################################\n", - " ########## Run the session for pur evaluation on the test data #############\n", - " ############################################################################\n", - "\n", - " # Evaluation of the model\n", - " test_accuracy = 100 * sess.run(accuracy, feed_dict={\n", - " image_place: data['test/image'],\n", - " label_place: data['test/label'],\n", - " dropout_param: 1.})\n", - "\n", - " print(\"Final Test Accuracy is %% %.2f\" % test_accuracy)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/2-basics_in_machine_learning/multiclass_svm/README.rst b/codes/ipython/2-basics_in_machine_learning/multiclass_svm/README.rst deleted file mode 100644 index 809b0a1..0000000 --- a/codes/ipython/2-basics_in_machine_learning/multiclass_svm/README.rst +++ /dev/null @@ -1,38 +0,0 @@ -======================= -Multi-Class Kernel SVM -======================= - -This document is dedicated to explain how to run the python script for this tutorial. For this tutorial, we will create a Kernel SVM for separation of the data. The data that is used for this code is MNIST dataset. This document is inspired on `Implementing Multiclass SVMs `_ open source code. However, in ours, we extend it to MNIST dataset and modify its method. - -.. _Multiclasssvm: https://github.com/nfmcclure/tensorflow_cookbook/tree/master/04_Support_Vector_Machines/06_Implementing_Multiclass_SVMs - - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python multiclass_SVM.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/ipython/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.ipynb b/codes/ipython/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.ipynb deleted file mode 100644 index 6ba6fc3..0000000 --- a/codes/ipython/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.ipynb +++ /dev/null @@ -1,342 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import tensorflow as tf\n", - "from sklearn import datasets\n", - "from tensorflow.python.framework import ops\n", - "from tensorflow.examples.tutorials.mnist import input_data\n", - "from sklearn.decomposition import PCA" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#######################\n", - "### Necessary Flags ###\n", - "#######################\n", - "\n", - "batch_size = 50\n", - "num_steps = 1000\n", - "log_steps = 50\n", - "is_evaluation = True\n", - "gamma = -15.0\n", - "initial_learning_rate = 0.01" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "###########################\n", - "### Necessary Functions ###\n", - "###########################\n", - "def cross_class_label_fn(A):\n", - " \"\"\"\n", - " This function take the matrix of size (num_classes, batch_size) and return the cross-class label matrix\n", - " in which Yij are the elements where i,j are class indices.\n", - " :param A: The input matrix of size (num_classes, batch_size).\n", - " :return: The output matrix of size (num_classes, batch_size, batch_size).\n", - " \"\"\"\n", - " label_class_i = tf.reshape(A, [num_classes, 1, batch_size])\n", - " label_class_j = tf.reshape(label_class_i, [num_classes, batch_size, 1])\n", - " returned_mat = tf.matmul(label_class_j, label_class_i)\n", - " return returned_mat\n", - "\n", - "\n", - "# Compute SVM loss.\n", - "def loss_fn(alpha, label_placeholder):\n", - " term_1 = tf.reduce_sum(alpha)\n", - " alpha_cross = tf.matmul(tf.transpose(alpha), alpha)\n", - " cross_class_label = cross_class_label_fn(label_placeholder)\n", - " term_2 = tf.reduce_sum(tf.multiply(my_kernel, tf.multiply(alpha_cross, cross_class_label)), [1, 2])\n", - " return tf.reduce_sum(tf.subtract(term_2, term_1))\n", - "\n", - "\n", - "# Gaussian (RBF) prediction kernel\n", - "def kernel_pred(x_data, prediction_grid):\n", - " A = tf.reshape(tf.reduce_sum(tf.square(x_data), 1), [-1, 1])\n", - " B = tf.reshape(tf.reduce_sum(tf.square(prediction_grid), 1), [-1, 1])\n", - " square_distance = tf.add(tf.subtract(A, tf.multiply(2., tf.matmul(x_data, tf.transpose(prediction_grid)))),\n", - " tf.transpose(B))\n", - " return tf.exp(tf.multiply(gamma, tf.abs(square_distance)))\n", - "\n", - "\n", - "def kernel_fn(x_data, gamma):\n", - " \"\"\"\n", - " This function generates the RBF kernel.\n", - " :param x_data: Input data\n", - " :param gamma: Hyperparamet.\n", - " :return: The RBF kernel.\n", - " \"\"\"\n", - " square_distance = tf.multiply(2., tf.matmul(x_data, tf.transpose(x_data)))\n", - " kernel = tf.exp(tf.multiply(gamma, tf.abs(square_distance)))\n", - " return kernel\n", - "\n", - "\n", - "def prepare_label_fn(label_onehot):\n", - " \"\"\"\n", - " Label preparation. Since we are dealing with one vs all scenario, for each sample\n", - " all the labels other than the current class must be set to -1. It can be done by simply\n", - " Setting all the zero values to -1 in the return one_hot array for classes.\n", - "\n", - " :param label_onehot: The input as one_hot label which shape (num_samples,num_classes)\n", - " :return: The output with the same shape and all zeros tured to -1.\n", - " \"\"\"\n", - " labels = label_onehot\n", - " labels[labels == 0] = -1\n", - " labels = np.transpose(labels)\n", - " return labels\n", - "\n", - "\n", - "def next_batch(X, y, batch_size):\n", - " \"\"\"\n", - " Generating a batch of random data.\n", - " :param x_train:\n", - " :param batch_size:\n", - " :return:\n", - " \"\"\"\n", - " idx = np.random.choice(len(X), size=batch_size)\n", - " X_batch = X[idx]\n", - " y_batch = y[:, idx]\n", - " return X_batch, y_batch" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", - "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n", - "The variance of the chosen components = %91.41\n" - ] - } - ], - "source": [ - "########################\n", - "### Data Preparation ###\n", - "########################\n", - "\n", - "# Read MNIST data. It has a data structure.\n", - "# mnist.train.images, mnist.train.labels: The training set images and their associated labels.\n", - "# mnist.validation.images, mnist.validation.labels: The validation set images and their associated labels.\n", - "# mnist.test.images, mnist.test.labels: The test set images and their associated labels.\n", - "\n", - "# Flags:\n", - "# \"reshape=True\", by this flag, the data will be reshaped to (num_samples,num_features)\n", - "# and since each image is 28x28, the num_features = 784\n", - "# \"one_hot=True\", this flag return one_hot labeling format\n", - "# ex: sample_label [1 0 0 0 0 0 0 0 0 0] says the sample belongs to the first class.\n", - "mnist = input_data.read_data_sets(\"MNIST_data/\", reshape=True, one_hot=True)\n", - "\n", - "# Label preparation.\n", - "y_train = prepare_label_fn(mnist.train.labels)\n", - "y_test = prepare_label_fn(mnist.test.labels)\n", - "\n", - "# Get the number of classes.\n", - "num_classes = y_train.shape[0]\n", - "\n", - "##########################################\n", - "### Dimensionality Reduction Using PCA ###\n", - "##########################################\n", - "pca = PCA(n_components=100)\n", - "pca.fit(mnist.train.images)\n", - "\n", - "# print the accumulative variance for the returned principle components.\n", - "print(\"The variance of the chosen components = %{0:.2f}\".format(100 * np.sum(pca.explained_variance_ratio_)))\n", - "x_train = pca.transform(mnist.train.images)\n", - "x_test = pca.transform(mnist.test.images)\n", - "num_fetures = x_train.shape[1]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "############################\n", - "### Graph & Optimization ###\n", - "############################\n", - "# Create graph\n", - "sess = tf.Session()\n", - "\n", - "# Initialize placeholders\n", - "data_placeholder = tf.placeholder(shape=[None, num_fetures], dtype=tf.float32)\n", - "label_placeholder = tf.placeholder(shape=[num_classes, None], dtype=tf.float32)\n", - "pred_placeholder = tf.placeholder(shape=[None, num_fetures], dtype=tf.float32)\n", - "\n", - "# The alpha variable for solving the dual optimization problem.\n", - "alpha = tf.Variable(tf.random_normal(shape=[num_classes, batch_size]))\n", - "\n", - "# Gaussian (RBF) kernel\n", - "gamma = tf.constant(gamma)\n", - "\n", - "# RBF kernel\n", - "my_kernel = kernel_fn(data_placeholder, gamma)\n", - "\n", - "# Loss calculation.\n", - "loss = loss_fn(alpha, label_placeholder)\n", - "\n", - "# Generating the prediction kernel.\n", - "pred_kernel = kernel_pred(data_placeholder, pred_placeholder)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "#############################\n", - "### Prediction & Accuracy ###\n", - "#############################\n", - "prediction_output = tf.matmul(tf.multiply(label_placeholder, alpha), pred_kernel)\n", - "prediction = tf.arg_max(prediction_output - tf.expand_dims(tf.reduce_mean(prediction_output, 1), 1), 0)\n", - "accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, tf.argmax(label_placeholder, 0)), tf.float32))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Optimizer\n", - "train_op = tf.train.AdamOptimizer(initial_learning_rate).minimize(loss)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Variables Initialization.\n", - "init = tf.global_variables_initializer()\n", - "sess.run(init)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step #50, Loss= -2258.316895, training accuracy= 0.360000, testing accuracy= 0.320000 \n", - "Step #100, Loss= -4122.960938, training accuracy= 0.560000, testing accuracy= 0.540000 \n", - "Step #150, Loss= -5949.908203, training accuracy= 0.660000, testing accuracy= 0.860000 \n", - "Step #200, Loss= -7223.067871, training accuracy= 0.920000, testing accuracy= 0.920000 \n", - "Step #250, Loss= -7966.063965, training accuracy= 0.980000, testing accuracy= 0.980000 \n", - "Step #300, Loss= -9594.546875, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #350, Loss= -8474.500977, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #400, Loss= -10710.136719, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #450, Loss= -11123.141602, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #500, Loss= -10979.212891, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #550, Loss= -12162.305664, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #600, Loss= -14245.701172, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #650, Loss= -10697.230469, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #700, Loss= -14184.848633, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #750, Loss= -10400.685547, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #800, Loss= -13207.020508, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #850, Loss= -11359.216797, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #900, Loss= -17082.535156, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #950, Loss= -14653.086914, training accuracy= 1.000000, testing accuracy= 1.000000 \n", - "Step #1000, Loss= -18085.871094, training accuracy= 1.000000, testing accuracy= 1.000000 \n" - ] - } - ], - "source": [ - "# Training loop\n", - "for i in range(num_steps):\n", - "\n", - " batch_X, batch_y = next_batch(x_train, y_train, batch_size)\n", - " sess.run(train_op, feed_dict={data_placeholder: batch_X, label_placeholder: batch_y})\n", - "\n", - " temp_loss = sess.run(loss, feed_dict={data_placeholder: batch_X, label_placeholder: batch_y})\n", - "\n", - " acc_train_batch = sess.run(accuracy, feed_dict={data_placeholder: batch_X,\n", - " label_placeholder: batch_y,\n", - " pred_placeholder: batch_X})\n", - "\n", - " batch_X_test, batch_y_test = next_batch(x_test, y_test, batch_size)\n", - " acc_test_batch = sess.run(accuracy, feed_dict={data_placeholder: batch_X_test,\n", - " label_placeholder: batch_y_test,\n", - " pred_placeholder: batch_X_test})\n", - "\n", - " if (i + 1) % log_steps == 0:\n", - " print('Step #%d, Loss= %f, training accuracy= %f, testing accuracy= %f ' % (\n", - " (i+1), temp_loss, acc_train_batch, acc_test_batch))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/__init__.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/__init__.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py deleted file mode 100644 index 0f3fdb9..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py +++ /dev/null @@ -1,38 +0,0 @@ -import sys - - -def print_progress(progress, epoch_num, loss): - """ - This function draw an active progress bar. - :param progress: Where we are: - type: float - value: [0,1] - :param epoch_num: number of epochs for training - :param loss: The loss for the specific batch in training phase. - - :return: Progressing bar - """ - - # Define the length of bar - barLength = 30 - - # Ceck the input! - assert type(progress) is float, "id is not a float: %r" % id - assert 0 <= progress <= 1, "variable should be between zero and one!" - - # Empty status while processing. - status = "" - - # This part is to make a new line when the process is finished. - if progress >= 1: - progress = 1 - status = "\r\n" - - # Where we are in the progress! - indicator = int(round(barLength*progress)) - - # Print the appropriate progress phase! - list = [str(epoch_num), "#"*indicator , "-"*(barLength-indicator), progress*100, loss, status] - text = "\rEpoch {0[0]} {0[1]} {0[2]} %{0[3]:.2f} loss={0[4]:.3f} {0[5]}".format(list) - sys.stdout.write(text) - sys.stdout.flush() diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ b/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ deleted file mode 100644 index 0f3fdb9..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ +++ /dev/null @@ -1,38 +0,0 @@ -import sys - - -def print_progress(progress, epoch_num, loss): - """ - This function draw an active progress bar. - :param progress: Where we are: - type: float - value: [0,1] - :param epoch_num: number of epochs for training - :param loss: The loss for the specific batch in training phase. - - :return: Progressing bar - """ - - # Define the length of bar - barLength = 30 - - # Ceck the input! - assert type(progress) is float, "id is not a float: %r" % id - assert 0 <= progress <= 1, "variable should be between zero and one!" - - # Empty status while processing. - status = "" - - # This part is to make a new line when the process is finished. - if progress >= 1: - progress = 1 - status = "\r\n" - - # Where we are in the progress! - indicator = int(round(barLength*progress)) - - # Print the appropriate progress phase! - list = [str(epoch_num), "#"*indicator , "-"*(barLength-indicator), progress*100, loss, status] - text = "\rEpoch {0[0]} {0[1]} {0[2]} %{0[3]:.2f} loss={0[4]:.3f} {0[5]}".format(list) - sys.stdout.write(text) - sys.stdout.flush() diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/evaluation.sh b/codes/ipython/3-neural_networks/convolutional-neural-network/code/evaluation.sh deleted file mode 100755 index 232711f..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/evaluation.sh +++ /dev/null @@ -1,6 +0,0 @@ - -# Run training. -python test_classifier.py \ - --batch_size=512 \ - --allow_soft_placement - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/input_function/__init__.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/input_function/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/input_function/input.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/input_function/input.py deleted file mode 100644 index b924447..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/input_function/input.py +++ /dev/null @@ -1,110 +0,0 @@ -import numpy as np -import collections - - -class DATA_OBJECT(object): - def __init__(self, - images, - labels, - num_classes=0, - one_hot=False, - dtype=np.float32, - reshape=False): - """Data object construction. - images: The images of size [num_samples, rows, columns, depth]. - labels: The labels of size [num_samples,] - num_classes: The number of classes in case one_hot labeling is desired. - one_hot=False: Turn the labels into one_hot format. - dtype=np.float32: The data type. - reshape=False: Reshape in case the feature vector extraction is desired. - - """ - # Define the date type. - if dtype not in (np.uint8, np.float32): - raise TypeError('Invalid image dtype %r, expected uint8 or float32' % - dtype) - assert images.shape[0] == labels.shape[0], ( - 'images.shape: %s labels.shape: %s' % (images.shape, labels.shape)) - self._num_samples = images.shape[0] - - # [num_examples, rows, columns, depth] -> [num_examples, rows*columns] - if reshape: - assert images.shape[3] == 1 - images = images.reshape(images.shape[0], - images.shape[1] * images.shape[2]) - - # Conver to float if necessary - if dtype == np.float32: - # Convert from [0, 255] -> [0.0, 1.0]. - images = images.astype(dtype) - images = np.multiply(images, 1.0 / 255.0) - self._images = images - self._labels = labels - - # If the one_hot flag is true, then the one_hot labeling supersedes the normal labeling. - if one_hot: - # If the one_hot labeling is desired, number of classes must be defined as one of the arguments of DATA_OBJECT class! - assert num_classes != 0, ( - 'You must specify the num_classes in the DATA_OBJECT for one_hot label construction!') - - # Define the indexes. - index = np.arange(self._num_samples) * num_classes - one_hot_labels = np.zeros((self._num_samples, num_classes)) - one_hot_labels.flat[index + labels.ravel()] = 1 - self._labels = one_hot_labels - - @property - def images(self): - return self._images - - @property - def labels(self): - return self._labels - - @property - def num_samples(self): - return self._num_samples - - -def provide_data(mnist): - """ - This function provide data object with desired shape. - The attribute of data object: - - train - - validation - - test - The sub attributs of the data object attributes: - -images - -labels - - :param mnist: The downloaded MNIST dataset - :return: data: The data object. - ex: data.train.images return the images of the dataset object in the training set! - - - """ - ################################################ - ########## Get the images and labels############ - ################################################ - - # Note: This setup is specific to mnist data but can be generalized for any data. - # The ?_images(? can be train, validation or test) must have the format of [num_samples, rows, columns, depth] after extraction from data. - # The ?_labels(? can be train, validation or test) must have the format of [num_samples,] after extraction from data. - train_images = mnist.train.images - train_labels = mnist.train.labels - validation_images = mnist.validation.images - validation_labels = mnist.validation.labels - test_images = mnist.test.images - test_labels = mnist.test.labels - - # Create separate objects for train, validation & test. - train = DATA_OBJECT(train_images, train_labels, num_classes=10, one_hot=True, dtype=np.float32, reshape=False) - validation = DATA_OBJECT(validation_images, validation_labels, num_classes=10, one_hot=True, dtype=np.float32, - reshape=False) - test = DATA_OBJECT(test_images, test_labels, num_classes=10, one_hot=True, dtype=np.float32, reshape=False) - - # Create the whole data object - DataSetObject = collections.namedtuple('DataSetObject', ['train', 'validation', 'test']) - data = DataSetObject(train=train, validation=validation, test=test) - - return data diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/net_structure/__init__.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/net_structure/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/net_structure/net.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/net_structure/net.py deleted file mode 100644 index 8ce1e80..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/net_structure/net.py +++ /dev/null @@ -1,93 +0,0 @@ -##################################### -# With some tiny modification, this code is the one used by Tensorflow slim at: -# https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim -# Please refer to the link for further explanations. - -### The difference is this architecture is written in fully-convolutional fashion. -### The advantage is that, this model can be used for larger image sizes with some average pooling in the last layer. - -import tensorflow as tf - -slim = tf.contrib.slim - - -def net_architecture(images, num_classes=10, is_training=False, - dropout_keep_prob=0.5, - spatial_squeeze=True, - scope='Net'): - """Creates a variant of the Net model. - - Args: - images: The batch of `Tensors`: size [batch_size, height, width, channels]. - num_classes: Total number of classes. - is_training: Training/Validation. - dropout_keep_prob: The percentage of activation values: Only active in training mode! - scope: Variable_scope. - - Returns: - logits: the pre-softmax activations of size [batch_size, `num_classes`] - end_points: The dictionary for the layers outputs. - """ - - # Create empty dictionary - end_points = {} - - with tf.variable_scope(scope, 'Net', [images, num_classes]) as sc: - end_points_collection = sc.name + '_end_points' - - # Collect outputs for conv2d and max_pool2d. - with tf.contrib.framework.arg_scope([tf.contrib.layers.conv2d, tf.contrib.layers.max_pool2d], - outputs_collections=end_points_collection): - # Layer-1 - net = tf.contrib.layers.conv2d(images, 32, [5, 5], scope='conv1') - net = tf.contrib.layers.max_pool2d(net, [2, 2], 2, scope='pool1') - - # Layer-2 - net = tf.contrib.layers.conv2d(net, 64, [5, 5], scope='conv2') - net = tf.contrib.layers.max_pool2d(net, [2, 2], 2, scope='pool2') - - # Layer-3 - net = tf.contrib.layers.conv2d(net, 1024, [7, 7], padding='VALID', scope='fc3') - net = tf.contrib.layers.dropout(net, dropout_keep_prob, is_training=is_training, - scope='dropout3') - - # Last layer which is the logits for classes - logits = tf.contrib.layers.conv2d(net, num_classes, [1, 1], activation_fn=None, scope='fc4') - - # Return the collections as a dictionary - end_points = slim.utils.convert_collection_to_dict(end_points_collection) - - # Squeeze spatially to eliminate extra dimensions.(embedding layer) - if spatial_squeeze: - logits = tf.squeeze(logits, [1, 2], name='fc4/squeezed') - end_points[sc.name + '/fc4'] = logits - return logits, end_points - - -def net_arg_scope(weight_decay=0.0005, is_training=False): - """Defines the default network argument scope. - - Args: - weight_decay: The weight decay to use for regularizing the model. - - Returns: - An `arg_scope` to use for the model. - """ - if is_training: - with tf.contrib.framework.arg_scope( - [tf.contrib.layers.conv2d], - padding='SAME', - weights_regularizer=slim.l2_regularizer(weight_decay), - weights_initializer=tf.contrib.layers.variance_scaling_initializer(factor=1.0, mode='FAN_AVG', - uniform=False, seed=None, - dtype=tf.float32), - activation_fn=tf.nn.relu) as sc: - return sc - - else: - with tf.contrib.framework.arg_scope( - [tf.contrib.layers.conv2d], - padding='SAME', - activation_fn=tf.nn.relu) as sc: - return sc - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh b/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh deleted file mode 100755 index c52212a..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Where the logs will be saved to. -test_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/test_logs - -# Where the checkpoints is saved to. -checkpoint_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/checkpoints - - -# Run training. -python test_classifier.py \ - --test_dir=${test_dir} \ - --checkpoint_dir=${checkpoint_dir} \ - --batch_size=512 \ - --num_epochs=2 \ - --allow_soft_placement - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/train.sh b/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/train.sh deleted file mode 100755 index 88f413b..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/script/train.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Where the logs will be saved to. -train_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/train_logs - -# Where the checkpoints is saved to. -checkpoint_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/checkpoints - - -# Run training. -python train_classifier.py \ - --train_dir=${train_dir} \ - --checkpoint_dir=${checkpoint_dir} \ - --batch_size=512 \ - --num_epochs=20 \ - --max_num_checkpoint=10 \ - --is_training \ - --allow_soft_placement - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/test_classifier.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/test_classifier.py deleted file mode 100644 index a6507fe..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/test_classifier.py +++ /dev/null @@ -1,247 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -from net_structure import net -from input_function import input -from auxiliary import progress_bar -import os -import sys - -###################################### -######### Necessary Flags ############ -###################################### -tf.app.flags.DEFINE_string( - 'evaluation_path', os.path.dirname(os.path.abspath(__file__)) + '/test_log', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoints_directory', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.checkpoints_directory): - raise ValueError('You must assign absolute path for --checkpoints_directory') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=False, one_hot=False) - -# The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = data.train.images.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -height = dimensionality_train[1] -width = dimensionality_train[2] -num_channels = dimensionality_train[3] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, height, width, num_channels]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_parameter = tf.placeholder(tf.float32) - - ################################################## - ########### Model + loss + accuracy ############## - ################################################## - - # MODEL - joint_arg_scope = net.net_arg_scope(weight_decay=0.0005, is_training=FLAGS.is_training) - with tf.contrib.framework.arg_scope(joint_arg_scope): - logits_features, end_points = net.net_architecture(image_place, num_classes=FLAGS.num_classes, - dropout_keep_prob=dropout_parameter, - is_training=FLAGS.is_training) - - # Define loss - with tf.name_scope('loss'): - loss_test = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits_features, labels=label_place)) - - # Accuracy - with tf.name_scope('accuracy_test'): - # Evaluate the model - correct_test_prediction = tf.equal(tf.argmax(logits_features, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy_test = tf.reduce_mean(tf.cast(correct_test_prediction, tf.float32)) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(data.test.images.shape[0], size=(3,)) - tf.summary.image('images', data.test.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - # Histogram and scalar summaries sammaries - # sparsity: This summary is the fraction of zero activation for the output of each layer! - # activations: This summary is the histogram of activation for the output of each layer! - # WARNING: tf.summary.histogram can be very time consuming so it will be calculated per epoch! - for end_point in end_points: - x = end_points[end_point] - tf.summary.scalar('sparsity/' + end_point, - tf.nn.zero_fraction(x), collections=['test']) - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss_test, collections=['test']) - tf.summary.scalar("accuracy_test", accuracy_test, collections=['test']) - tf.summary.scalar("global_step", global_step, collections=['test']) - - # Merge all summaries together. - summary_test_op = tf.summary.merge_all('test') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - tensors_key = ['loss_test', 'accuracy_test', 'global_step', 'image_place', 'label_place', - 'summary_test_op'] - tensors_values = [loss_test, accuracy_test, global_step, image_place, label_place, summary_test_op] - tensors = dict(zip(tensors_key, tensors_values)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - - # The saver op. - saver = tf.train.Saver() - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################################### - ########## Defining the summary writers for test ########### - ################################################################### - - test_summary_dir = os.path.join(FLAGS.evaluation_path, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoints_directory, checkpoint_prefix)) - print("Model restored...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - num_test_samples = data.test.images.shape[0] - total_batch_test = int(num_test_samples / FLAGS.batch_size) - - # go through the batches - test_accuracy = 0 - for batch_num in range(total_batch_test): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - test_batch_data, test_batch_label = data.test.images[start_idx:end_idx], data.test.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run session and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - - test_batch_accuracy, batch_loss, test_summaries, test_step = sess.run( - [tensors['accuracy_test'], tensors['loss_test'], tensors['summary_test_op'], - tensors['global_step']], - feed_dict={tensors['image_place']: test_batch_data, - tensors['label_place']: test_batch_label}) - test_accuracy += test_batch_accuracy - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - test_summary_writer.add_summary(test_summaries, global_step=test_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - progress = float(batch_num + 1) / total_batch_test - progress_bar.print_progress(progress, epoch_num=1, loss=batch_loss) - - - ###################################################################### - ########## Calculate the accuracy for the whole test set ############# - ###################################################################### - test_accuracy_total = test_accuracy / float(total_batch_test) - print("Testing Accuracy= " + \ - "{:.5f}".format(test_accuracy_total)) diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train.sh b/codes/ipython/3-neural_networks/convolutional-neural-network/code/train.sh deleted file mode 100755 index 4cc8126..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train.sh +++ /dev/null @@ -1,15 +0,0 @@ - -# Run training. -python train_classifier.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_classifier.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_classifier.py deleted file mode 100755 index 758dc33..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_classifier.py +++ /dev/null @@ -1,245 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -from net_structure import net -from input_function import input -import os -import train_evaluation - -###################################### -######### Necessary Flags ############ -###################################### - -tf.app.flags.DEFINE_string( - 'train_dir', os.path.dirname(os.path.abspath(__file__)) + '/train_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_dir', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('max_num_checkpoint', 10, - 'Maximum number of checkpoints that TensorFlow will keep.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('num_epochs', 1, - 'Number of epochs for training.') - -########################################## -######## Learning rate flags ############# -########################################## -tf.app.flags.DEFINE_float('initial_learning_rate', 0.001, 'Initial learning rate.') - -tf.app.flags.DEFINE_float( - 'learning_rate_decay_factor', 0.95, 'Learning rate decay factor.') - -tf.app.flags.DEFINE_float( - 'num_epochs_per_decay', 1, 'Number of epoch pass to decay learning rate.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('fine_tuning', False, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('online_test', True, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.train_dir): - raise ValueError('You must assign absolute path for --train_dir') - -if not os.path.isabs(FLAGS.checkpoint_dir): - raise ValueError('You must assign absolute path for --checkpoint_dir') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=False, one_hot=False) - -# The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = data.train.images.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -height = dimensionality_train[1] -width = dimensionality_train[2] -num_channels = dimensionality_train[3] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - # learning rate policy - decay_steps = int(num_train_samples / FLAGS.batch_size * - FLAGS.num_epochs_per_decay) - learning_rate = tf.train.exponential_decay(FLAGS.initial_learning_rate, - global_step, - decay_steps, - FLAGS.learning_rate_decay_factor, - staircase=True, - name='exponential_decay_learning_rate') - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, height, width, num_channels]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + Loss + Accuracy ############## - ################################################## - - # MODEL - arg_scope = net.net_arg_scope(weight_decay=0.0005, is_training=FLAGS.is_training) - with tf.contrib.framework.arg_scope(arg_scope): - logits, end_points = net.net_architecture(image_place, num_classes=FLAGS.num_classes, - dropout_keep_prob=dropout_param, - is_training=FLAGS.is_training) - - # Define loss - with tf.name_scope('loss'): - loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=label_place)) - - # Accuracy - with tf.name_scope('accuracy'): - # Evaluate the model - correct_pred = tf.equal(tf.argmax(logits, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32)) - - ############################################# - ########### training operation ############## - ############################################# - - # Define optimizer by its default values - optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) - - # 'train_op' is a operation that is run for gradient update on parameters. - # Each execution of 'train_op' is a training step. - # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow - # update the 'global_step' and increment it by one! - - # gradient update. - with tf.name_scope('train'): - grads_and_vars = optimizer.compute_gradients(loss) - train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(data.train.images.shape[0], size=(3,)) - tf.summary.image('images', data.train.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - # Histogram and scalar summaries sammaries - # sparsity: This summary is the fraction of zero activation for the output of each layer! - # activations: This summary is the histogram of activation for the output of each layer! - # WARNING: tf.summary.histogram can be very time consuming so it will be calculated per epoch! - for end_point in end_points: - x = end_points[end_point] - tf.summary.scalar('sparsity/' + end_point, - tf.nn.zero_fraction(x), collections=['train', 'test']) - tf.summary.histogram('activations/' + end_point, x, collections=['per_epoch_train']) - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss, collections=['train', 'test']) - tf.summary.scalar("accuracy", accuracy, collections=['train', 'test']) - tf.summary.scalar("global_step", global_step, collections=['train']) - tf.summary.scalar("learning_rate", learning_rate, collections=['train']) - - # Merge all summaries together. - summary_train_op = tf.summary.merge_all('train') - summary_test_op = tf.summary.merge_all('test') - summary_epoch_train_op = tf.summary.merge_all('per_epoch_train') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - tensors_key = ['cost', 'accuracy', 'train_op', 'global_step', 'image_place', 'label_place', 'dropout_param', - 'summary_train_op', 'summary_test_op', 'summary_epoch_train_op'] - tensors = [loss, accuracy, train_op, global_step, image_place, label_place, dropout_param, summary_train_op, - summary_test_op, summary_epoch_train_op] - tensors_dictionary = dict(zip(tensors_key, tensors)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - # Run the saver. - # 'max_to_keep' flag determines the maximum number of models that the tensorflow save and keep. default by TensorFlow = 5. - saver = tf.train.Saver(max_to_keep=FLAGS.max_num_checkpoint) - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################### - ############ Training / Evaluation ############### - ################################################### - train_evaluation.train(sess=sess, saver=saver, tensors=tensors_dictionary, data=data, - train_dir=FLAGS.train_dir, - finetuning=FLAGS.fine_tuning, online_test=FLAGS.online_test, - num_epochs=FLAGS.num_epochs, checkpoint_dir=FLAGS.checkpoint_dir, - batch_size=FLAGS.batch_size) - - # Test in the end of experiment. - train_evaluation.evaluation(sess=sess, saver=saver, tensors=tensors_dictionary, data=data, - checkpoint_dir=FLAGS.checkpoint_dir) diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_evaluation.py b/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_evaluation.py deleted file mode 100644 index afb1252..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/code/train_evaluation.py +++ /dev/null @@ -1,187 +0,0 @@ -from __future__ import print_function -import tensorflow as tf -import numpy as np -from auxiliary import progress_bar -import os -import sys - - -def train(**keywords): - """ - This function run the session whether in training or evaluation mode. - NOTE: **keywords is defined in order to make the code easily changable. - WARNING: All the arguments for the **keywords must be defined when calling this function. - **keywords: - :param sess: The default session. - :param saver: The saver operator to save and load the model weights. - :param tensors: The tensors dictionary defined by the graph. - :param data: The data structure. - :param train_dir: The training dir which is a reference for saving the logs and model checkpoints. - :param finetuning: If fine tuning should be done or random initialization is needed. - :param num_epochs: Number of epochs for training. - :param online_test: If the testing is done while training. - :param checkpoint_dir: The directory of the checkpoints. - :param batch_size: The training batch size. - - :return: - Run the session. - """ - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - ################################################################### - ########## Defining the summary writers for train/test ########### - ################################################################### - - train_summary_dir = os.path.join(keywords['train_dir'], "summaries", "train") - train_summary_writer = tf.summary.FileWriter(train_summary_dir) - train_summary_writer.add_graph(keywords['sess'].graph) - - test_summary_dir = os.path.join(keywords['train_dir'], "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(keywords['sess'].graph) - - # If fie-tuning flag in 'True' the model will be restored. - if keywords['finetuning']: - keywords['saver'].restore(keywords['sess'], os.path.join(keywords['checkpoint_dir'], checkpoint_prefix)) - print("Model restored for fine-tuning...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - for epoch in range(keywords['num_epochs']): - total_batch_training = int(keywords['data'].train.images.shape[0] / keywords['batch_size']) - - # go through the batches - for batch_num in range(total_batch_training): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * keywords['batch_size'] - end_idx = (batch_num + 1) * keywords['batch_size'] - - # Fit training using batch data - train_batch_data, train_batch_label = keywords['data'].train.images[start_idx:end_idx], keywords[ - 'data'].train.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run optimization op (backprop) and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - batch_loss, _, train_summaries, training_step = keywords['sess'].run( - [keywords['tensors']['cost'], keywords['tensors']['train_op'], keywords['tensors']['summary_train_op'], - keywords['tensors']['global_step']], - feed_dict={keywords['tensors']['image_place']: train_batch_data, - keywords['tensors']['label_place']: train_batch_label, - keywords['tensors']['dropout_param']: 0.5}) - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - train_summary_writer.add_summary(train_summaries, global_step=training_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - progress = float(batch_num + 1) / total_batch_training - progress_bar.print_progress(progress, epoch_num=epoch + 1, loss=batch_loss) - - # ################################################################ - # ############ Summaries per epoch of training ################### - # ################################################################ - summary_epoch_train_op = keywords['tensors']['summary_epoch_train_op'] - train_epoch_summaries = keywords['sess'].run(summary_epoch_train_op, - feed_dict={keywords['tensors']['image_place']: train_batch_data, - keywords['tensors']['label_place']: train_batch_label, - keywords['tensors']['dropout_param']: 1.0}) - - # Put the summaries to the train summary writer. - train_summary_writer.add_summary(train_epoch_summaries, global_step=training_step) - - ##################################################### - ########## Evaluation on the test data ############# - ##################################################### - - if keywords['online_test']: - # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation - # may lead to memory error. In presense of large testing samples, batch evaluation on testing is - # recommended as in the training phase. - test_accuracy_epoch, test_summaries = keywords['sess'].run( - [keywords['tensors']['accuracy'], keywords['tensors']['summary_test_op']], - feed_dict={keywords['tensors']['image_place']: keywords['data'].test.images, - keywords['tensors'][ - 'label_place']: keywords['data'].test.labels, - keywords['tensors'][ - 'dropout_param']: 1.}) - print("Epoch " + str(epoch + 1) + ", Testing Accuracy= " + \ - "{:.5f}".format(test_accuracy_epoch)) - - ########################################################### - ########## Write the summaries for test phase ############# - ########################################################### - - # Returning the value of global_step if necessary - current_step = tf.train.global_step(keywords['sess'], keywords['tensors']['global_step']) - - # Add the couter of global step for proper scaling between train and test summuries. - test_summary_writer.add_summary(test_summaries, global_step=current_step) - - ########################################################### - ############ Saving the model checkpoint ################## - ########################################################### - - # # The model will be saved when the training is done. - - # Create the path for saving the checkpoints. - if not os.path.exists(keywords['checkpoint_dir']): - os.makedirs(keywords['checkpoint_dir']) - - # save the model - save_path = keywords['saver'].save(keywords['sess'], os.path.join(keywords['checkpoint_dir'], checkpoint_prefix)) - print("Model saved in file: %s" % save_path) - - - ############################################################################ - ########## Run the session for pur evaluation on the test data ############# - ############################################################################ - - -def evaluation(**keywords): - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Get the input arguments - saver = keywords['saver'] - sess = keywords['sess'] - checkpoint_dir = keywords['checkpoint_dir'] - data = keywords['data'] - accuracy_tensor = keywords['tensors']['accuracy'] - image_place = keywords['tensors']['image_place'] - label_place = keywords['tensors']['label_place'] - dropout_param = keywords['tensors']['dropout_param'] - - - # Restoring the saved weights. - saver.restore(sess, os.path.join(checkpoint_dir, checkpoint_prefix)) - print("Model restored...") - - test_set = data.test.images - test_label = data.test.labels - # Evaluation of the model - test_accuracy = 100 * keywords['sess'].run(accuracy_tensor, feed_dict={ - image_place: test_set, - label_place: test_label, - dropout_param: 1.}) - - print("Final Test Accuracy is %% %.2f" % test_accuracy) diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst b/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst deleted file mode 100644 index e6156ad..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst +++ /dev/null @@ -1,103 +0,0 @@ -============================== -Convolutional Neural Network -============================== - -This is the code repository for the blog post `Train a Convolutional Neural Network as a Classifier`__. Please refer to this `wiki page`__ for more details. - -.. _cnn_classifier_post: http://machinelearninguru.com/deep_learning/tensorflow/neural_networks/cnn_classifier/cnn_classifier.html -__ cnn_classifier_post_ - -.. _cnn_classifier_wiki: https://github.com/astorfi/TensorFlow-World/wiki/Convolutional-Neural-Networks -__ cnn_classifier_wiki_ - - - - - - --------- -Training --------- - -**Train:** - -The training can be run using the **train.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./train.sh - -The bash script is as below: - - -.. code-block:: bash - - python train_classifier.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - -**helper:** - -In order to realize that what are the parameters as input running the following command is recommended: - -.. code-block:: bash - - python train_classifier.py --help - - -In which `train_classifier.py` is the main file for running the training. The result of the above command will be as below: - -.. code-block:: bash - - --train_dir TRAIN_DIR - Directory where event logs are written to. - --checkpoint_dir CHECKPOINT_DIR - Directory where checkpoints are written to. - --max_num_checkpoint MAX_NUM_CHECKPOINT - Maximum number of checkpoints that TensorFlow will - keep. - --num_classes NUM_CLASSES - Number of model clones to deploy. - --batch_size BATCH_SIZE - Number of model clones to deploy. - --num_epochs NUM_EPOCHS - Number of epochs for training. - --initial_learning_rate INITIAL_LEARNING_RATE - Initial learning rate. - --learning_rate_decay_factor LEARNING_RATE_DECAY_FACTOR - Learning rate decay factor. - --num_epochs_per_decay NUM_EPOCHS_PER_DECAY - Number of epoch pass to decay learning rate. - --is_training [IS_TRAINING] - Training/Testing. - --fine_tuning [FINE_TUNING] - Fine tuning is desired or not?. - --online_test [ONLINE_TEST] - Fine tuning is desired or not?. - --allow_soft_placement [ALLOW_SOFT_PLACEMENT] - Automatically put the variables on CPU if there is no - GPU support. - --log_device_placement [LOG_DEVICE_PLACEMENT] - Demonstrate which variables are on what device. - - ------------ -Evaluation ------------ - -The evaluation will be run using the **evaluation.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./evaluation.sh - - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst~ b/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst~ deleted file mode 100644 index da480dd..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/readme.rst~ +++ /dev/null @@ -1,103 +0,0 @@ -============================== -Convolutional Neural Network -============================== - -This is the code repository for the blog post `Train a Convolutional Neural Network as a Classifier`__. Please refer to this `wiki page`__ for more details. - -.. _cnn_classifier_post: http://machinelearninguru.com/deep_learning/tensorflow/neural_networks/cnn_classifier/cnn_classifier.html -__ cnn_classifier_post_ - -.. _cnn_classifier_wiki: https://github.com/astorfi/TensorFlow-World/wiki/Convolutional-Neural-Networks -__ cnn_classifier_wiki_ - - - - - - --------- -Training --------- - -**Train:** - -The traing can be run using the **train.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./train.sh - -The bash script is as below: - - -.. code-block:: bash - - python train_classifier.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - -**helper:** - -In order to realize that what are the parameters as input running the following command is recommended: - -.. code-block:: bash - - python train_classifier.py --help - - -In which `train_classifier.py` is the main file for running the training. The result of the above command will be as below: - -.. code-block:: bash - - --train_dir TRAIN_DIR - Directory where event logs are written to. - --checkpoint_dir CHECKPOINT_DIR - Directory where checkpoints are written to. - --max_num_checkpoint MAX_NUM_CHECKPOINT - Maximum number of checkpoints that TensorFlow will - keep. - --num_classes NUM_CLASSES - Number of model clones to deploy. - --batch_size BATCH_SIZE - Number of model clones to deploy. - --num_epochs NUM_EPOCHS - Number of epochs for training. - --initial_learning_rate INITIAL_LEARNING_RATE - Initial learning rate. - --learning_rate_decay_factor LEARNING_RATE_DECAY_FACTOR - Learning rate decay factor. - --num_epochs_per_decay NUM_EPOCHS_PER_DECAY - Number of epoch pass to decay learning rate. - --is_training [IS_TRAINING] - Training/Testing. - --fine_tuning [FINE_TUNING] - Fine tuning is desired or not?. - --online_test [ONLINE_TEST] - Fine tuning is desired or not?. - --allow_soft_placement [ALLOW_SOFT_PLACEMENT] - Automatically put the variables on CPU if there is no - GPU support. - --log_device_placement [LOG_DEVICE_PLACEMENT] - Demonstrate which variables are on what device. - - ------------ -Evaluation ------------ - -The evaluation will be run using the **evaluation.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./evaluation.sh - - diff --git a/codes/ipython/3-neural_networks/convolutional-neural-network/requirements.txt b/codes/ipython/3-neural_networks/convolutional-neural-network/requirements.txt deleted file mode 100644 index acaa382..0000000 --- a/codes/ipython/3-neural_networks/convolutional-neural-network/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -- TensorFLow 1.0 -- numpy diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/evaluation.sh b/codes/ipython/3-neural_networks/multi-layer-perceptron/code/evaluation.sh deleted file mode 100755 index 232711f..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/evaluation.sh +++ /dev/null @@ -1,6 +0,0 @@ - -# Run training. -python test_classifier.py \ - --batch_size=512 \ - --allow_soft_placement - diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/test_classifier.py b/codes/ipython/3-neural_networks/multi-layer-perceptron/code/test_classifier.py deleted file mode 100644 index 058d727..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/test_classifier.py +++ /dev/null @@ -1,233 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -import os -import sys - -###################################### -######### Necessary Flags ############ -###################################### -tf.app.flags.DEFINE_string( - 'test_dir', os.path.dirname(os.path.abspath(__file__)) + '/test_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_dir', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.checkpoint_dir): - raise ValueError('You must assign absolute path for --checkpoint_dir') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=True) - - -# Dimentionality of train -dimensionality = mnist.train.images.shape - -# Dimensions -num_train_samples = dimensionality[0] -num_features = dimensionality[1] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + loss + accuracy ############## - ################################################## - - # MODEL(MPL with two hidden layer) - - # LAYER-1 - net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1') - - # LAYER-2 - net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2') - - # SOFTMAX - logits_last = tf.contrib.layers.fully_connected(inputs=net, num_outputs=FLAGS.num_classes, scope='fc-3') - - # Define loss - loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits_last, labels=label_place)) - - # Accuracy - # Evaluate the model - pred_classifier = tf.equal(tf.argmax(logits_last, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy = tf.reduce_mean(tf.cast(pred_classifier, tf.float32)) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(mnist.test.images.shape[0], size=(3,)) - tf.summary.image('images', mnist.test.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss, collections=['test']) - tf.summary.scalar("accuracy", accuracy, collections=['test']) - tf.summary.scalar("global_step", global_step, collections=['test']) - - # Merge all summaries together. - summary_test_op = tf.summary.merge_all('test') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - # tensors_key = ['loss', 'accuracy', 'global_step', 'image_place', 'label_place', - # 'summary_test_op'] - # tensors_values = [loss, accuracy, global_step, image_place, label_place, summary_test_op] - # tensors = dict(zip(tensors_key, tensors_values)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - - # The saver op. - saver = tf.train.Saver() - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################################### - ########## Defining the summary writers for test ########### - ################################################################### - - test_summary_dir = os.path.join(FLAGS.test_dir, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoint_dir, checkpoint_prefix)) - print("Model restored...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - total_batch_test = int(mnist.test.images.shape[0] / FLAGS.batch_size) - - # go through the batches - test_accuracy = 0 - for batch_num in range(total_batch_test): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - test_batch_data, test_batch_label = mnist.test.images[start_idx:end_idx], mnist.test.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run session and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - - test_batch_accuracy, batch_loss, test_summaries, test_step = sess.run( - [accuracy, loss, summary_test_op, - global_step], - feed_dict={image_place: test_batch_data, - label_place: test_batch_label}) - test_accuracy += test_batch_accuracy - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - test_summary_writer.add_summary(test_summaries, global_step=test_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - print("Batch " + str(batch_num + 1) + ", Testing Loss= " + \ - "{:.5f}".format(test_batch_accuracy)) - - - ###################################################################### - ########## Calculate the accuracy for the whole test set ############# - ###################################################################### - test_accuracy_total = test_accuracy / float(total_batch_test) - print("Total Test Accuracy= " + \ - "{:.5f}".format(test_accuracy_total)) diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train.sh b/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train.sh deleted file mode 100755 index d5fdb4c..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train.sh +++ /dev/null @@ -1,15 +0,0 @@ - -# Run training. -python train_mlp.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb b/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb deleted file mode 100644 index ad01223..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb +++ /dev/null @@ -1,357 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from __future__ import print_function\n", - "from tensorflow.examples.tutorials.mnist import input_data\n", - "import tensorflow as tf\n", - "import numpy as np\n", - "import os" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "######################################\n", - "######### Necessary Flags ############\n", - "######################################\n", - "\n", - "num_classes = 10\n", - "batch_size = 128\n", - "num_epochs = 10" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "##########################################\n", - "######## Learning rate flags #############\n", - "##########################################\n", - "initial_learning_rate = 0.001\n", - "learning_rate_decay_factor = 0.95\n", - "num_epochs_per_decay = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#########################################\n", - "########## status flags #################\n", - "#########################################\n", - "is_training = False\n", - "fine_tuning = False\n", - "online_test = True\n", - "allow_soft_placement = True\n", - "log_device_placement = False" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", - "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" - ] - } - ], - "source": [ - "##########################################\n", - "####### Load and Organize Data ###########\n", - "##########################################\n", - "'''\n", - "In this part the input must be prepared.\n", - "\n", - " 1 - The MNIST data will be downloaded.\n", - " 2 - The images and labels for both training and testing will be extracted.\n", - " 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs\n", - " to be fed to the CNN architecture. So it needs to be reshaped.\n", - "\n", - "'''\n", - "\n", - "# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist)\n", - "# It checks and download MNIST if it's not already downloaded then extract it.\n", - "# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images.\n", - "mnist = input_data.read_data_sets(\"MNIST_data/\", reshape=True, one_hot=True)\n", - "train_data = mnist.train.images\n", - "train_label = mnist.train.labels\n", - "test_data = mnist.test.images\n", - "test_label = mnist.test.labels\n", - "\n", - "# # The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics.\n", - "# data = input.provide_data(mnist)\n", - "\n", - "# Dimentionality of train\n", - "dimensionality_train = train_data.shape\n", - "\n", - "# Dimensions\n", - "num_train_samples = dimensionality_train[0]\n", - "num_features = dimensionality_train[1]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch #1, Train Loss=0.248\n", - "Test Accuracy= 0.8565\n", - "Epoch #2, Train Loss=0.242\n", - "Test Accuracy= 0.8610\n", - "Epoch #3, Train Loss=0.240\n", - "Test Accuracy= 0.8676\n", - "Epoch #4, Train Loss=0.236\n", - "Test Accuracy= 0.8737\n", - "Epoch #5, Train Loss=0.235\n", - "Test Accuracy= 0.8740\n", - "Epoch #6, Train Loss=0.234\n", - "Test Accuracy= 0.8753\n", - "Epoch #7, Train Loss=0.234\n", - "Test Accuracy= 0.8756\n", - "Epoch #8, Train Loss=0.244\n", - "Test Accuracy= 0.8766\n", - "Epoch #9, Train Loss=0.234\n", - "Test Accuracy= 0.8765\n", - "Epoch #10, Train Loss=0.236\n", - "Test Accuracy= 0.8786\n", - "Final Test Accuracy is 0.88\n" - ] - } - ], - "source": [ - "#######################################\n", - "########## Defining Graph ############\n", - "#######################################\n", - "\n", - "graph = tf.Graph()\n", - "with graph.as_default():\n", - " ###################################\n", - " ########### Parameters ############\n", - " ###################################\n", - "\n", - " # global step\n", - " global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", - "\n", - " # learning rate policy\n", - " decay_steps = int(num_train_samples / batch_size *\n", - " num_epochs_per_decay)\n", - " learning_rate = tf.train.exponential_decay(initial_learning_rate,\n", - " global_step,\n", - " decay_steps,\n", - " learning_rate_decay_factor,\n", - " staircase=True,\n", - " name='exponential_decay_learning_rate')\n", - "\n", - " ###############################################\n", - " ########### Defining place holders ############\n", - " ###############################################\n", - " image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image')\n", - " label_place = tf.placeholder(tf.float32, shape=([None, num_classes]), name='gt')\n", - " dropout_param = tf.placeholder(tf.float32)\n", - "\n", - " ##################################################\n", - " ########### Model + Loss + Accuracy ##############\n", - " ##################################################\n", - "\n", - " # MODEL(MPL with two hidden layer)\n", - "\n", - " # LAYER-1\n", - " net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1')\n", - "\n", - " # LAYER-2\n", - " net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2')\n", - "\n", - " # SOFTMAX\n", - " logits_pre_softmax = tf.contrib.layers.fully_connected(inputs=net, num_outputs=num_classes, scope='fc-3')\n", - "\n", - " # Define loss\n", - " softmax_loss = tf.reduce_mean(\n", - " tf.nn.softmax_cross_entropy_with_logits(logits=logits_pre_softmax, labels=label_place))\n", - "\n", - " # Accuracy\n", - " accuracy = tf.reduce_mean(\n", - " tf.cast(tf.equal(tf.argmax(logits_pre_softmax, 1), tf.argmax(label_place, 1)), tf.float32))\n", - "\n", - " #############################################\n", - " ########### training operation ##############\n", - " #############################################\n", - "\n", - " # Define optimizer by its default values\n", - " optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", - "\n", - " # 'train_op' is a operation that is run for gradient update on parameters.\n", - " # Each execution of 'train_op' is a training step.\n", - " # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow\n", - " # update the 'global_step' and increment it by one!\n", - "\n", - " # gradient update.\n", - " with tf.name_scope('train_scope'):\n", - " grads = optimizer.compute_gradients(softmax_loss)\n", - " train_op = optimizer.apply_gradients(grads, global_step=global_step)\n", - "\n", - " ###############################################\n", - " ############ Define Sammaries #################\n", - " ###############################################\n", - "\n", - " # Summaries for loss and accuracy\n", - " tf.summary.scalar(\"loss\", softmax_loss, collections=['train', 'test'])\n", - " tf.summary.scalar(\"accuracy\", accuracy, collections=['train', 'test'])\n", - " tf.summary.scalar(\"global_step\", global_step, collections=['train'])\n", - " tf.summary.scalar(\"learning_rate\", learning_rate, collections=['train'])\n", - "\n", - " # Merge all summaries together.\n", - " summary_train_op = tf.summary.merge_all('train')\n", - " summary_test_op = tf.summary.merge_all('test')\n", - "\n", - " ############################################\n", - " ############ Run the Session ###############\n", - " ############################################\n", - " session_conf = tf.ConfigProto(\n", - " allow_soft_placement=allow_soft_placement,\n", - " log_device_placement=log_device_placement)\n", - " sess = tf.Session(graph=graph, config=session_conf)\n", - "\n", - " with sess.as_default():\n", - "\n", - " # Initialize all variables\n", - " sess.run(tf.global_variables_initializer())\n", - "\n", - " ###################################################################\n", - " ########## Run the training and loop over the batches #############\n", - " ###################################################################\n", - " for epoch in range(num_epochs):\n", - " total_batch_training = int(train_data.shape[0] / batch_size)\n", - "\n", - " # go through the batches\n", - " for batch_num in range(total_batch_training):\n", - " #################################################\n", - " ########## Get the training batches #############\n", - " #################################################\n", - "\n", - " start_idx = batch_num * batch_size\n", - " end_idx = (batch_num + 1) * batch_size\n", - "\n", - " # Fit training using batch data\n", - " train_batch_data, train_batch_label = train_data[start_idx:end_idx], train_label[\n", - " start_idx:end_idx]\n", - "\n", - " ########################################\n", - " ########## Run the session #############\n", - " ########################################\n", - "\n", - " # Run optimization op (backprop) and Calculate batch loss and accuracy\n", - " # When the tensor tensors['global_step'] is evaluated, it will be incremented by one.\n", - " batch_loss, _, training_step = sess.run(\n", - " [softmax_loss, train_op, global_step],\n", - " feed_dict={image_place: train_batch_data,\n", - " label_place: train_batch_label,\n", - " dropout_param: 0.5})\n", - "\n", - "\n", - " #################################################\n", - " ########## Plot the progressive bar #############\n", - " #################################################\n", - "\n", - " print(\"Epoch #\" + str(epoch + 1) + \", Train Loss=\" + \\\n", - " \"{:.3f}\".format(batch_loss))\n", - "\n", - " #####################################################\n", - " ########## Evaluation on the test data #############\n", - " #####################################################\n", - "\n", - " if online_test:\n", - " # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation\n", - " # may lead to memory error. In presense of large testing samples, batch evaluation on testing is\n", - " # recommended as in the training phase.\n", - " test_accuracy_epoch, test_summaries = sess.run(\n", - " [accuracy, summary_test_op],\n", - " feed_dict={image_place: test_data,\n", - " label_place: test_label,\n", - " dropout_param: 1.})\n", - " print(\"Test Accuracy= \" + \\\n", - " \"{:.4f}\".format(test_accuracy_epoch))\n", - "\n", - " ###########################################################\n", - " ########## Write the summaries for test phase #############\n", - " ###########################################################\n", - "\n", - " # Returning the value of global_step if necessary\n", - " current_step = tf.train.global_step(sess, global_step)\n", - "\n", - "\n", - " # Evaluation of the model\n", - " total_test_accuracy = sess.run(accuracy, feed_dict={\n", - " image_place: test_data,\n", - " label_place: test_label,\n", - " dropout_param: 1.})\n", - "\n", - " print(\"Final Test Accuracy is %.2f\" % total_test_accuracy)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.py b/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.py deleted file mode 100755 index 21da176..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/code/train_mlp.py +++ /dev/null @@ -1,336 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -import os - -###################################### -######### Necessary Flags ############ -###################################### - -tf.app.flags.DEFINE_string( - 'train_root', os.path.dirname(os.path.abspath(__file__)) + '/train_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_root', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('max_num_checkpoint', 10, - 'Maximum number of checkpoints that TensorFlow will keep.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 7), - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('num_epochs', 5, - 'Number of epochs for training.') - -########################################## -######## Learning rate flags ############# -########################################## -tf.app.flags.DEFINE_float('initial_learning_rate', 0.001, 'Initial learning rate.') - -tf.app.flags.DEFINE_float( - 'learning_rate_decay_factor', 0.95, 'Learning rate decay factor.') - -tf.app.flags.DEFINE_float( - 'num_epochs_per_decay', 1, 'Number of epoch pass to decay learning rate.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('fine_tuning', False, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('online_test', True, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.train_root): - raise ValueError('You must assign absolute path for --train_root') - -if not os.path.isabs(FLAGS.checkpoint_root): - raise ValueError('You must assign absolute path for --checkpoint_root') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=True) -train_data = mnist.train.images -train_label = mnist.train.labels -test_data = mnist.test.images -test_label = mnist.test.labels - -# # The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -# data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = train_data.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -num_features = dimensionality_train[1] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - # learning rate policy - decay_steps = int(num_train_samples / FLAGS.batch_size * - FLAGS.num_epochs_per_decay) - learning_rate = tf.train.exponential_decay(FLAGS.initial_learning_rate, - global_step, - decay_steps, - FLAGS.learning_rate_decay_factor, - staircase=True, - name='exponential_decay_learning_rate') - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + Loss + Accuracy ############## - ################################################## - - # MODEL(MPL with two hidden layer) - - # LAYER-1 - net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1') - - # LAYER-2 - net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2') - - # SOFTMAX - logits_pre_softmax = tf.contrib.layers.fully_connected(inputs=net, num_outputs=FLAGS.num_classes, scope='fc-3') - - # Define loss - softmax_loss = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(logits=logits_pre_softmax, labels=label_place)) - - # Accuracy - accuracy = tf.reduce_mean( - tf.cast(tf.equal(tf.argmax(logits_pre_softmax, 1), tf.argmax(label_place, 1)), tf.float32)) - - ############################################# - ########### training operation ############## - ############################################# - - # Define optimizer by its default values - optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) - - # 'train_op' is a operation that is run for gradient update on parameters. - # Each execution of 'train_op' is a training step. - # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow - # update the 'global_step' and increment it by one! - - # gradient update. - with tf.name_scope('train_scope'): - grads = optimizer.compute_gradients(softmax_loss) - train_op = optimizer.apply_gradients(grads, global_step=global_step) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Summaries for loss and accuracy - tf.summary.scalar("loss", softmax_loss, collections=['train', 'test']) - tf.summary.scalar("accuracy", accuracy, collections=['train', 'test']) - tf.summary.scalar("global_step", global_step, collections=['train']) - tf.summary.scalar("learning_rate", learning_rate, collections=['train']) - - # Merge all summaries together. - summary_train_op = tf.summary.merge_all('train') - summary_test_op = tf.summary.merge_all('test') - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - # Run the saver. - # 'max_to_keep' flag determines the maximum number of models that the tensorflow save and keep. default by TensorFlow = 5. - saver = tf.train.Saver(max_to_keep=FLAGS.max_num_checkpoint) - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################### - ############ Training / Evaluation ############### - ################################################### - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - ################################################################### - ########## Defining the summary writers for train/test ########### - ################################################################### - - train_summary_dir = os.path.join(FLAGS.train_root, "summaries", "train") - train_summary_writer = tf.summary.FileWriter(train_summary_dir) - train_summary_writer.add_graph(sess.graph) - - test_summary_dir = os.path.join(FLAGS.train_root, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # If fine-tuning flag in 'True' the model will be restored. - if FLAGS.fine_tuning: - saver.restore(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model restored for fine-tuning...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - for epoch in range(FLAGS.num_epochs): - total_batch_training = int(train_data.shape[0] / FLAGS.batch_size) - - # go through the batches - for batch_num in range(total_batch_training): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - train_batch_data, train_batch_label = train_data[start_idx:end_idx], train_label[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run optimization op (backprop) and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - batch_loss, _, train_summaries, training_step = sess.run( - [softmax_loss, train_op, - summary_train_op, - global_step], - feed_dict={image_place: train_batch_data, - label_place: train_batch_label, - dropout_param: 0.5}) - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - train_summary_writer.add_summary(train_summaries, global_step=training_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - print("Epoch #" + str(epoch + 1) + ", Train Loss=" + \ - "{:.3f}".format(batch_loss)) - - ##################################################### - ########## Evaluation on the test data ############# - ##################################################### - - if FLAGS.online_test: - # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation - # may lead to memory error. In presense of large testing samples, batch evaluation on testing is - # recommended as in the training phase. - test_accuracy_epoch, test_summaries = sess.run( - [accuracy, summary_test_op], - feed_dict={image_place: test_data, - label_place: test_label, - dropout_param: 1.}) - print("Test Accuracy= " + \ - "{:.4f}".format(test_accuracy_epoch)) - - ########################################################### - ########## Write the summaries for test phase ############# - ########################################################### - - # Returning the value of global_step if necessary - current_step = tf.train.global_step(sess, global_step) - - # Add the couter of global step for proper scaling between train and test summuries. - test_summary_writer.add_summary(test_summaries, global_step=current_step) - - ########################################################### - ############ Saving the model checkpoint ################## - ########################################################### - - # # The model will be saved when the training is done. - - # Create the path for saving the checkpoints. - if not os.path.exists(FLAGS.checkpoint_root): - os.makedirs(FLAGS.checkpoint_root) - - # save the model - save_path = saver.save(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model saved in file: %s" % save_path) - - ############################################################################ - ########## Run the session for pur evaluation on the test data ############# - ############################################################################ - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model restored...") - - # Evaluation of the model - total_test_accuracy = sess.run(accuracy, feed_dict={ - image_place: test_data, - label_place: test_label, - dropout_param: 1.}) - - print("Final Test Accuracy is %.2f" % total_test_accuracy) diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/readme.rst b/codes/ipython/3-neural_networks/multi-layer-perceptron/readme.rst deleted file mode 100644 index c40907a..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/readme.rst +++ /dev/null @@ -1,97 +0,0 @@ -========================= -Multi Layer Perceptron -========================= - -This code is developed for training a ``Multi Layer Perceptron`` architecture in which the input will be feed-forwarded to the network that contains some hidden layers. - -.. figure:: https://github.com/astorfi/TensorFlow-World/blob/master/docs/_img/3-neural_network/multi-layer-perceptron/neural-network.png - :scale: 50 % - :align: center - - --------- -Training --------- - -**Train:** - -The training can be run using the **train.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./train.sh - -The bash script is as below: - - -.. code-block:: bash - - python train_mlp.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - -**helper:** - -In order to realize that what are the parameters as input running the following command is recommended: - -.. code-block:: bash - - python train_mlp.py --help - - -In which `train_mlp.py` is the main file for running the training. The result of the above command will be as below: - -.. code-block:: bash - - --train_dir TRAIN_DIR - Directory where event logs are written to. - --checkpoint_dir CHECKPOINT_DIR - Directory where checkpoints are written to. - --max_num_checkpoint MAX_NUM_CHECKPOINT - Maximum number of checkpoints that TensorFlow will - keep. - --num_classes NUM_CLASSES - Number of model clones to deploy. - --batch_size BATCH_SIZE - Number of model clones to deploy. - --num_epochs NUM_EPOCHS - Number of epochs for training. - --initial_learning_rate INITIAL_LEARNING_RATE - Initial learning rate. - --learning_rate_decay_factor LEARNING_RATE_DECAY_FACTOR - Learning rate decay factor. - --num_epochs_per_decay NUM_EPOCHS_PER_DECAY - Number of epoch pass to decay learning rate. - --is_training [IS_TRAINING] - Training/Testing. - --fine_tuning [FINE_TUNING] - Fine tuning is desired or not?. - --online_test [ONLINE_TEST] - Fine tuning is desired or not?. - --allow_soft_placement [ALLOW_SOFT_PLACEMENT] - Automatically put the variables on CPU if there is no - GPU support. - --log_device_placement [LOG_DEVICE_PLACEMENT] - Demonstrate which variables are on what device. - - ------------ -Evaluation ------------ - -The evaluation will be run using the **evaluation.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./evaluation.sh - - diff --git a/codes/ipython/3-neural_networks/multi-layer-perceptron/requirements.txt b/codes/ipython/3-neural_networks/multi-layer-perceptron/requirements.txt deleted file mode 100644 index acaa382..0000000 --- a/codes/ipython/3-neural_networks/multi-layer-perceptron/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -- TensorFLow 1.0 -- numpy diff --git a/codes/ipython/3-neural_networks/readme.md b/codes/ipython/3-neural_networks/readme.md deleted file mode 100644 index 68f6f40..0000000 --- a/codes/ipython/3-neural_networks/readme.md +++ /dev/null @@ -1 +0,0 @@ -The tutorial in TensorFlow related to Neural Network architectures. diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/README.rst b/codes/ipython/3-neural_networks/recurrent-neural-networks/README.rst deleted file mode 100644 index e69de29..0000000 diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz b/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz deleted file mode 100644 index 5ace8ea..0000000 Binary files a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz and /dev/null differ diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz b/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz deleted file mode 100644 index a7e1415..0000000 Binary files a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz and /dev/null differ diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz b/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz deleted file mode 100644 index b50e4b6..0000000 Binary files a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz and /dev/null differ diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz b/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz deleted file mode 100644 index 707a576..0000000 Binary files a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz and /dev/null differ diff --git a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/rnn.ipynb b/codes/ipython/3-neural_networks/recurrent-neural-networks/code/rnn.ipynb deleted file mode 100644 index 42400e1..0000000 --- a/codes/ipython/3-neural_networks/recurrent-neural-networks/code/rnn.ipynb +++ /dev/null @@ -1,189 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Untitled0.ipynb", - "version": "0.3.2", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "accelerator": "GPU" - }, - "cells": [ - { - "metadata": { - "id": "UBpbr4JZKYTz", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "# MNIST Digit Classification Using Recurrent Neural Networks" - ] - }, - { - "metadata": { - "id": "CxeZAiQkLMNR", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 704 - }, - "outputId": "77ad5785-4e41-40d0-896e-ed9e6873b4ae" - }, - "cell_type": "code", - "source": [ - "import tensorflow as tf\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import argparse\n", - "\n", - "######################\n", - "# Optimization Flags #\n", - "######################\n", - "\n", - "learning_rate = 0.001 # initial learning rate\n", - "seed = 111\n", - "\n", - "##################\n", - "# Training Flags #\n", - "##################\n", - "batch_size = 128 # Batch size for training\n", - "num_epoch = 10 # Number of training iterations\n", - "\n", - "###############\n", - "# Model Flags #\n", - "###############\n", - "hidden_size = 128 # Number of neurons for RNN hodden layer\n", - "\n", - "# Reset the graph set the random numbers to be the same using \"seed\"\n", - "tf.reset_default_graph()\n", - "tf.set_random_seed(seed)\n", - "np.random.seed(seed)\n", - "\n", - "# Divide 28x28 images to rows of data to feed to RNN as sequantial information\n", - "step_size = 28\n", - "input_size = 28\n", - "output_size = 10\n", - "\n", - "# Input tensors\n", - "X = tf.placeholder(tf.float32, [None, step_size, input_size])\n", - "y = tf.placeholder(tf.int32, [None])\n", - "\n", - "# Rnn\n", - "cell = tf.nn.rnn_cell.BasicRNNCell(num_units=hidden_size)\n", - "output, state = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)\n", - "\n", - "# Forward pass and loss calcualtion\n", - "logits = tf.layers.dense(state, output_size)\n", - "cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n", - "loss = tf.reduce_mean(cross_entropy)\n", - "\n", - "# optimizer\n", - "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)\n", - "\n", - "# Prediction\n", - "prediction = tf.nn.in_top_k(logits, y, 1)\n", - "accuracy = tf.reduce_mean(tf.cast(prediction, tf.float32))\n", - "\n", - "# input data\n", - "from tensorflow.examples.tutorials.mnist import input_data\n", - "mnist = input_data.read_data_sets(\"MNIST_data/\")\n", - "\n", - "# Process MNIST\n", - "X_test = mnist.test.images # X_test shape: [num_test, 28*28]\n", - "X_test = X_test.reshape([-1, step_size, input_size])\n", - "y_test = mnist.test.labels\n", - "\n", - "# initialize the variables\n", - "init = tf.global_variables_initializer()\n", - "\n", - "# Empty list for tracking\n", - "loss_train_list = []\n", - "acc_train_list = []\n", - "\n", - "# train the model\n", - "with tf.Session() as sess:\n", - " sess.run(init)\n", - " n_batches = mnist.train.num_examples // batch_size\n", - " for epoch in range(num_epoch):\n", - " for batch in range(n_batches):\n", - " X_train, y_train = mnist.train.next_batch(batch_size)\n", - " X_train = X_train.reshape([-1, step_size, input_size])\n", - " sess.run(optimizer, feed_dict={X: X_train, y: y_train})\n", - " loss_train, acc_train = sess.run(\n", - " [loss, accuracy], feed_dict={X: X_train, y: y_train})\n", - " loss_train_list.append(loss_train)\n", - " acc_train_list.append(acc_train)\n", - " print('Epoch: {}, Train Loss: {:.3f}, Train Acc: {:.3f}'.format(\n", - " epoch + 1, loss_train, acc_train))\n", - " loss_test, acc_test = sess.run(\n", - " [loss, accuracy], feed_dict={X: X_test, y: y_test})\n", - " print('Test Loss: {:.3f}, Test Acc: {:.3f}'.format(loss_test, acc_test))\n" - ], - "execution_count": 2, - "outputs": [ - { - "output_type": "stream", - "text": [ - "WARNING:tensorflow:From :56: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n", - "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please write your own downloading logic.\n", - "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:252: _internal_retry..wrap..wrapped_fn (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use urllib or similar directly.\n", - "Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.\n", - "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use tf.data to implement this functionality.\n", - "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", - "Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.\n", - "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use tf.data to implement this functionality.\n", - "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", - "Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.\n", - "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", - "Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.\n", - "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n", - "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use alternatives such as official/mnist/dataset.py from tensorflow/models.\n", - "Epoch: 1, Train Loss: 0.279, Train Acc: 0.898\n", - "Epoch: 2, Train Loss: 0.124, Train Acc: 0.969\n", - "Epoch: 3, Train Loss: 0.145, Train Acc: 0.977\n", - "Epoch: 4, Train Loss: 0.231, Train Acc: 0.914\n", - "Epoch: 5, Train Loss: 0.088, Train Acc: 0.961\n", - "Epoch: 6, Train Loss: 0.104, Train Acc: 0.961\n", - "Epoch: 7, Train Loss: 0.174, Train Acc: 0.961\n", - "Epoch: 8, Train Loss: 0.099, Train Acc: 0.961\n", - "Epoch: 9, Train Loss: 0.075, Train Acc: 0.961\n", - "Epoch: 10, Train Loss: 0.081, Train Acc: 0.969\n", - "Test Loss: 0.124, Test Acc: 0.965\n" - ], - "name": "stdout" - } - ] - }, - { - "metadata": { - "id": "nkPppIILLN5Z", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - } - ] -} \ No newline at end of file diff --git a/codes/ipython/advanced/custom_training.ipynb b/codes/ipython/advanced/custom_training.ipynb new file mode 100644 index 0000000..0a3ff80 --- /dev/null +++ b/codes/ipython/advanced/custom_training.ipynb @@ -0,0 +1,280 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "custom_training.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "zkYRcDwhl1UW" + }, + "source": [ + "import tensorflow as tf\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "CZqKCk9pl1rx", + "outputId": "0cf1105b-c501-4298-e313-7caaebd18f60", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Load MNIST data\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()\n", + "# Preprocessing\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0\n", + "\n", + "# Add one domention to make 3D images\n", + "x_train = x_train[...,tf.newaxis]\n", + "x_test = x_test[...,tf.newaxis]\n", + "\n", + "# Track the data type\n", + "dataType, dataShape = x_train.dtype, x_train.shape\n", + "print(f\"Data type and shape x_train: {dataType} {dataShape}\")\n", + "labelType, labelShape = y_train.dtype, y_train.shape\n", + "print(f\"Data type and shape y_train: {labelType} {labelShape}\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Data type and shape x_train: float64 (60000, 28, 28, 1)\n", + "Data type and shape y_train: uint8 (60000,)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6MbJ-XLIl4M2", + "outputId": "e9ae43c7-0d8d-43c6-9b48-76502bfc07f0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for i in range(n_samples_to_show):\n", + " im_list.append(x_train[i])\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im[:,:,0], 'gray')\n", + "plt.show()" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GuuBbYItqTMq" + }, + "source": [ + "batch_size = 32\n", + "# Prepare the training dataset.\n", + "train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))\n", + "train_dataset = train_dataset.shuffle(buffer_size=1024).batch(batch_size)\n", + "\n", + "# Prepare the validation dataset.\n", + "test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test))\n", + "test_dataset = test_dataset.batch(batch_size)" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jbj9lFh1l4iL" + }, + "source": [ + "# Model building\n", + "NUM_CLASSES = 10\n", + "model = tf.keras.Sequential([\n", + " tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)),\n", + " tf.keras.layers.MaxPooling2D((2, 2)),\n", + " tf.keras.layers.Conv2D(32, (3, 3), activation='relu'),\n", + " tf.keras.layers.Flatten(),\n", + " tf.keras.layers.Dense(32, activation='relu'),\n", + " tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')]\n", + " )" + ], + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "PldDIuQvl7iB" + }, + "source": [ + "# Defining loss function\n", + "loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)\n", + "accuracy_metric = tf.keras.metrics.Accuracy()\n", + "\n", + "# Calculate loss\n", + "def loss_fn(gt_label, pred):\n", + " # training argument define the beehaviour of layers with respect\n", + " # to whether we are training the model or not. It is important for layers\n", + " # such as BatchNorm and Dropout.\n", + " return loss_object(y_true=gt_label, y_pred=pred)\n", + "\n", + "def accuracy_fn(gt_label, output):\n", + " # calculate the accuracy by turning output into labels with argmax\n", + " pred = tf.argmax(output, axis=1, output_type=tf.int32)\n", + " return accuracy_metric(pred, gt_label)\n" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "T1a1hEY6m0Ji" + }, + "source": [ + "# Define the optimizer\n", + "optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "k_2OZcLjnAhC", + "outputId": "3a6a00c8-7acf-426f-b4c6-6dda64e5a3df", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "NUM_EPOCHS = 5\n", + "EPOCH_PER_DISPLAY = 1\n", + "total_loss = []\n", + "for epoch in range(NUM_EPOCHS):\n", + "\n", + " running_loss = []\n", + " running_accuracy = []\n", + "\n", + " # Training\n", + " for input, target in train_dataset:\n", + "\n", + " # Calculate and track graduents\n", + " with tf.GradientTape() as tape:\n", + "\n", + " # Calculate model output and loss\n", + " output = model(input, training=True)\n", + " loss_ = loss_fn(target, output)\n", + " accuracy_ = accuracy_fn(target, output)\n", + " \n", + " # Tape gradients\n", + " grads = tape.gradient(loss_, model.trainable_variables)\n", + " \n", + " # Track batch loss and accuracy\n", + " running_loss.append(loss_)\n", + " running_accuracy.append(accuracy_)\n", + "\n", + " # Optimize model based on the gradients\n", + " optimizer.apply_gradients(zip(grads, model.trainable_variables))\n", + " \n", + " # Epoch calculations\n", + " epoch_loss = np.mean(running_loss)\n", + " epoch_accuracy = np.mean(running_accuracy)\n", + " if (epoch + 1) % EPOCH_PER_DISPLAY == 0:\n", + " print(\"Epoch {}: Loss: {:.4f} Accuracy: {:.2f}%\".format(epoch+1, epoch_loss, epoch_accuracy * 100))\n" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1: Loss: 0.1450 Accuracy: 92.06%\n", + "Epoch 2: Loss: 0.0816 Accuracy: 96.28%\n", + "Epoch 3: Loss: 0.0834 Accuracy: 96.90%\n", + "Epoch 4: Loss: 0.0825 Accuracy: 97.21%\n", + "Epoch 5: Loss: 0.0784 Accuracy: 97.41%\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Njorv726pcUW", + "outputId": "1ecef430-86ca-45db-f48d-479fc27372ed", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Calculate the accurcy on the test set\n", + "running_accuracy = []\n", + "for (input, gt_label) in test_dataset:\n", + " output = model(input, training=False)\n", + " accuracy_ = accuracy_fn(gt_label, output)\n", + " running_accuracy.append(accuracy_)\n", + "\n", + "print(\"Test accuracy: {:.3%}\".format(np.mean(running_accuracy)))\n" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Test accuracy: 97.509%\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/advanced/dataset_generator.ipynb b/codes/ipython/advanced/dataset_generator.ipynb new file mode 100644 index 0000000..0a0ed0a --- /dev/null +++ b/codes/ipython/advanced/dataset_generator.ipynb @@ -0,0 +1,350 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "dataset_generator.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "WyBjnWt7FXsl" + }, + "source": [ + "# Dataset generators\n", + "\n", + "In this advanced tutorials I demonstrate an efficient way of using the TensorFlow [tf.Data API](https://www.tensorflow.org/guide/data) to create a dataset. This approach has some important advantages:\n", + "\n", + "1. It provides a lot of flexibility in terms of using Python and packages such as NumPy to create a dataset.\n", + "2. By working with large databases, you can call the samples and shuffling **on-demand** which significantly reduce memory usage. In fact, memory won't be a bottleneck anymore. \n", + "\n", + "This will be done by [Python generator functions](https://www.tensorflow.org/guide/data#consuming_python_generators) to create [tf.data.Dataset](https://www.tensorflow.org/api_docs/python/tf/data/Dataset) objects. The process is as follows:\n", + "\n", + "1. By using a generator function, we dictate the way data must be generated.\n", + "2. By using [tf.data.Dataset.from_generator](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#from_generator) method, we create the TensorFlow dataset." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zkYRcDwhl1UW" + }, + "source": [ + "import tensorflow as tf\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "CZqKCk9pl1rx", + "outputId": "15f0524b-0e36-4eb7-ce60-f6cfc3cd5f86", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Load MNIST data\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()\n", + "# Preprocessing\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0\n", + "\n", + "# Add one domention to make 3D images\n", + "x_train = x_train[...,tf.newaxis]\n", + "x_test = x_test[...,tf.newaxis]\n", + "\n", + "# Track the data type\n", + "dataType, dataShape = x_train.dtype, x_train.shape\n", + "print(f\"Data type and shape x_train: {dataType} {dataShape}\")\n", + "labelType, labelShape = y_train.dtype, y_train.shape\n", + "print(f\"Data type and shape y_train: {labelType} {labelShape}\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Data type and shape x_train: float64 (60000, 28, 28, 1)\n", + "Data type and shape y_train: uint8 (60000,)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3QYe8Uw0HEax" + }, + "source": [ + "## Generators\n", + "\n", + "Here, I define separate generators for train/test. The generator function, pick a random sample from the dataset at each step. This create a shuffled dataset without the need to use the [.shuffle()](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle) method. Sometimes [.shuffle()](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle) method can be very [memory consuming](https://www.tensorflow.org/guide/data_performance#reducing_memory_footprint)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RqDCX9dnCH7Z" + }, + "source": [ + "# Defining generator functions for train/test samples\n", + "TRAIN_LEN = x_train.shape[0]\n", + "def gen_pairs_train():\n", + " for i in range(TRAIN_LEN):\n", + " # Get a random image each time\n", + " idx = np.random.randint(0,TRAIN_LEN)\n", + " yield (x_train[idx], y_train[idx])\n", + "\n", + "\n", + "TEST_LEN = x_test.shape[0]\n", + "def gen_pairs_test():\n", + " for i in range(TEST_LEN):\n", + " # Get a random image each time\n", + " idx = np.random.randint(0,TEST_LEN)\n", + " yield (x_test[idx], y_test[idx])\n", + "\n", + "# Function to test input pipeline\n", + "sample_image, sample_label = next(gen_pairs_train())" + ], + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CSoF5IsxH18W" + }, + "source": [ + "## Dataset creation\n", + "\n", + "Here I just used tf.data.Dataset.from_generator on top of the *gen_pairs_train()* and *gen_pairs_test()* generator functions." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XTC4nXfTCd20" + }, + "source": [ + "batch_size = 32\n", + "# Prepare the training dataset.\n", + "train_dataset = tf.data.Dataset.from_generator(generator=gen_pairs_train, output_types=(tf.float64, tf.uint8))\n", + "train_dataset = train_dataset.batch(batch_size)\n", + "\n", + "# Prepare the validation dataset.\n", + "test_dataset = tf.data.Dataset.from_generator(generator=gen_pairs_test, output_types=(tf.float64, tf.uint8))\n", + "test_dataset = test_dataset.batch(batch_size)" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "6MbJ-XLIl4M2", + "outputId": "09ef4fbb-1b31-4812-f9f7-194002762620", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for i in range(n_samples_to_show):\n", + " img, label = next(gen_pairs_train())\n", + " im_list.append(img)\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im[:,:,0], 'gray')\n", + "plt.show()" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jbj9lFh1l4iL" + }, + "source": [ + "# Model building\n", + "NUM_CLASSES = 10\n", + "model = tf.keras.Sequential([\n", + " tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)),\n", + " tf.keras.layers.MaxPooling2D((2, 2)),\n", + " tf.keras.layers.Conv2D(32, (3, 3), activation='relu'),\n", + " tf.keras.layers.Flatten(),\n", + " tf.keras.layers.Dense(32, activation='relu'),\n", + " tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')]\n", + " )" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "PldDIuQvl7iB" + }, + "source": [ + "# Defining loss function\n", + "loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)\n", + "accuracy_metric = tf.keras.metrics.Accuracy()\n", + "\n", + "# Calculate loss\n", + "def loss_fn(gt_label, pred):\n", + " # training argument define the beehaviour of layers with respect\n", + " # to whether we are training the model or not. It is important for layers\n", + " # such as BatchNorm and Dropout.\n", + " return loss_object(y_true=gt_label, y_pred=pred)\n", + "\n", + "def accuracy_fn(gt_label, output):\n", + " # calculate the accuracy by turning output into labels with argmax\n", + " pred = tf.argmax(output, axis=1, output_type=tf.int32)\n", + " return accuracy_metric(pred, gt_label)\n" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "T1a1hEY6m0Ji" + }, + "source": [ + "# Define the optimizer\n", + "optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)" + ], + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "k_2OZcLjnAhC", + "outputId": "d4e5e3ee-27ac-4d1e-8b31-8b4e1f59521d", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "NUM_EPOCHS = 5\n", + "EPOCH_PER_DISPLAY = 1\n", + "total_loss = []\n", + "for epoch in range(NUM_EPOCHS):\n", + "\n", + " running_loss = []\n", + " running_accuracy = []\n", + "\n", + " # Training\n", + " for input, target in train_dataset:\n", + "\n", + " # Calculate and track graduents\n", + " with tf.GradientTape() as tape:\n", + "\n", + " # Calculate model output and loss\n", + " output = model(input, training=True)\n", + " loss_ = loss_fn(target, output)\n", + " accuracy_ = accuracy_fn(target, output)\n", + " \n", + " # Tape gradients\n", + " grads = tape.gradient(loss_, model.trainable_variables)\n", + " \n", + " # Track batch loss and accuracy\n", + " running_loss.append(loss_)\n", + " running_accuracy.append(accuracy_)\n", + "\n", + " # Optimize model based on the gradients\n", + " optimizer.apply_gradients(zip(grads, model.trainable_variables))\n", + " \n", + " # Epoch calculations\n", + " epoch_loss = np.mean(running_loss)\n", + " epoch_accuracy = np.mean(running_accuracy)\n", + " if (epoch + 1) % EPOCH_PER_DISPLAY == 0:\n", + " print(\"Epoch {}: Loss: {:.4f} Accuracy: {:.2f}%\".format(epoch+1, epoch_loss, epoch_accuracy * 100))\n" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1: Loss: 0.1329 Accuracy: 92.25%\n", + "Epoch 2: Loss: 0.0746 Accuracy: 96.68%\n", + "Epoch 3: Loss: 0.0679 Accuracy: 97.26%\n", + "Epoch 4: Loss: 0.0649 Accuracy: 97.58%\n", + "Epoch 5: Loss: 0.0695 Accuracy: 97.79%\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Njorv726pcUW", + "outputId": "9c0327b2-3d75-45be-916f-084e7e440970", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Calculate the accurcy on the test set\n", + "running_accuracy = []\n", + "for (input, gt_label) in test_dataset:\n", + " output = model(input, training=False)\n", + " accuracy_ = accuracy_fn(gt_label, output)\n", + " running_accuracy.append(accuracy_)\n", + "\n", + "print(\"Test accuracy: {:.3%}\".format(np.mean(running_accuracy)))\n" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Test accuracy: 97.881%\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/advanced/tfrecords.ipynb b/codes/ipython/advanced/tfrecords.ipynb new file mode 100644 index 0000000..6ab10af --- /dev/null +++ b/codes/ipython/advanced/tfrecords.ipynb @@ -0,0 +1,296 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "tfrecords.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "KrQ9AQrUY_xr" + }, + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import numpy as np" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Vj1ySX2vZJkw", + "outputId": "f3032080-d3b8-4d78-bbff-dd63e74c40fc", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Load MNIST data\n", + "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()\n", + "\n", + "# Preprocessing\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0\n", + "\n", + "# Track the data type\n", + "dataType = x_train.dtype\n", + "print(f\"Data type: {dataType}\")\n", + "\n", + "labelType = y_test.dtype\n", + "print(f\"Data type: {labelType}\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Data type: float64\n", + "Data type: uint8\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "L_pwbAUe6WV5", + "outputId": "c16f7f78-0feb-43d1-ada2-c6cef9b6fe4c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for i in range(n_samples_to_show):\n", + " im_list.append(x_train[i])\n", + "\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im, 'gray')\n", + "plt.show()" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "u4eNajG1Zqq4" + }, + "source": [ + "# Convert values to compatible tf.Example types.\n", + "\n", + "def _bytes_feature(value):\n", + " \"\"\"Returns a bytes_list from a string / byte.\"\"\"\n", + " if isinstance(value, type(tf.constant(0))):\n", + " value = value.numpy() # BytesList won't unpack a string from an EagerTensor.\n", + " return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))\n", + "\n", + "\n", + "def _float_feature(value):\n", + " \"\"\"Returns a float_list from a float / double.\"\"\"\n", + " return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))\n", + "\n", + "\n", + "def _int64_feature(value):\n", + " \"\"\"Returns an int64_list from a bool / enum / int / uint.\"\"\"\n", + " return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SvUqD7u9Z9dd" + }, + "source": [ + "# Create the features dictionary.\n", + "def image_example(image, label, dimension):\n", + " feature = {\n", + " 'dimension': _int64_feature(dimension),\n", + " 'label': _int64_feature(label),\n", + " 'image_raw': _bytes_feature(image.tobytes()),\n", + " }\n", + "\n", + " return tf.train.Example(features=tf.train.Features(feature=feature))" + ], + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3Fqt4c0MbAfP" + }, + "source": [ + "record_file = 'mnistTrain.tfrecords'\n", + "n_samples = x_train.shape[0]\n", + "dimension = x_train.shape[1]\n", + "\n", + "with tf.io.TFRecordWriter(record_file) as writer:\n", + " for i in range(n_samples):\n", + " image = x_train[i]\n", + " label = y_train[i]\n", + " tf_example = image_example(image, label, dimension)\n", + " writer.write(tf_example.SerializeToString())\n" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "AWN0qPJ2bcp7" + }, + "source": [ + "# Create the dataset object from tfrecord file(s)\n", + "dataset = tf.data.TFRecordDataset(record_file)" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pCcqlMPYeo_Q" + }, + "source": [ + "# Decoding function\n", + "def parse_record(record):\n", + " name_to_features = {\n", + " 'dimension': tf.io.FixedLenFeature([], tf.int64),\n", + " 'label': tf.io.FixedLenFeature([], tf.int64),\n", + " 'image_raw': tf.io.FixedLenFeature([], tf.string),\n", + " }\n", + " return tf.io.parse_single_example(record, name_to_features)" + ], + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Q5IKddkge1EK" + }, + "source": [ + "def decode_record(record):\n", + " image = tf.io.decode_raw(\n", + " record['image_raw'], out_type=dataType, little_endian=True, fixed_length=None, name=None\n", + " )\n", + " label = record['label']\n", + " dimension = record['dimension']\n", + " image = tf.reshape(image, (dimension, dimension))\n", + "\n", + " return (image, label)" + ], + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ng4TI1vSgCyu", + "outputId": "bd190a82-91b3-49bf-aa1b-43f6ee12c5a0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for record in dataset:\n", + " c+=1\n", + " if c > n_samples_to_show:\n", + " break\n", + " parsed_record = parse_record(record)\n", + " decoded_record = decode_record(parsed_record)\n", + " image, label = decoded_record\n", + " im_list.append(image)\n", + "\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im, 'gray')\n", + "plt.show()" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "t9nJxgZ35PJp" + }, + "source": [ + "" + ], + "execution_count": 10, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/basics_in_machine_learning/dataaugmentation.ipynb b/codes/ipython/basics_in_machine_learning/dataaugmentation.ipynb new file mode 100644 index 0000000..9e1b581 --- /dev/null +++ b/codes/ipython/basics_in_machine_learning/dataaugmentation.ipynb @@ -0,0 +1,373 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "dataaugmentation.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "CKfkSFu7nlVg" + }, + "source": [ + "import tensorflow as tf\n", + "import tensorflow_datasets as tfds # Import TensorFlow datasets\n", + "import urllib\n", + "import tensorflow_datasets as tfds\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "# Necessary for dealing with https urls\n", + "import ssl\n", + "ssl._create_default_https_context = ssl._create_unverified_context" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pznVa656noFn", + "outputId": "7d476148-10a9-4e3f-93d9-595fd74ae3ac", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# We read only the first 10 training samples\n", + "ds, ds_info = tfds.load('colorectal_histology', split='train', shuffle_files=True, with_info=True, download=True)\n", + "assert isinstance(ds, tf.data.Dataset)\n", + "print(ds_info)" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "tfds.core.DatasetInfo(\n", + " name='colorectal_histology',\n", + " version=2.0.0,\n", + " description='Classification of textures in colorectal cancer histology. Each example is a 150 x 150 x 3 RGB image of one of 8 classes.',\n", + " homepage='https://zenodo.org/record/53169#.XGZemKwzbmG',\n", + " features=FeaturesDict({\n", + " 'filename': Text(shape=(), dtype=tf.string),\n", + " 'image': Image(shape=(150, 150, 3), dtype=tf.uint8),\n", + " 'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=8),\n", + " }),\n", + " total_num_examples=5000,\n", + " splits={\n", + " 'train': 5000,\n", + " },\n", + " supervised_keys=('image', 'label'),\n", + " citation=\"\"\"@article{kather2016multi,\n", + " title={Multi-class texture analysis in colorectal cancer histology},\n", + " author={Kather, Jakob Nikolas and Weis, Cleo-Aron and Bianconi, Francesco and Melchers, Susanne M and Schad, Lothar R and Gaiser, Timo and Marx, Alexander and Z{\"o}llner, Frank Gerrit},\n", + " journal={Scientific reports},\n", + " volume={6},\n", + " pages={27988},\n", + " year={2016},\n", + " publisher={Nature Publishing Group}\n", + " }\"\"\",\n", + " redistribution_info=,\n", + ")\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zSZB8zVGq46i", + "outputId": "2048a40f-cd46-49c2-f05b-fa6c0778d7e0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 534 + } + }, + "source": [ + "# Visualizing images\n", + "fig = tfds.show_examples(ds, ds_info)" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6gf9IHenvlTH", + "outputId": "71729faf-6149-4c71-ae16-343fc42d9f59", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Reading all images (remove break point to read all)\n", + "for example in tfds.as_numpy(ds):\n", + " image, label = example['image'], example['label']\n", + " break\n", + "# take one sample from data\n", + "one_sample = ds.take(1)\n", + "one_sample = list(one_sample.as_numpy_iterator())\n", + "image = one_sample[0]['image']\n", + "label = one_sample[0]['label']\n", + "print(image.shape,label.shape)" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(150, 150, 3) ()\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eryIxtFzkW4h" + }, + "source": [ + "# Side by side visualization\n", + "def visualize(im, imAgmented, operation):\n", + " fig = plt.figure()\n", + " plt.subplot(1,2,1)\n", + " plt.title('Original image')\n", + " plt.imshow(im)\n", + " plt.subplot(1,2,2)\n", + " plt.title(operation)\n", + " plt.imshow(imAgmented)" + ], + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "GYaSTeDnkYwl", + "outputId": "19220c13-859e-4017-8abb-2d58f8168999", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 234 + } + }, + "source": [ + "# Adding Gaussian noise to image\n", + "common_type = tf.float32 # Make noise and image of the same type\n", + "gnoise = tf.random.normal(shape=tf.shape(image), mean=0.0, stddev=0.1, dtype=common_type)\n", + "image_type_converted = tf.image.convert_image_dtype(image, dtype=common_type, saturate=False)\n", + "noisy_image = tf.add(image_type_converted, gnoise)\n", + "visualize(image_type_converted, noisy_image, 'noisyimage')" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "WARNING:matplotlib.image:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JC606IVwkads", + "outputId": "0c6245ea-8ec1-440c-c24c-3d2138c24e28", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 216 + } + }, + "source": [ + "# Adjusting brighness\n", + "bright = tf.image.adjust_brightness(image, 0.2)\n", + "visualize(image, bright, 'brightened image')" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zlDk3TPQkb5N", + "outputId": "80a2f96a-7968-4bcf-8bf6-50591271b5e3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 216 + } + }, + "source": [ + "# Flip image\n", + "flipped = tf.image.flip_left_right(image)\n", + "visualize(image, flipped, 'flipped image')" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2qJJkZcBkdSp", + "outputId": "64fa8828-b9f8-425f-83f5-097743c1288a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 216 + } + }, + "source": [ + "adjusted = tf.image.adjust_jpeg_quality(image, jpeg_quality=20)\n", + "visualize(image, adjusted, 'quality adjusted image')" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "FwyCBxoRkev7", + "outputId": "486719c0-12f7-4994-bd56-736b649e2858", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 216 + } + }, + "source": [ + "# Randon cropping of the image (the cropping area is picked at random)\n", + "crop_to_original_ratio = 0.5 # The scale of the cropped area to the original image\n", + "new_size = int(crop_to_original_ratio * image.shape[0])\n", + "cropped = tf.image.random_crop(image, size=[new_size,new_size,3])\n", + "visualize(image, cropped, 'randomly cropped image')" + ], + "execution_count": 21, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5KGcgAu1kgMv", + "outputId": "f48857c9-3957-4221-ad67-b499068e39ab", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 216 + } + }, + "source": [ + "# Center cropping of the image (the cropping area is at the center)\n", + "central_fraction = 0.6 # The scale of the cropped area to the original image\n", + "center_cropped = tf.image.central_crop(image, central_fraction=central_fraction)\n", + "visualize(image, center_cropped, 'centrally cropped image')" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/basics_in_machine_learning/linearregression.ipynb b/codes/ipython/basics_in_machine_learning/linearregression.ipynb new file mode 100644 index 0000000..7f43e4f --- /dev/null +++ b/codes/ipython/basics_in_machine_learning/linearregression.ipynb @@ -0,0 +1,707 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "linearregression.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "x1lvvYoqh_B8", + "outputId": "8c73fe22-6d7f-4e12-ac70-acb4284f613e", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "from __future__ import absolute_import, division, print_function, unicode_literals\n", + "import pathlib\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "from datetime import datetime\n", + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "from tensorflow.keras import layers\n", + "print(tf.__version__)" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2.3.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "q5aSajJaiIaM" + }, + "source": [ + "# Download the daset with keras.utils.get_file\n", + "dataset_path = keras.utils.get_file(\"housing.data\", \"https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data/")" + ], + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "e0DLwCqBASbu", + "outputId": "7ab5c23e-cf36-466d-a850-cb2682584f84", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + } + }, + "source": [ + "column_names = ['CRIM','ZN','INDUS','CHAS','NOX',\n", + " 'RM', 'AGE', 'DIS','RAD','TAX','PTRATION', 'B', 'LSTAT', 'MEDV']\n", + "raw_dataset = pd.read_csv(dataset_path, names=column_names,\n", + " na_values = \"?\", comment='\\t',\n", + " sep=\" \", skipinitialspace=True)\n", + "# Create a dataset instant\n", + "dataset = raw_dataset.copy()\n", + "\n", + "# This function returns last n rows from the object \n", + "# based on position.\n", + "dataset.tail(n=10)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIONBLSTATMEDV
4960.289600.09.6900.5855.39072.92.79866391.019.2396.9021.1419.7
4970.268380.09.6900.5855.79470.62.89276391.019.2396.9014.1018.3
4980.239120.09.6900.5856.01965.32.40916391.019.2396.9012.9221.2
4990.177830.09.6900.5855.56973.52.39996391.019.2395.7715.1017.5
5000.224380.09.6900.5856.02779.72.49826391.019.2396.9014.3316.8
5010.062630.011.9300.5736.59369.12.47861273.021.0391.999.6722.4
5020.045270.011.9300.5736.12076.72.28751273.021.0396.909.0820.6
5030.060760.011.9300.5736.97691.02.16751273.021.0396.905.6423.9
5040.109590.011.9300.5736.79489.32.38891273.021.0393.456.4822.0
5050.047410.011.9300.5736.03080.82.50501273.021.0396.907.8811.9
\n", + "
" + ], + "text/plain": [ + " CRIM ZN INDUS CHAS NOX ... TAX PTRATION B LSTAT MEDV\n", + "496 0.28960 0.0 9.69 0 0.585 ... 391.0 19.2 396.90 21.14 19.7\n", + "497 0.26838 0.0 9.69 0 0.585 ... 391.0 19.2 396.90 14.10 18.3\n", + "498 0.23912 0.0 9.69 0 0.585 ... 391.0 19.2 396.90 12.92 21.2\n", + "499 0.17783 0.0 9.69 0 0.585 ... 391.0 19.2 395.77 15.10 17.5\n", + "500 0.22438 0.0 9.69 0 0.585 ... 391.0 19.2 396.90 14.33 16.8\n", + "501 0.06263 0.0 11.93 0 0.573 ... 273.0 21.0 391.99 9.67 22.4\n", + "502 0.04527 0.0 11.93 0 0.573 ... 273.0 21.0 396.90 9.08 20.6\n", + "503 0.06076 0.0 11.93 0 0.573 ... 273.0 21.0 396.90 5.64 23.9\n", + "504 0.10959 0.0 11.93 0 0.573 ... 273.0 21.0 393.45 6.48 22.0\n", + "505 0.04741 0.0 11.93 0 0.573 ... 273.0 21.0 396.90 7.88 11.9\n", + "\n", + "[10 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oSZGioPsAVk0" + }, + "source": [ + "# Split data into train/test\n", + "# p = training data portion\n", + "p=0.8\n", + "trainDataset = dataset.sample(frac=p,random_state=0)\n", + "testDataset = dataset.drop(trainDataset.index)" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "583E8sDHAW5s", + "outputId": "85e16fda-f36e-4131-ed2d-214894a2d9e1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + } + }, + "source": [ + "# Visual representation of training data\n", + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "# With .pop() command, the associated columns are extracted.\n", + "x = trainDataset['RM']\n", + "y = trainDataset['MEDV']\n", + "ax.scatter(x, y, edgecolors=(0, 0, 0))\n", + "ax.set_xlabel('RM')\n", + "ax.set_ylabel('MEDV')\n", + "plt.show()" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zaWXTRI8AYPe" + }, + "source": [ + "# Pop command return item and drop it from frame.\n", + "# After using trainDataset.pop('RM'), the 'RM' column \n", + "# does not exist in the trainDataset frame anymore!\n", + "trainInput = trainDataset['RM']\n", + "trainTarget = trainDataset['MEDV']\n", + "testInput = testDataset['RM']\n", + "testTarget = testDataset['MEDV']" + ], + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "3g7FwG2kAaBd", + "outputId": "62c854c0-b1e8-4fdc-c171-b1369aba58df", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# We don't specify anything for activation -> no activation is applied (ie. \"linear\" activation: a(x) = x)\n", + "# Check: https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense\n", + "\n", + "def linear_model():\n", + " model = keras.Sequential([\n", + " layers.Dense(1, use_bias=True, input_shape=(1,), name='layer')\n", + " ])\n", + "\n", + " # Using adam optimizer\n", + " optimizer = tf.keras.optimizers.Adam(\n", + " learning_rate=0.01, beta_1=0.9, beta_2=0.99, epsilon=1e-05, amsgrad=False,\n", + " name='Adam')\n", + " \n", + " # Check: https://www.tensorflow.org/api_docs/python/tf/keras/Model\n", + " # loss: String (name of objective function), objective function or tf.keras.losses.Loss instance. See tf.keras.losses.\n", + " # optimizer: String (name of optimizer) or optimizer instance. See tf.keras.optimizers.\n", + " # metrics: List of metrics to be evaluated by the model during training and testing\n", + " model.compile(loss='mse', optimizer=optimizer, metrics=['mae','mse'])\n", + "\n", + " return model\n", + "\n", + "# Create model instant\n", + "model = linear_model()\n", + "\n", + "# Print the model summary\n", + "model.summary()" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "layer (Dense) (None, 1) 2 \n", + "=================================================================\n", + "Total params: 2\n", + "Trainable params: 2\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XxqPOb8lAbhr", + "outputId": "438ece86-4396-4c1b-b169-3bdb0b7486a9", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# params\n", + "n_epochs = 4000\n", + "batch_size = 256\n", + "n_idle_epochs = 100\n", + "n_epochs_log = 200\n", + "n_samples_save = n_epochs_log * trainInput.shape[0]\n", + "print('Checkpoint is saved for each {} samples'.format(n_samples_save))\n", + "\n", + "# A mechanism that stops training if the validation loss is not improving for more than n_idle_epochs.\n", + "#See https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping for details.\n", + "earlyStopping = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=n_idle_epochs, min_delta=0.001)\n", + "\n", + "# Creating a custom callback to print the log after a certain number of epochs\n", + "# Check: https://www.tensorflow.org/api_docs/python/tf/keras/callbacks\n", + "predictions_list = []\n", + "class NEPOCHLogger(tf.keras.callbacks.Callback):\n", + " def __init__(self,per_epoch=100):\n", + " '''\n", + " display: Number of batches to wait before outputting loss\n", + " '''\n", + " self.seen = 0\n", + " self.per_epoch = per_epoch\n", + " \n", + " def on_epoch_end(self, epoch, logs=None):\n", + " if epoch % self.per_epoch == 0:\n", + " print('Epoch {}, loss {:.2f}, val_loss {:.2f}, mae {:.2f}, val_mae {:.2f}, mse {:.2f}, val_mse {:.2f}'\\\n", + " .format(epoch, logs['loss'], logs['val_loss'],logs['mae'], logs['val_mae'],logs['mse'], logs['val_mse']))\n", + " \n", + "# Call the object\n", + "log_display = NEPOCHLogger(per_epoch=n_epochs_log)\n", + "\n", + "# Include the epoch in the file name (uses `str.format`)\n", + "import os\n", + "checkpoint_path = \"training/cp-{epoch:05d}.ckpt\"\n", + "checkpoint_dir = os.path.dirname(checkpoint_path)\n", + "\n", + "# Create a callback that saves the model's weights every 5 epochs\n", + "checkpointCallback = tf.keras.callbacks.ModelCheckpoint(\n", + " filepath=checkpoint_path, \n", + " verbose=1, \n", + " save_weights_only=True,\n", + " save_freq=n_samples_save)\n", + "\n", + "# Save the weights using the `checkpoint_path` format\n", + "model.save_weights(checkpoint_path.format(epoch=0))\n", + "\n", + "# Define the Keras TensorBoard callback.\n", + "logdir=\"logs/fit/\" + datetime.now().strftime(\"%Y%m%d-%H%M%S\")\n", + "tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)\n", + "\n", + "history = model.fit(\n", + " trainInput, trainTarget, batch_size=batch_size,\n", + " epochs=n_epochs, validation_split = 0.1, verbose=0, callbacks=[earlyStopping,log_display,tensorboard_callback,checkpointCallback])" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Checkpoint is saved for each 81000 samples\n", + "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/summary_ops_v2.py:1277: stop (from tensorflow.python.eager.profiler) is deprecated and will be removed after 2020-07-01.\n", + "Instructions for updating:\n", + "use `tf.profiler.experimental.stop` instead.\n", + "WARNING:tensorflow:Callbacks method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0017s vs `on_train_batch_end` time: 0.0120s). Check your callbacks.\n", + "Epoch 0, loss 248.69, val_loss 316.44, mae 13.60, val_mae 14.84, mse 248.69, val_mse 316.44\n", + "Epoch 200, loss 54.26, val_loss 91.20, mae 5.27, val_mae 6.75, mse 54.26, val_mse 91.20\n", + "Epoch 400, loss 53.16, val_loss 90.61, mae 5.19, val_mae 6.68, mse 53.16, val_mse 90.61\n", + "Epoch 600, loss 51.47, val_loss 89.30, mae 5.10, val_mae 6.58, mse 51.47, val_mse 89.30\n", + "Epoch 800, loss 49.86, val_loss 88.29, mae 4.99, val_mae 6.47, mse 49.86, val_mse 88.29\n", + "Epoch 1000, loss 48.52, val_loss 87.20, mae 4.92, val_mae 6.38, mse 48.52, val_mse 87.20\n", + "Epoch 1200, loss 47.36, val_loss 86.52, mae 4.83, val_mae 6.32, mse 47.36, val_mse 86.52\n", + "Epoch 1400, loss 46.40, val_loss 85.98, mae 4.77, val_mae 6.26, mse 46.40, val_mse 85.98\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QlB3GPfZAdcA", + "outputId": "c15c3ee7-6f61-4502-e2c0-b3ee125e337b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 305 + } + }, + "source": [ + "# The fit model returns the history object for each Keras model\n", + "# Let's explore what is inside history\n", + "print('keys:', history.history.keys())\n", + "\n", + "# Returning the desired values for plotting and turn to numpy array\n", + "mae = np.asarray(history.history['mae'])\n", + "val_mae = np.asarray(history.history['val_mae'])\n", + "\n", + "# Creating the data frame\n", + "num_values = (len(mae))\n", + "values = np.zeros((num_values,2), dtype=float)\n", + "values[:,0] = mae\n", + "values[:,1] = val_mae\n", + "\n", + "# Using pandas to frame the data\n", + "steps = pd.RangeIndex(start=0,stop=num_values)\n", + "data = pd.DataFrame(values, steps, columns=[\"training-mae\", \"val-mae\"])\n", + "\n", + "# Plotting\n", + "sns.set(style=\"whitegrid\")\n", + "sns.lineplot(data=data, palette=\"tab10\", linewidth=2.5)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "keys: dict_keys(['loss', 'mae', 'mse', 'val_loss', 'val_mae', 'val_mse'])\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 9 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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CaulpaVF/ec//xm9/bvf/U696aab1FAopJ5++unqxo0bVVVV1QcffFC98cYbVVVVe102EiorK9XLL79cPe2009SdO3eO6lpvv/129be//a2qKIqqqqra0NCgqmrv74FEvD8URVEXLFig7ty5U1VVVd2+fbs6b948NRQKjYpaN27cqB4+fDj6P+/P8yeq7p5qPdrnTFV7f4/G+/17tL+rqnb/nI1UrUkV6I2NjWpZWZkaDAZVVVXVYDColpWVqU1NTQmuTPPmm2+ql156qbp161b17LPPjs5vampS582bp6qq2uuyePP5fOoFF1ygVlVVRd9oo7VWl8ullpWVqS6Xq8v83t4DiXp/KIqifv3rX1c3bdqkqqqqfvrpp+qZZ5456mrtHC6DrW2k6u4pJCMinzNV7f09OlLv3yNr7elzNlK1JtVFomtqaigsLMRgMABgMBgoKCigpqaGnJzeL84ab4qi8Mwzz1BeXk5NTQ3jxo2LLsvJyUFRFFpbW3tdlpWVFdca77//fpYtW8aECbGrjY/WWquqqsjKymLdunV88skn2O12rrnmGqxW61HfA6qqJuT9odPpuO+++7jqqquw2Wy43W4ee+yxXt+viao1YrC1Jbruzp+zyOsYbe/fnj5nI1Vr0rWhj1a33347NpuNSy65JNGl9GjLli1UVlZy8cUXJ7qUfgmFQlRVVTFr1ixefPFFfvGLX/DTn/4Uj8eT6NK6CQaDPProozz00EO8++67PPzww1x77bWjstZkJ5+z3iXVHnpxcTF1dXWEQiEMBgOhUIj6+nqKi4sTWteaNWs4cOAAjzzyCHq9nuLiYg4fPhxd3tzcjF6vJysrq9dl8bRx40b27NnDwoULAaitreXyyy9n+fLlo65W0P7XRqORJUuWADB37lyys7OxWq1HfQ+oqpqQ98f27dupr6+nrKwMgLKyMtLS0rBYLKOu1ojePku91ZbIuo/8nEVex2h6/x7tc3bnnXeOSK1JtYeem5vLzJkzef311wF4/fXXmTlzZkKbW+655x4qKyt58MEHMZvNAMyePRuv18umTZsAePbZZ1m8eHGfy+Lpyiuv5B//+AfvvPMO77zzDkVFRTz++ONcccUVo65W0L5ynnjiiXz44YeA1rOiqamJyZMnH/U9kKj3R1FREbW1tezduxeAPXv20NTUxKRJk0ZdrRG9Pf9gl8VTT58zGH2ftaN9zk466aQRqTXphs/ds2cPN954I+3t7TgcDtasWcMxxxyTkFp2797NkiVLmDx5MlarFYAJEybw4IMPsnnzZlatWoXP52P8+PHcfffd5OXlAfS6bKSUl5fzyCOPMH369FFba1VVFTfffDOtra0YjUauvfZaTj311F7fA4l6f7z66qv84Q9/iI7t/7Of/YzTTz99VNS6evVqNmzYQGNjI9nZ2WRlZfHGG28MurZ41t1Trffdd99RP2fQ+3s0nu/fo/1dO+v8ORuJWpMu0IUQQvQsqZpchBBCHJ0EuhBCpAgJdCGESBES6EIIkSIk0IUQIkVIoAshRIqQQBdCiBQhgS6EECni/wP1utnDaCTm8wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hk4T7d3fAirT", + "outputId": "8137b4d9-4b36-4ba0-e493-e5c8e590f367", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 289 + } + }, + "source": [ + "predictions = model.predict(testInput).flatten()\n", + "a = plt.axes(aspect='equal')\n", + "plt.scatter(predictions, testTarget, edgecolors=(0, 0, 0))\n", + "plt.xlabel('True Values')\n", + "plt.ylabel('Predictions')\n", + "lims = [0, 50]\n", + "plt.xlim(lims)\n", + "plt.ylim(lims)\n", + "_ = plt.plot(lims, lims)" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qZLB8wmLAkSZ", + "outputId": "a4918786-463a-4235-df8d-c520eb27e186", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Get the saved checkpoint files\n", + "checkpoints = []\n", + "for f_name in os.listdir(checkpoint_dir):\n", + " if f_name.startswith('cp-'):\n", + " file_with_no_ext = os.path.splitext(f_name)[0]\n", + " checkpoints.append(file_with_no_ext)\n", + "\n", + "# Return unique list elements\n", + "checkpoints = list(set(checkpoints))\n", + "print('checkpoints:',checkpoints)\n", + "\n", + "# Load all model checkpoints and evaluate for each\n", + "count = 0\n", + "model_improvement_progress = False\n", + "if model_improvement_progress:\n", + " for checkpoint in checkpoints:\n", + " count += 1\n", + "\n", + " # Call model instant\n", + " model = linear_model()\n", + " \n", + " # Restore the weights\n", + " path = os.path.join('training',checkpoint)\n", + " model.load_weights(path)\n", + "\n", + " # Access to layer weights\n", + " layer = model.get_layer('layer')\n", + " w1,w0 = layer.get_weights()\n", + " w1 = float(w1[0])\n", + " w0 = float(w0[0])\n", + " \n", + " # Draw the scatter plot of data\n", + " fig, ax = plt.subplots()\n", + " x = testInput\n", + " y = testTarget\n", + " ax.scatter(x, y, edgecolors=(0, 0, 0))\n", + " ax.set_xlabel('RM')\n", + " ax.set_ylabel('MEDV')\n", + " \n", + " # Plot the line\n", + " y_hat = w1*x + w0\n", + " plt.plot(x, y_hat, '-r')\n" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "checkpoints: ['cp-00000.ckpt']\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/neural_networks/CNNs.ipynb b/codes/ipython/neural_networks/CNNs.ipynb new file mode 100644 index 0000000..427a1e2 --- /dev/null +++ b/codes/ipython/neural_networks/CNNs.ipynb @@ -0,0 +1,231 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "CNNs.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "CKfkSFu7nlVg" + }, + "source": [ + "import tensorflow as tf" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pznVa656noFn", + "outputId": "6d59a2d3-912d-4d6c-ada3-4ec34ac04d0e", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Load MNIST data\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()\n", + "# Preprocessing\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0\n", + "\n", + "# Add one domention to make 3D images\n", + "x_train = x_train[...,tf.newaxis]\n", + "x_test = x_test[...,tf.newaxis]\n", + "\n", + "# Track the data type\n", + "dataType, dataShape = x_train.dtype, x_train.shape\n", + "print(f\"Data type and shape x_train: {dataType} {dataShape}\")\n", + "labelType, labelShape = y_train.dtype, y_train.shape\n", + "print(f\"Data type and shape y_train: {labelType} {labelShape}\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Data type and shape x_train: float64 (60000, 28, 28, 1)\n", + "Data type and shape y_train: uint8 (60000,)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zSZB8zVGq46i", + "outputId": "43d2600e-378c-4c50-c509-c22223df0e5e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for i in range(n_samples_to_show):\n", + " im_list.append(x_train[i])\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im[:,:,0], 'gray')\n", + "plt.show()" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6cjdho1KupbS" + }, + "source": [ + "## Training" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z9X1PzYstWKe", + "outputId": "ab33d448-044e-40c0-ddd7-e925a6c8a2ef", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Model building\n", + "NUM_CLASSES = 10\n", + "model = tf.keras.Sequential([\n", + " tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)),\n", + " tf.keras.layers.MaxPooling2D((2, 2)),\n", + " tf.keras.layers.Conv2D(32, (3, 3), activation='relu'),\n", + " tf.keras.layers.MaxPooling2D((2, 2)),\n", + " tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),\n", + " tf.keras.layers.Flatten(),\n", + " tf.keras.layers.Dense(32, activation='relu'),\n", + " tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')]\n", + " )\n", + "\n", + "# Compiling the model with the high-level keras\n", + "model.compile(optimizer='adam',\n", + " loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),\n", + " metrics=['accuracy'])\n", + "\n", + "# Model training\n", + "model.fit(x_train, y_train, epochs=5)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1/5\n", + "1875/1875 [==============================] - 31s 17ms/step - loss: 0.2135 - accuracy: 0.9336\n", + "Epoch 2/5\n", + "1875/1875 [==============================] - 32s 17ms/step - loss: 0.0631 - accuracy: 0.9805\n", + "Epoch 3/5\n", + "1875/1875 [==============================] - 32s 17ms/step - loss: 0.0470 - accuracy: 0.9857\n", + "Epoch 4/5\n", + "1875/1875 [==============================] - 32s 17ms/step - loss: 0.0365 - accuracy: 0.9888\n", + "Epoch 5/5\n", + "1875/1875 [==============================] - 31s 17ms/step - loss: 0.0294 - accuracy: 0.9908\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oD2sc_rNurqN" + }, + "source": [ + "## Evaluation" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "EfO3wC__tdj5", + "outputId": "ab7b244a-3c81-4a9b-ae82-47c73b7b7d59", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "eval_loss, eval_acc = model.evaluate(x_test, y_test, verbose=1)\n", + "print('Eval accuracy percentage: {:.2f}'.format(eval_acc * 100))\n" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "313/313 [==============================] - 2s 6ms/step - loss: 0.0341 - accuracy: 0.9887\n", + "Eval accuracy percentage: 98.87\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6gf9IHenvlTH" + }, + "source": [ + "" + ], + "execution_count": 5, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/ipython/neural_networks/mlp.ipynb b/codes/ipython/neural_networks/mlp.ipynb new file mode 100644 index 0000000..8e14ece --- /dev/null +++ b/codes/ipython/neural_networks/mlp.ipynb @@ -0,0 +1,215 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "mlp.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "x1lvvYoqh_B8" + }, + "source": [ + "import tensorflow as tf" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "NljIzKkyiBzz", + "outputId": "8e5542ef-854f-4396-a017-2c392702d754", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Load MNIST data\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()\n", + "# Preprocessing\n", + "x_train = x_train / 255.0\n", + "x_test = x_test / 255.0\n", + "# Track the data type\n", + "dataType = x_train.dtype\n", + "print(f\"Data type: {dataType}\")\n", + "labelType = y_test.dtype\n", + "print(f\"Data type: {labelType}\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", + "11493376/11490434 [==============================] - 0s 0us/step\n", + "Data type: float64\n", + "Data type: uint8\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gMeQ7B8hiDPp", + "outputId": "ef12890e-d3d1-43c2-d32c-dfc92133bde1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 268 + } + }, + "source": [ + "im_list = []\n", + "n_samples_to_show = 16\n", + "c = 0\n", + "for i in range(n_samples_to_show):\n", + " im_list.append(x_train[i])\n", + "# Visualization\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import ImageGrid\n", + "fig = plt.figure(figsize=(4., 4.))\n", + "# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html\n", + "grid = ImageGrid(fig, 111, # similar to subplot(111)\n", + " nrows_ncols=(4, 4), # creates 2x2 grid of axes\n", + " axes_pad=0.1, # pad between axes in inch.\n", + " )\n", + "# Show image grid\n", + "for ax, im in zip(grid, im_list):\n", + " # Iterating over the grid returns the Axes.\n", + " ax.imshow(im, 'gray')\n", + "plt.show()" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAAD7CAYAAAChbJLhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9aXBb1333/7nYd4AASRDgvom7SO2yrC22lXiLHTt2kjqrE9dJnbTTtJ22k7Qv8qbTpy/S6fSZTur5x43TeJo8cRzbqRU7khNJlixZu0SKFPcFXECCCwBiJZb7f0HfG9LWLi6ghM8MRgKI5Zx77/eec37bEURRJEuWLHcPitVuQJYsWVaWrOizZLnLyIo+S5a7jKzos2S5y8iKPkuWu4ys6LNkucu4LdELgvCgIAidgiD0CILw90vVqCxZsiwfwq366QVBUAJdwD5gGDgF/Ikoiu1L17wsWbIsNarb+OxWoEcUxT4AQRB+DjwOXFX0giDcCZFAk6Io5l3pD9n+rQnu2v5J3I7oCwHPgufDwLaPvkkQhOeB52/jdzKNwYVPsv1bc9xV/bsStyP6G0IUxReBF+GOuZMuItu/tc2d3r8rcTuGvBGgeMHzog9fy5IlSwZzO6I/BVQLglAuCIIG+ALw5tI0K0uWLMvFLU/vRVFMCoLwHeAdQAm8JIripSVrWZYsWZaF21rTi6K4H9i/RG3JcoOoVCqUSiV6vR61Wo1WqyWRSDA3N0csFiOZTJJIJFa7mVkylGU35GVZeoqKiigoKOCRRx6hsrKSnTt30t7ezqVLlzhw4AD9/f309vaSTCZXu6lZMpA7QvQKhQKlUrnoNaVSSUFBgTwqqtVqVCoVHo+HWCxGWVkZJpOJnJwcANLpNF6vl2AwiMfjIZVKrUZXrolGo0Gv19Pc3ExFRQXr16+nqKgIt9tNPB5HEASCwSC5ubl4PJ47VvQKhQKr1YrVaqW8vJyRkRFGRkaIxWIZed5uBLvdjt1ux+12YzAYEASBmZkZurq6iEQixGKxJfutNS96hUKBWq3GYDAset1kMvHEE09gsVjQarXk5uaSk5PDj370I0ZGRvj2t79NbW0tu3fvJpVKMTc3x6uvvsqFCxf48Y9/zOzs7Cr16OpIF8W3vvUttm3bhslkQqGYt8WWl5dTVlbGtm3bGBoa4uDBg0QikVVu8fKgVqupr69n69at/NVf/RU//elPefnllxkeHl6zfW5sbGT37t188YtfpKqqCoVCwQcffMD3vvc9+vr6GBoaWrLfynjRC4KAyWRCqVSiUCiwWCzYbDby8vIwGAxotVpsNhsVFRUIgiB/TqPRUF9fj1arRalUolQqEQSBXbt24ff72bBhA/n5+SSTSWZnZ/H7/Xg8HkZGRjJutJBuWtu3b+eee+6hvLwcvV6PQqFAFEUSiYTcZqVSidFopLCwkFQqxfT0NOl0muUsi6ZUKnG5XGg0GjQaDZOTk0xOTi7775nNZiYmJgiFQsv2W8uN2WymsrKSbdu2sXv3bhwOBwqFAkEQ5MdSk/GiVyqV2Gw21Go1arWa4uJiiouLqa+vx263Yzabcblc3HPPPdc8QIFAgEAgwI4dO4jH4zQ2NqJWq4nFYkxNTTE2Nsbg4GBGTov1ej1FRUXs3LmTp556CofDgUajASCVShGPx0kmk6RSKaxWKwaDgeLiYuLxOLOzs4tuCsuBUqmkqKgIk8mE2Wymo6Nj2UVfUFCAyWRidHR0TYveYrHQ3NzM1q1buffee1Gr1Ytu0Mtxs85o0btcLtxuN3/913+Nw+FAp9Oh1+vR6XQYjUY0Gg1KpRKtVntNwYuiyPnz53nvvffw+/0kk0lOnz5NMpnE7/czOzvL7OwsFy9eZHJyMiMs32q1Go1GQ1FREfX19Xz1q1+lsrISh8OBWq2W3xeLxRgdHaW1tZWOjg6eeeYZSkpK+Md//Ee6u7v5zW9+w4ULF2hra1vWttbV1ZGXl0d+fj6hUIjLly8vy28JgoBKpSIvLw+n00l+fj5Go3HZRsXlRqvVkp+fj8ViQa1Wr0gfMlr0Wq0Wi8XCxo0bcblcmEyma74/lUqRSqXku6M0GqbTacbGxjh//jxzc3PyqBePxwkEAsRiMWKxGGNjY0Sj0eXt1A1isVgwm81UV1dTX1/Pxo0bZfvEQkRRJJlMMjExweXLl5mZmaG4uJiWlhZMJhOdnZ0MDw8va1tVKhUFBQU4nU4cDgdGo3HZfkuy4djtdqxWK0qlUj4G6XR62X53OdBoNBgMBnmpKgiCfA0HAgEmJycXXa9LRUaLfmZmBqPRiN/vx2q1Xlf0Pp+PsbExIpEIgiDQ3NyMWq0mmUxy+fJl3n77beCPUyZRFOULRRTFjFnLKxQKPve5z7Fp0ybuv/9+LBbLIqPdQoxGI+vWraOzsxO9Xk9/fz8KhYKmpiYMBgMVFRWcO3duWdur0+m4//770ev19PX1LetvWSwW3G43Dz/8MIIgcPLkSXp7exkcHMyY83cjaDQaWlpa2Lp1K08//TRWqxWAiYkJhoeH+cEPfoDH42F4eHhJLfeQ4aKfm5sjFArR1dVFPB5nbm6OeDxOPB6ntLRUHlFSqRSRSITu7m7Onz9PJBJBoVAQCoWwWCw4HA6mp6czZhS/FlqtFr1eT1lZGVVVVTidTnl0j0QiRKNRAoEAoihSWloqG/Ok9fvg4CCCIFBXVyePiss9ZRQEAYPBIM+slpOKigpqa2uxWCxEIhECgQDRaDTj7DDXwmQyYbVa2bBhA/X19dhsNrRaLaIoMjw8THd3N/39/fh8PqLR6N010kejUSYmJvif//kfSkpK2LJlC+Pj44yPj/PNb36T2tpaYF4MfX19vPrqq/zkJz+RfdYVFRVUVVXx2GOPMTh43YzDjMBut1NYWEhLSwvNzc2LhOTz+RgYGODUqVPMzc3xne98B61Wy8zMDKOjo/T29hIKhSgqKmLfvn3yOvdKM4SlZiXW1AqFgscff5ydO3diMpnkfmeie/ValJSUUFlZyQsvvLBo2ZpOpzl27BgnT55cVvdjRoseIJFI0NXVhc/nY3JykkAgwOzsLJs2bSKZTFJTU8PMzAzHjh2jv79ftmQLgoDP5yOZTCKKIp2dnavdlWui0Wiw2+3s2rWLXbt2UV5eLo/w4XCY0dFRjh07xvHjx0kmk+h0Oo4cOUI0GqWtrY3Tp08zNjZGMBgkGo2SSCTkqX9JSQkul4vp6Wni8fiStttms5Gfny+7VZcbrVaLTqdDEATC4TC9vb1MT08v++8uFYIgUFVVRVNTE3a7Hb1ejyAI+P1+pqenaWtro7W1lbm5uWVrQ8aLPplM0tvbi1KppLOzk7m5OZLJJGfPnkWlUlFRUYHf7+fkyZMMDg7KlndRFJmammJqaoqenp5V7sX10el0FBQUcO+99/KlL30JvV6PSjV/esLhMN3d3Rw+fJjXXnuNxsZGnE4nR44cwev18rvf/Y5wOCyPDPF4nEQigcPhoKqqivLyctxuN+FweNlEb7FYln1NLQgCGo1G9tZEo1H6+vqYmZlZ1t9dSqQZaGNjIzabTQ4q8/v99Pf3c+nSpWXzfEhkvOgl0uk0kUhENsLFYjH5eW5uLp/85CcJhUJcunRpWQNRlhqlUkleXh5lZWU88sgjNDc3YzAYiMfjhMNhAoEA/f39HDx4kK6uLqLRKB0dHfT19XHhwgXZA3GlNa0gCGi1WpqamvjMZz7Dyy+/TDAYXLK2C4JATU0NTU1NGI3GZbWZSG7a3Nxc8vLyUCgUzM3NMTU1tSZsNTA/SzEYDHIgjkajIZlMEovFOHPmDG+//TZer3fZ27FmRL/Qui7FmM/MzBCNRlGr1VRWVpKXl4dOpyMej68Z940UaFJWVkZDQwP5+fkolUpmZmYIBoP4fD76+voYGBhgenpadufcCIIgoFQqcTgcVFZWLosrzW6343Q6UavVskFtOY690WgkLy9PHh2l0GlpKZPJSHYVq9VKfn4+hYWFFBQUIIoi0WiU6elpPB4PHR0dKxJotGZEvxBRFHn77be5ePEidXV1lJWV0dLSwubNm7l8+TKtra1rYsqnUqnIycnhG9/4BjU1NWzfvh1BEAiFQvz0pz/l/PnzdHZ2EovFSKfTt7x2NZlMi7wAS4UgCPJFrFAoiEQi9Pf3L8sae/v27TzyyCM0NjZiNpsZGxvD6/USDoczXvRSGPVnPvMZHn/8cdkADeD1enn99dc5ePAgZ8+eXZG+rEnRA4RCISYnJzl//jypVIp169ZRWFjIpk2bUCqV+Hw+QqEQkUiEiYmJ1W7uFTEajeTk5FBRUUFxcTEGg4HBwUH6+/tpb2+nu7ubkZER0uk0KpXqltfjCoVCtg8sNQu/e6mm29J3SqO63W6nqamJdevWYTabSaVS9PT0MDg4uCzBK0uNVquloKCAoqIiysrK0Ov1pNNp2ftw6dIlxsbGltV4t5A1K/pEIsHU1BQ//vGP2bNnD3v27GHz5s3U19dz8eJFvF4vHR0d9PT0sH///oyc7rtcLtatW8fGjRvJy5uvWnzo0CH++7//m4sXL64pqzQgx0pMTU3d1vdotVpMJhPbtm2joqKCvXv3UlVVRXV1NWq1Gr/fzxtvvEFbWxuhUCjjbThSVGl9fT1lZWUoFAri8Tjt7e188MEHvPnmmyuaHbhmRQ/zQTkzMzN0d3fz61//mpqaGqqqqli3bh1FRUWUlpbS3d1NMBhkdHQUr9e7LMEOt4IgCGzevJmNGzei1+vlmISBgQH6+vqW5CIQBGGRIFbCj67T6a44q9BoNOTk5Mj+fKfTiclkwmg0yvUQpFh6rVaLWq3G5XKh0+lkV2AqlUKpVJJMJvF6vUxNTWW04FUqFWVlZdTX17Nv3z4qKyuB+ag7n8/Hb37zGy5fvkwkElnRJcqaFr0oigQCAXp6enjjjTd44oknqKuro7y8XE5KKSsrY3R0VI7UW+6MsxtFoVCwadMmdu/ejU6nk6PpBgYGbjt3WhL3SiWgSMJTqVQYjUZ0Ot3HAoIMBgMulwuFQoFCoaC5uZn8/Hzy8vLkAieNjY00NTXJN6t4PM7MzAydnZ2k02mSySQqlYpkMsn4+HjGz4TUajXV1dVs3LiRBx54QLapTExM0Nvby1tvvYXX613yMNvrsaZFL+H3+zl+/DhTU1McPXpULiMlrfO/9rWvcfr0aWpra3n33XfxeDwEAoFVm/IXFhZSXFxMbW0tJSUlKJVK/H4/H3zwwZIkxyzMLRBFkenpafr6+giHw7f93R9FsqLDfKTZCy+8wPj4+MfsKGazWZ7aCoKA0WiUb8yxWAyfz8f09DS/+93vGBkZIRAI0NnZSTAYZHx8nC9/+ct88YtflN1co6Oj+Hy+Je/PUmGz2SgsLOS73/0uZWVlGAwGue8zMzOMj48zMzOzKmnBd4To5+bmmJiYIJ1OMzk5SWlpKaIokpOTg9lspqqqSh7le3t7mZubY3Z2dtVEL1nTbTYbJpMJURQJh8MMDg7esDvuahiNRsxmM/BHQU5PTy9L4oYoigSDQaanp/H7/ej1eqqqqsjPz/9YaKzJZKKwsFAesaUgq1AoRDKZJBqNMjY2xtjYGP39/UxOTnLp0iVisZjcB0Au+hmJRJY80GgpsdlsuFwumpqayM/Pl18XRRG/38/ExIRcxHSluSNELzE9PU0gEOA//uM/yMnJYefOnWzYsIHnnnuOuro6KisrKS0tpbOzk+9973urNj2UagBI9QACgQADAwMcPHjwlotPKJVKVCoVn/70p2lubsZkMhEIBGhvb+eNN97gV7/61W0b2D6KKIr88pe/5ODBg3i9XtxuN1VVVVfMWFQqlQwODtLT00NPTw+jo6P4/X46OjpkC7z0kAqCJBIJXC4X+/btY/369dhsNiYnJ/H5fBmxRLsagiBw//33s3nzZvR6/SK7QyqV4uDBgxw5cmTVSnvdUaJPp9OyKyQWi9He3k5OTg7pdFquvFNUVMTc3By5ubkkEolVSdb4aHKKFJXl9/tvaTQWBAGHw0F+fj5NTU3U19fLx+Hy5ct4PB6mp6eXxVgUDodJp9O0trbi9XqvO+WW0kV9Ph+zs7OMjo5ec7TTaDQUFxdjs9lQKBRMTU3h9XozVvRS8dKioiKKiorkfH+YP1bBYBCv18vExMSq9eGOEr2EVBTj6NGjmEwm2eorCAKlpaXodDqamprQaDTLWlHmRpAKQEiRWTe75BAEAbVaTXNzM7t37+app56itLQUn88nezW6urqW1VgUjUZ56623buozN2p1t1gsrF+/nvz8fERRpL29XS6GkolIxUubmppoampaVOXI4/Fw+fJlenp6ViTc9mrcUaI3Go2YTCZKS0uxWq3k5uayYcMGVCqVPLJKFUkGBwczwhCUTCbp6em5aQOeQqHA4XCQl5dHY2MjW7duZcuWLUQiES5cuMDrr7/OwMAA3d3dK7KMWU7XmXTuRFFkaGiI7u7ujM2fb2lp4VOf+hTr1q3DYrGgUCjkOowffPAB7777LuPj46vaxjtG9IIgYLFYcDqdbN26VS6e6XK5FqV8BgIBxsfH8Xg8GRGpl0wm6evrY2Rk5IaFI9WJczqd1NTU8Pjjj9PY2EhdXR3Hjx+no6OD//zP/8x4l9at4PF46OnpyVjRNzc386UvfQmTySTHK8RiMTweDydPnuTNN99ccRfdR7mu6AVBKAZ+CjgBEXhRFMV/EwTBDvwCKAMGgM+JoriiAe9KpZL8/Hzcbjdbt25l3bp1VFVVUVxcjNlsxmQyyb5RqTSWVO56YS291UBa12u1WjZv3kwoFPpYMM3VPrdjxw4qKyt54okncDqd8nT+D3/4Ay+99BKtra1rrrDEnYJGo8FsNi8aaCYmJnjrrbdob2/PiA05bmSkTwJ/LYriWUEQzMAZQRAOAF8D3hVF8Z8FQfh74O+Bv1u+ps4jiUWn06HT6SguLqaiokIWfWVlJVarVa44I9WFj0ajRKNROTJvtQ+8hHTjys/PJycnR84aS6fT8npdqVTKAS9S5dmFxTJVKhV9fX10dXXR2tpKe3v7andr2ZC8FJmGWq3GZDJhMpnQaDSLbDORSISenh4mJycz4rq77tETRXEMGPvw/7OCIHQAhcDjwN4P3/YycIgVEL1er8dkMnHPPfdQUVHBY489htPppKioSI7sWhgNFgqF6O/v58SJE5w4cYIPPviA8fHx2/aH3y7SiC4IAjk5OTQ3N/OXf/mXtLa2yjHlUr56SUkJO3bswOl0kpeXh8vlwmAwEA6HGR4epq+vT+7fahqIlhMpsCUvLw+3201ra+tqN2kRlZWVPPfcc9x7771yKq10jkOhEK2trRlhQ4KbXNMLglAGbAA+AJwf3hAAvMxP/6/0meeB52+9icjuNp1OR0lJCaWlpfK6XTLaLcwVD4fDcj14n89He3s7Fy9e5PLly4yNjS2p4G+nf9JFoVQqsVqtrF+/Hq1Wi9lsXiR6l8tFXV0ddrsdm80mx5+PjY0xMjLCyZMn6ejoYHR0dMkDVpbi/C0lKpVqkWH2drnd/knRhbm5uVRXV2O324E/zjC9Xq9cxy9TPA43LHpBEEzAr4C/FEUxuPCgi6IoCoJwxcWoKIovAi9++B03vYheuFlhSUkJDz/8MA8++CAlJSXyJgcfZXh4mOHhYV555RV6e3v54IMPSKVSyxKBd7v9+/BzOJ1OHn74YXbv3i2nBMN8aOvCi1wURS5fvozP5+P06dO0tbXxyiuvLNvWVUvRv6VgYf+WMqfgdvunUqkoKSmhpqaGlpYWbDabHHUYCoV45513OHv2LDMzMxmT939DohcEQc284F8RRfG1D18eFwTBJYrimCAILmDJTOEqlQqNRsO2bdsoKCiguLgYq9VKYWEh69atkwtCSCdfit0eGhrC4/HQ2trK2NgY586dY3p6Wi6OmSkEAgF537yCggK5/JNkq1AoFOj1emD+WIiiSCwWkysBv/322wwMDMgzmUxYJ64EC6f3K1GE80aQzpnBYMBsNsu2pEgkwuTkJO+++y49PT0Zk+gFN2a9F4AfAx2iKP5wwZ/eBL4K/POH/75xu41ZaNE2Go184hOfoLm5WfZ5FhQUfOwzoigSiUQYHBzk/fff5/jx45w9exafz5exsdnBYJDh4WE8Hg8ulwubzYZGo5ELPy40QkrTxFAoRF9fH62trfzyl79c9uKJmYpk08gk0Ws0GrmGn2RkjEaj+Hw+Dh8+vOp++Y9yIyP9vcCXgVZBEM5/+Nr3mBf7/xME4RvAIPC5W26ESkVpaSnFxcXs3LkTp9OJ0+mkoaFB3ibpoxbbZDJJOBzm8OHDdHZ28tvf/pbx8XGmpqYIBoMZM5W6EuFwmLm5OV5++WUOHjzIgw8+SGVlJXv27Fk0dY1Goxw6dIihoSGOHz/OyMgIo6Ojy75NVSYizYSy3D43Yr0/ClztaN+/FI2QKsKWl5ezbds2uXBgTk6OnEqZSqVk37OURz8zM8PFixdpb2/n9OnTcs37TEdKLOnq6mJiYgKn00ksFqOiokK+uKXMu7a2Nnp6enj//fflbLa7iXQ6vWrZaDeCFEadSCRkQ10muhQXkhGt02q13HPPPbS0tLB3717ZN61QKEgmkwwPD+P1ejl79qycwbV//345BVOqippJ6/YbQdq442c/+xlqtZr/83/+z6K/S9VSE4kE8Xg8Y9aEK8nMzAzHjx8nNzeXxsbG1W7Ox0ilUoyMjNDb28vFixcpKSnB7XavdrOuSUaIXiqKoNPpOHTo0CI/eyqVkqftUgWVdDpNb2+vXP5qrYldQrqBSYUU1kIF35UmEonQ29vLqVOnUCgUnD59moGBgYxZvkn7MYyOjvLee+9RUFCAw+HA7/czPj6ekXYlYSUFcy2XyI2UeFrY1lUU+hlRFDdf6Q+r6dJaQjKufwuvjYVVgW6RZevflfYMXIVCLVftn0RGjPTAUpzMLHcoa+XayMSKy1di+bczzZIlS0aRFX2WLHcZWdFnyXKXsdJr+kkg/OG/a4FcPt7W0mu8f631Dz7ex2z/7tz+AStsvQcQBOH09ayLmcKttHUt9Q9uvr3Z/mUWt9Le7PQ+S5a7jKzos2S5y1gN0b+4Cr95q9xKW9dS/+Dm25vtX2Zx0+29rTW9IAgPAv8GKIH/TxTFf77lL8uSJcuKcMuiFwRBCXQB+4Bh4BTwJ6Io3rlVGbNkuQO4nen9VqBHFMU+URTngJ8zXywzS5YsGczt+OkLAc+C58PAto++6SOFBzfdxu9lCpOiKOZJT7L9W3PcVf27IlJJppt9AE8xv46Xnn8Z+L/X+Yx4BzxOZ/u3ph93bf+kx+1M70eA4gXPiz58LUuWLBnM7Yj+FFAtCEK5IAga4AvMF8vMkiVLBnPLa3pRFJOCIHwHeId5l91LoiheWrKWZcmSZVm4rYQbURT3A/uXqC1Z7jIEQZBrxet0OtLpNKlUimAwyNzc3F1ZE3AlyJjKOVnuPsxmM88//zz19fXs27ePqakpfD4fP/zhDzl37hwTExNrphrNWiIr+jWIQqGQH1qtFqvVilKpRKlUMj4+TiQSyfjSUtKWzuvWraO6uprCwkJMJhNms5nc3FxMJhOTk5NrVvRarVbejkza0Vbanfh65yadTsvlzvv6+pb8GGRFvwbRarWo1Wr0ej1Op5NNmzZhNpvR6/W8/vrr9Pf3Z8xmiVfDZrNRWFjIrl27cLvdiKKIxWLBaDRSVFREYWEhHo8nY+vdX4/c3Fx5kxa73U5DQwOPPvooDz/88HVFHI1Gee+99zhx4gT/8i//Im9dvlRkRb8GUKlUmEwmSktLKSkpweVyYTabyc/Px2Kx4Ha70Wg0qFQqwuEwnZ2dvPfee8RisdVu+lWJx+MEg0E8Ho88Eq5lNBoNVqsVl8uFy+WisbERu92OQqHAZDJRVlZGTU2NvI31tdBqtVRXV5NIJPj0pz/N5cuX6e7uZm5ubklmcHeE6D9aPvsjO+pe8UBl+vRXQtrbz+Fw0NLSwo4dO6itrSUvL4+KiopFu6lI+/o5nU5OnTqV0aKPxWKEQiE8Hg9Go5Hy8vLVbtJtodFocDqdNDc3s2HDBu69914KCgrkJZjdbr/hEt5KpZKKigp0Oh2BQACFQsHQ0BCpVGpJZj5rWvTSHngFBQWsX78el8uF0+kkPz9f3vV1aGiId955h3A4TDQapaysDLVazalTp5iamsrYfeFyc3Ox2+3s2bOHkpIStm7dSl5e3qK9/QKBAMlkkrm5OaxWKxaLhcbGRkwmE7/61a8YHh5mcjIzKz8lEgmi0SiTk5P4/X5EUVzTe9UVFRXx1a9+lYaGBmpra7HZbGi1WuDK9fBvBIfDwX333cfo6CiXL1+mv79f3trtdlizotdqtRgMBsrLyyktLWXr1q0UFxdTVFREfn6+vOVzX18fXq+X2dlZQqEQtbW1qNVqxsfHEQQho0QvbXus0+koKSnB6XSyefNmKioq2L59OxqNBqVSSTqdJh6PMzo6SiwWIx6PU1JSgsViweFwEI/HsVgsGAyG1e7SVZFmYKlUas0a6xai0+koLi6muLiYkpIS+XXJDSmJdeFoD/M3BJVKhUql+thOvFqtFpfLhcPhwGQyLdlOvWtS9IIgsGHDBqqrq3nhhRdwOp04HA75wHV3dzM7O4vVakWn0/Htb39bvsjUajXxeByr1crJkye5cOFCRkz1lUolBoOB3bt3s3v3bnbs2IHb7cZut6PRaORRA8Dn8zEyMsL3v/99ZmZmUCqVPPfcczz77LMYjUasVis2my2jRa/X67FYLFRUVOB2u9f0KA/g9/s5deoUOTk51NXVAfOCDwQCjIyMcOTIEXk2s/B6s1gsVFVVUVJSQmFh4Yq0dU2JXlrf6vV6GhoaaGxspKioCIPBwNzcHF6vl+npaVpbW/H7/fKe9tu2bcNkMskikEbLTBphtFotTqeTyspKmpqaKC0tJScnR16mAPLOqG1tbXR1ddHf308kEsFgMBCNRgFkQ5H0yFSUSqXstvvozclkMskzFVEUM94TAfN77nV3d+NwOOQRWRRFgsEgXq+XM2fOXFH0ZrMZn89HOp0mNzcXtVotn7e5uTn8fj/T02T/WNwAACAASURBVNPyUm4pWDOily7m/Px8iouLeeaZZ9iyZQt6vR6/38+lS5c4dOgQhw8fpr29Hb/fj0ajYcOGDfzd3/0d1dXVVFZWAvPiGRgYYHR0dJV79UdycnLYsWMHe/fuZd++fVcc+UKhEJOTk7z44oucOHECr9crL3PWGpLL0eFwYLVa5dcFQaCwsJCqqiq6u7vlgJ1Mx+fz8dvf/pajR49iNpsB5G2s4/E409PTV/ycSqXCYDDwwgsvUFFRgd1ul2d1fr+fEydOcOHCBXp6epZs0841I3qz2UxVVRVbt25ly5YtlJeXIwgCQ0NDdHd389prr9Hd3U1fX5+8fqqoqGDdunVUVlaSk5Mjb/0szQZ6e3szYmoP86NbQ0MDeXl5suBFUWR2dpZoNMrU1BStra20tbXR2dlJIBAgnU6j0WjIzc1dc8KPRqPMzMzQ1tZGIpHA6XQC86Jvbm7GZrMxMDDA4ODgmhC9JPBIJLJoRE6n0ySTyateZ3q9nvLyctkOtXDdnkgkCAQCRKNRksnkks1M14ToBUHAarXS3NzMgw8+yKOPPoooisRiMfr7+zlz5gy/+MUviEaj8lTQYDBQXV1NTU0NlZWVspDC4TBTU1O0tbVllBHPZDJRW1tLbm6ubH9IJpPMzMwwPT1Nd3c3Bw4c4N1338Xn88nuuLUu+osXL6JWq7nnnnvkc9TU1ERJSQmnTp0imUxy7ty5jLk5XwvpmrxRV6kgCBiNRqqrq3E6nbLxWSKZTBIIBIhEIkuah5DxojcYDDzyyCM0NDTwxBNP4HQ6EUWRkydP0tfXxyuvvMLw8DDhcHjRgdHr9Tz22GPU1tYuGjnfeustzp49y9jYGJFIZLW69TEGBgb493//d1paWli/fj09PT1MTU0xMjJCKBRiYmKCyclJpqenF61xVSoVNpsNnU63iq2/NSKRCK+//jqzs7M888wza96YdzNotVo2bNhAZWUlDzzwALW1tWi12kWiHxkZ4Wc/+9mSD04ZLXqDwYDdbmf9+vU0NTXR0NBAMpkkGo3S29tLa2srFy5cYGZmRp5SLYx1Li8vx+VyAfMRYNFolMuXL9Pa2vqxadhqMzs7y8WLFxEEgVQqRVtbGz6fj9HRUaLR6FX9syqVCrPZjFqtXuEW3z6pVIqhoSHGxsbk1+5k4avVatRqNQaDAZPJRF1dHRUVFVRVVeFwOK44yvf09Cz54JSxohcEgU996lOsX7+er33ta9hsNpLJJAMDA/T19fHTn/6UCxcuMD09La91lEolarWaxsZGqqqqKC4uliOhzp8/z/Hjx3nnnXfo7OwkHo+vcg8XMzc3x+TkpBxznUgkSKVSpFKpa05tzWYzjY2N8pp4LSIIgvxYC9P4W6WyslKOwa+srKSsrAy9Xo/RaFy0lk8mk/T19TEyMrLkcfeQoaKXAhbKysrk6CalUonP5+Py5cucPn2a4eFh/H4/qVQKhUKBXq/H7XZTVFTE+vXrKS0txWg0kkqlGB8fp6enh4sXLzI5OZlxgpdIp9NXXBPq9Xry8/MXxW1LAikpKcHhcMiuvXA4jN/vx+/3Ew6HV7wPdytSuK3ZbMZisWAymRbFVgDU19dTX19PXV0dhYWFcmyJQqGQDX7Dw8PMzMxw6dIlOjo6rnvTvxUyUvQajQaDwcCOHTvYs2cPWq2Wqakpzp07x89//nN+8YtfLDoQOp0Ol8vFk08+yZNPPklVVRVWqxVBEBgfH+f999/n7bff5je/+Y3sz15L5Ofn8+ijjy4K0pFE73Q6KS8vx2azAcjejI6OjjVh9YZ5W0s6nV7TI71WqyU/P5/m5mb54XA4Fr1HSpi6EolEglgsxhtvvMHFixc5duwYgUBgWfInMlL0giCgUqnQ6XTo9XoEQWBiYoL9+/czMDCAwWCgsrISu91OaWkpNpuNoqIimpqaKCwsxGAwyGvDYDDIhQsXGB0dJR6PZ1RAzpVQKBQolUqsVismk4nNmzdTXl7O3r175YjDhYZJk8mE2+1Gq9UyOzvLkSNHOH/+/JrIqb8TUCgU2O12ysrKeOSRRygrK5PzQRYGVsF8OvHCc7eQQCDA2NgYFy5c4Pz580xNTS1bwlRGil668CXRA0xNTXHgwAE5uaSlpYXKykp27dpFbm4upaWlaDQaNBoN8MfY7mAwyMWLF+X1UaajUqnk6Dy3281nP/tZKioq2LRpkzwSKhQK+f/SxRMKhQgEAhw9epTjx49nRb9CKBQKcnNzaWxs5Mtf/jJ2u31RsNFHkc7bRw2WgUAAj8dDW1sbFy9eXNY2Z6ToU6kUiUSCUCjE7OwsJpOJpqYmXnrpJXmN43A4MBgM5OTkAPPun1gsJucvq1QqQqEQo6OjfPDBB0uSnbRcSHH3LpeL++67j71795KXlydXW1GpVMzMzODz+ZicnKS6uhqbzYZarV6UTqxUKmlsbCSRSDA1NbXk/t0s1+Z6ngfJWAkfH+mLioqwWq1s3bqVVCpFe3v7sg1SGSl6KTBlamqK8fFxtFotNpuNnTt3yllLc3NzJJNJYrGYHOhhMBgwGAxykEMwGJTFkqnTeoVCgU6nw263U11dzcaNG9m9e7c8YwmFQkQiEbxeL6Ojo4yPj5OXl4der1+USy+JvqioiGAwiMViIZ1Orxlj3pVqIkglpzKdRCJBJBLB5/PJo/iVCnsuFLwgCOj1etRqNTqdTr5upZTq5cybyMgjGo/HSSQS/OhHP+IPf/gDP/jBD8jPz8doNMpCPnv2LB6Ph4MHDxIMBgkEAnz605/m0UcfxWw2I4oiR44cyehoLqVSiV6vZ9OmTWzZsoXvfve7stX3zTffpLOzk4sXLzIxMUFnZydqtRqtVotOp2Pr1q2UlZXJotDpdGi1Wp544gl27tyJ1+uls7OTc+fOkUwmM3rEv5LLTq1W09DQkNEzNJh3rw0ODjIzM0NPTw+NjY3U19fT2trK1NTUVV1uRqORffv2sW7dOh544AEUCsWKXacZKXqYd195vV4Afv/732O329Hr9czOzhIMBuno6GBiYoLu7m4SiYRcGNJisaBSqUin08zMzBAMBle5J1dGoVBQVFREXl4e27dvp7Gxkfz8fDk3oLOzk0uXLtHV1SVnWpWXl1NRUbEo+y4cDjM+Pi7bM2w2Gw6Hg82bN5OTk4NCoWBycpLJyclF7h8pTjxTUalUFBYWyqXBotFoxtpkksmkXAVISt3u6emRM+OuJGadTkdeXh4KhYIHHnhgRQemjBU9wPDwMMPDw5w9e/Zjf1tYdshut1NfX09lZSWNjY2Ioojf78fn8zEzM7PSzb4uUhzCfffdx4YNG/jSl76E2WxGEARGR0fp7u7m4MGDnD9/ntnZWVQqFRaLhYceeohnnnmGqqoqLBYLyWSSkZERfvWrX5GXl4fT6WTbtm3k5+fzrW99i8nJSc6fP8/Ro0d5//33mZ2dlaMQg8EgfX19q3wk5rmSy06tVrN582ai0SglJSV4vd6MrQIE88FVPp8Pn8/HyZMnrytihULB2NgYs7OzfPOb31zRSMSMFr3E9dbjUuitUqmULdpzc3N0dHQwMDCQUdN7QRCoqKigurqaPXv2UFtbi1KpxOv1cv78edrb2+no6GBwcJBEIkF+fj6FhYXs3LmTe++9F5fLRSKRYHR0lMOHD9PX18ehQ4cwm81YrVb6+/spKCigqqoKrVZLSUkJe/bsobq6WraDhMNh2tvb6e/vz4hj4/f7OX36NMXFxXLYtITNZmPTpk2cO3cuo0W/kBs5pkqlkpKSEgoKClagRYtZE6K/HpJff+FIkUgkuHz5Mh6P5zqfXjkkY1tVVRX33XcfO3fupLS0lEgkwujoKPv376e1tZVLly4RDodRKBS43W7Wr1/PF77wBQoLC3E6nYyOjsojfE9PD21tbWi1WrRaLV1dXbjdbj75yU9SVlbGtm3bKC8vlw2DyWQSr9fL73//e15++eWMEH0wGOTMmTMolcqPid5isbBx40a8Xu+yu7JWErVaTWVl5YpVy1nIdUUvCEIx8FPAyfxWuC+KovhvgiDYgV8AZcAA8DlRFFdlLh0IBDh79iz79u1bjZ+/YfLy8ti6dSsPPfQQDz74IDk5OUxPT/PKK6/Q3d3NkSNH0Gq11NXV0dzcjNvtZsuWLeTl5VFeXk5nZye///3vOX78OENDQ5w7d45QKAQgW4ulAoqdnZ1yXfmqqioqKiqAeW/Az3/+c7q7uzNC8DBfGXd4eJja2trVbsoNsfDmrdPp6O7uJh6P33AC16ZNm6ioqOBP//RPKS4uXvEKRzcy0ieBvxZF8awgCGbgjCAIB4CvAe+KovjPgiD8PfD3wN8tX1OvTiqVIhQKZWxMvYTJZKK+vp5169ZRWlrK3Nwc4XCY0dFRfD4fqVSKnJwcCgsL2bhxI2VlZWzatAm1Wk0ikWBsbIxz585x6tQpudKttPSR3JyBQABATsXV6/VEIhE5HTcYDHLy5EnGx8czRvTxeFwuXirlUkhCkLIIpQIT6XR61dotLSMl13BlZSVGo5Hh4eHrlqeW7DhqtZqKigq53JsUPg1XL9e+1FxX9KIojgFjH/5/VhCEDqAQeBzY++HbXgYOsUqit9lsNDY2UlxcvBo/f8MUFRXx7LPPkpubC8xfRCaTiSeffJJkMokgCOTm5uJwOGQftUajYWBggNdff53Dhw/z3nvv3XAllcnJSQ4cOMChQ4fk1Nt0Ok0oFMooF57X6+XVV1/F6XTS0tIiF5QAcLvdPP3000xMTMj7261WPX+LxUJNTQ3bt29n27ZtbNiwgVQqRVdXFx6P56rtUqlUcm3/qqoqvvGNb9DQ0LConp5Uyjwejy/74HVTa3pBEMqADcAHgPPDGwKAl/np/5U+8zzw/K038fqo1WrsdvuqFJK4mf5JmViSb126+xcUFCCKIhqNBoVCIWcGSrXVBgcHOX/+PAMDA8zOzt5woFE6nSYajd5WktFKnL9UKkU4HJbjLRaeS6VSKccuSHabpeRm+mexWGhpaaGxsZGamhpcLhfxeJzKykp0Ot3HEmwkpO3HKisrqayspKSkRM4cTSQSzM7OMj09LVc5np6eXtab8g2LXhAEE/Ar4C9FUQx+ZBcZURCEK85LRFF8EXjxw+9YlrmLVquloKAAo9G4HF9/TW6mf4lEgpmZGXQ6HWazWQ7OWZh51d3dTXd3N5cuXZIt9DMzM3i93lWpEb8S508iEAgwNDREQUHBim1zdTP9Kykp4fnnn8ftdpOfnw/M37gffvhhuZbdlZB2J5LiDhYyOztLW1sbJ0+e5NSpUxw7dkyOT1kubkj0giComRf8K6Iovvbhy+OCILhEURwTBMEFTCxXI69HNBplcHCQ2dnZjE7PHB4e5qWXXqKiooLS0lLsdjtqtZpYLEYgEKC3txev1ys/Zmdn8Xq9RKPRO2ZTiGsxMjLC6dOnqampIS8vT349k86nlOwkIVVclqJIr4TBYMDpdGKxWBAEQa6ZMDg4SF9fH2+99RYej4fh4eEViUC8Eeu9APwY6BBF8YcL/vQm8FXgnz/8941laeENEI1G8Xg8BAKBRSck0+q+Dw8P8/LLL1NbW0ttbS2VlZWYTCamp6fxeDwcOHBAno5fq4Lqncro6Chnz57l0UcfXe2mXBVpvwQpfl6tVrN+/fob/ry036Df7+fChQtyjYgrxeovFzcy0t8LfBloFQTh/IevfY95sf8/QRC+AQwCn1ueJl6faDTKwMAAQ0NDjI6OkpOTg1KpJD8/X14nZgLSGrurq4uRkRGOHz+OUqmU6/7NzMzII/rdJniYn94PDg7i8XjkfQkzKeGmv7+ff/3Xf6WlpYWmpiY2bNhw1XU8zJ/vyclJEokEiUSC8fFxJiYmOH78OB6Ph/b2dmZmZojH45kVhiuK4lHgataT+5e2ObeG5LKbnp7G6/ViMBhQKpXk5eXh9/sZGRnJiOmxtHdbMBjM2JyA1URa5gwNDeFwOJibm5ONd1Lx09W8GQaDQc6fPy+XLXO5XPI24tK0P5lMyiKPx+MMDQ3J03kprPzUqVMMDQ0xODi4KsVZhZU8iMttCNq2bRvbt2/nueeeo6ysjKNHj3LhwgX+67/+C5/Pd9VdRm6SM6Iobr7SH5a7fyvEqvVPEpPFYkGtVi8a5cPhMKFQaClmQbfcPynyU6/XYzAYeOCBB6ipqeErX/kKOTk5GAwGenp6ZEPs2NgYx44dIxgM4vf75WzHWCy2ZNtO30z/JDJn7rQETE1N0dXVxfj4OA6Hg8LCQmZnZ6mrq0MQBAKBQEb5p7MsRpoJZWKSFMy3T6pSLC3TYrEY7777rhxANDw8zNDQEH19fUxOTuLxeOQbVqZwR4ne4/EwNTXFmTNnUKlUbNmyRa6s8+tf/5qhoSHi8XhW+FluC8mYJ7nZXnvttUV/XzgTyUTbzB0leskg9oc//IHh4WGSySRWq5W6ujpOnz6NzWZjamoqK/osS8ZKhc4uJXeU6KXNIQ4fPkxbWxv5+fk0Njby0EMP4Xa7sVgsBAKBjI/Rz5JlObmjDHkSCoUCtVpNcXExJpOJvLw8PB6PHB99myN91pC3trlr+ydxR430Eul0Wi5ZlCVLlsWstOgngfCH/64Fcvl4W0uv8f611j/4eB+z/btz+wes8PQeQBCE09ebfmQKt9LWtdQ/uPn2ZvuXWdxKezMrOD1LlizLTlb0WbLcZayG6F9chd+8VW6lrWupf3Dz7c32L7O46fau+Jo+S5Ysq8ttjfSCIDwoCEKnIAg9HxbHzJIlS4ZzyyO9IAhKoAvYBwwDp4A/EUWxfemalyVLlqXmdvz0W4EeURT7AARB+DnzFXKvKvo7JOJpUhTFvCv9Idu/NcFd2z+J2xF9IbBw+5hhYNtH37QS1VRXmMGFT7L9W3PcVf27EssekbeS1VRXg2z/1jZ3ev+uxO0Y8kaAhbtLFH34WpYsWTKY2xH9KaBaEIRyQRA0wBeYr5CbJUuWDOaWp/eiKCYFQfgO8A6gBF4SRfHSkrUsS5Ysy8JtrelFUdwP7F+itmRZJgwGg7z7TzqdZmZmZtUrAyuVykXbfOl0OrkIysLKxVI1pCxLxx2ZT59lMY888ghPPfUUgiAwNTXF97///aWqDHzLFBQUkJOTw7Zt2ygrK2Pv3r1MTEzg9Xrl3YpgfoOQd95554Y27MxyY6x50Uu7jBiNRhwOBw6Hg8uXL2fMBheridFopLi4mJqaGqqrq5mamiISiSz5JpA3g9VqxWq1snHjRlwuF83NzbjdbioqKrDZbDgcDux2uzy6WywWTp06xezsLOFweNXafSex5kWvVCqxWq3U1NSwb98+9uzZw9/+7d9y8uTJ1W7aqlNcXMxzzz3Htm3bqK2t5d1332V8fHxVC4NWVVWxZcsWvv71r1NXV4fBYEAQBARBwO12A4sryJ48eZIzZ87Q09OTFf0SsaZFLwgCWq2W8vJyvv71r1NcXIzD4cBisWAwGIhGo2uuUulSoNVq2bJlC01NTWzduhW3200qlWJsbIyBgYFV2VVFwufz0d7eTjAYJJVKyYJfyMLnbrebz3/+87z33nsolUrGxsaIRCIr3ew7ijUveo1GQ3l5OV/5yleIRCIEAgHMZjNGo5FYLHZXil6n07Fr1y6am5vZvHmzvEnD2NgYQ0NDqzrS+3w+IpEIMzMzzM3NyRtBXg2Xy8XTTz+NKIp4vV4CgcBdJ3rp+Cy8QUrX9a2U4F7Tov8oer0epVKJ3W7HarVmhJV6NVCpVFRXV1NSUoJKpcLr9TI6OsqJEyc4ffr0qpYAlzYbOXDgAFNTUzz99NOYzWbUajWhUIhoNIrVakWj0QDzyzej0UhZWRkbN26kp6eHycm1VMLu5lEoFNjtdlQqFWq1mtLSUioqKtiyZQtOpxMAv99PV1cXR48e5cSJEzf1/XeU6KXNDjUaDRqNZlUNVkuFRqNBrVaj1+vlbayvdSPTarWyUdNsNssuusHBQcbGxvD5fCvY+o+TTqdJJBJ0d3ej1Wp56KGH0Ol0qNVqkskkkUgEs9ksv1/aP06j0aDT6TJu+/GlQqlUolKp0Gq1aLVaiouL5T5LW5vv2bOHwsJCYH7GZDKZ6O3tvenfuqNED9wRQpfQaDTU19dTU1PDo48+yv79+9m/fz/hcPiK63JBENiwYQO1tbXU1NRgNpsZGRnhwIEDvP766wwOXjcXY0UQRZH333+f/v5+nnzySQBKSkpIJBJX7dulS5d49dVX8Xq9K93cFaGwsJCysjI2bdpESUkJ9913HyaTCaPRiEqlkmMZlEolMD8baGxs5PDhwzf9W3ec6EVRlAM/1jpqtZrm5mZqamqoq6vjwoULWCwW4vH4VY1x5eXl1NXVYTabSSQStLe309vby/DwMLFYbIV7cHXi8TjBYJDu7m4EQcBmsyGKonyRf5REInHdWc5aQqVSUVVVhU6nQ6fTUV5eTllZGfX19RQUFFBUVIRer0etVsu73obDYeLxOJOTk4TDYXw+HyMjN5/ucseJHpCng2t91DeZTDz77LNUVFTgdrs5d+4cxcXFzM7OXlHAgiCwZ88e9u7dS35+Pq2trbz88su0tbUxMDCw8h24DtFolDfffJPGxkYsFgtut5vS0iuXbVcqlajV6jV/TiVMJpPscSorK6OwsBC3273IaCftjtve3k5bWxtdXV14vV4OHDhAKBSSDaE3yx0leukAOBwOnE4n7e1rv4iPFJYKf9yu60qzGJPJhNVqlY2Y0sWTybOeRCLB5cuXCQaDxONxdu3axb333ovNZpMNeRJlZWV84hOf4K233lqz/nppMGppaaGiooKtW7dit9vR6/Wk02nGxsZob29ncnKS6elpEokEsViMoaEhBgcHmZ6eJhQKyYK/1VnPHSN6SfCCIGC323E6nfL6Zy0iuWeSySSpVEp2bV1NwGazGZfLhd1ux2Qyya8rFIqMHR2TyaS89Oju7kaj0VBdXY3BYPiY6CsqKti7dy/Hjx9naGholVp8e2g0GkwmEzt37qSlpYVNmzahUqmYnZ1lZmaG6elpfve739HV1UVfXx/xeJx4PE4gECAYDC5ZO9a06EVRJJ1OMzc3RyQSQafToVKp1rzoBUHg/vvvp6GhgZqaGoxGIyMjIwwODtLf378oAUUa/Zubm9m7dy/FxcUolUp6e3u5ePEix44dY2ZmZhV7c3W0Wi2bN2/GbrdTVFTE9u3bKS0tRa/Xf+y9ExMTtLe3EwqFVqGlS0NTUxPbt2/nkUceoaioiCNHjtDb28s777xDOBwmGo0yPj4u/z+dTpNOp5c8mGpNix7mp7+S1VehUMhuD51Ol7Ej3LWQXFSVlZU0NDRgs9lIJBJ4PB4mJiYIBoOLLgK1Wo3D4aC0tJT6+npMJhOJRIK+vj76+vrwer2rGoH3URQKBQqFAovFgsVioa6ujry8PIqLiykqKlrkrltIKBRibGxsTW0zrlAoZMOkTqfD7XZTWFiI2WxGEAQ6OjpobW3l8OHDxONxEonEirRrTYteFEXC4TATExOcP3+edevWUV5evtrNui2ktfnevXvZsWMHarWajo4OfvjDH9LR0YHf71+0lisrK+PZZ59l27ZtbN68mUgkQm9vL3/zN3/D8PAwc3Nzq9ibj2Oz2cjNzeXP//zP2bhxI+Xl5Wi1Wjm24moMDAxw9OjRVc8OvFE0Gg0Wi4WnnnqKyspK7r33Xo4fP86JEydoa2sjkUhw7NgxgsEg4XB4RSNH17ToYV74qVSKubm5VQ0vvV2USiV6vZ7Kykqqq6spKirCaDQyNjbG4OAgfX19TE9Py4JXKpW43W6qqqpoaGjA7Xaj1+vp7e2lp6eH8fHxjMw01Ol02Gw2iouLKSkpITc394aMjWazGafTidfrXROGPLfbjdvtpqWlBZfLhU6nIxKJMDIyIgcoTU1NEY/HVzxUfM2L/k5Br9dTVlbGZz/7WT7/+c9TUFBAOp3m0KFDnDp1itbW1kUjvF6v56GHHmLTpk088MADKJVK0uk0R44c4dSpUxlbeMJisVBcXIzL5SI/Px+1Wn1Dn6utreWxxx5jbGws40d7yXW6adMmPv/5zxMKhXj//fdpa2vj7NmzJBKJVR2g7kjRa7Va9Hp9xq/ppZDhqqoqKioqePDBB1m/fj25ublotVrm5uZwuVxUV1eza9cuBgcH8Xg8aLVabDYb9fX1lJWVoVAoGB8fx+v1cvr0ac6dO5dx03qJyclJOjo6eO+99wgGg2zfvh2DwXDdkV6r1WKxWK4YuJNpCIIgG+30ej3j4+O0trYyNjZGIpFY9QCjzD+Ct4BOp1sTolcoFOh0OjkF9pvf/KbsYpM8Ey6Xi3Q6TSAQ4OjRo4yPj2MymbDb7dTU1FBaWoogCHi9Xs6dO8eZM2e4dClzSxVOTk4yNTXFkSNH8Pv9NDY2yv7rhXw05Vaj0WA2m9eM6BsaGtiyZQswb4S8dOkSExMTGbEEzfwjeJMIgkBtbe11DUOZQFNTE5WVlbzwwgsUFRUBf4w3mJqaIhaLUVpaitvtZt26dWzfvp2+vj7sdjsWi4WWlha0Wi2zs7McOnSIn/zkJxkTX38tRFHk+PHjdHV1MTs7K9c/kFAoFJjNZp566iksFgtarXYVW3vziKLI8PAwvb29lJSUUFJSwp/92Z9x4MABdDodfX19S+p3v1nuCNGnUqlF8egWiwWHw5GxkWhqtVquA9DQ0EBDQwMWi4V0Oi1n0nm9XhKJhByskpubi8lkwu12k5OTg16vJycnh1QqJZeSkgx9SqUyI0aUa+Hz+QgGg5w6dQqj0fgx0dvtdvbs2SMXz5TCcFUqVcb1T61WI4riItfo2NgY/f39mM1mlEoljY2NDA8PMzQ0xOTkJJFIZNVcqXeE6IPBIGfOnMHhcFBXV7fazbkuFRUV1NXV8Rd/8Rc0NTVhMBiIxWJEo1H+93//l/379zM7saCaOgAAIABJREFUO4ter+f555+nuLhY9mfb7XaUSqU8/VUoFFitVr7+9a/z0EMP8U//9E+cPn0ar9ebUcK4EvF4nNOnT38salAQBKxWK0VFRaxfv54nnngCh8PBunXrKCoqYnh4mImJiVVfG8O84GtqaojFYgwODsqVfH/0ox/x2muv8eSTT9LQ0MCjjz7K448/zp49e/iHf/gHjh8/jsfjWZVzdEeIPpFIEAgEZIu1FAAi+X8zzaiVm5vLunXrsNlsKJXK/7+9M41t6zzz/e8lJUpctIsWSe20Nq+SLa+NC6TpBImnbRpjgExz3XQuWqAfeqe9xSTAFL1f5sN8aD+0QKcDJMjSSdqmcFOnbZKmrZM2TWPHu7XZ2jeLolYuIkWJu3juB+mcSI68SyIpnx8gSKIo6nnE8z/v+z7v8zwvfX19+Hw+xsbGuHTpEn19fQSDQQwGA+3t7YRCISwWCwaDgezs7BWvJVcVyg0X5GSldOkYtNp7I4RQZjeFhYXA4nuq1WqVj2TGa+T/d21tLcXFxdTW1uLz+YjFYvh8Pvx+PzMzM8Tjcbq6ujCZTGi1WkwmE5mZmeTk5CQ1eWxTiD4ajTI9Pa2IXqvVotPpKC4uVkoQU4mamhoef/xxdDodIyMjvPrqq/T09PD++++TSCQUwWZmZvLqq6/S1NTEli1bqKioUNb+NyJHiB0OB9PT0xvpzpqTkZFBbm4uTz75pOJvIpFY0RM/mTc1vV5PXl4e3/72t9m/fz8Wi4X+/n5efvllWltblQEoEonw/vvvKy2tMjIylCw9o9GYtOXnphA9fLpXmJzOmor59x6Ph56eHj7++GP8fj/nz5+/aWQ3KysLk8mE2WzGaDSSSCT4+OOPGR8fx+PxKD47HI5NIXiAxsZGtm3btiIHf2Jigvb2diYnJwkEAkkV/f79+3nkkUfYvXu30qK7q6uLjo6OFf9/nU6nNDUBmJmZwe12Mz4+jtvtTtry67aiF0KUAz8HSgAJeFGSpJ8IIQqBXwNVwHXgKUmSklLZIWflyWs8eb0rdxxJNeSOsOfOnWN8fPymgtdoNBgMBnJzczGbzej1eiRJ4vTp01y5coWhoSFlehwIBJidnU2pppHy+3A3zRs1Gg179uxh3759K6L2ExMTtLS0MDk5mfSim+bmZr7xjW9gNBoJBoNK8lRnZ6ey3ILFGcG+ffvYtm0bQgi8Xi+Dg4OMjY3h8XiSFpO4E0XEgWclSWoRQuQAV4QQ7wP/G/irJEk/EEJ8D/ge8O/rZ+rN8fl8nD9/nqamJpxOp9IG++jRo7S1tXHy5MmUWuP29PQwMTGBz+dTGkXeiJyAc+jQIRobGzEajYRCIVwuFy0tLZw9e5ZgMKj4FY/HU+YUGLng6dixY1itVlpbWxkfH6ejo+OWv6fX6zEajRw+fJgjR46siF84HA7OnTuHz+dbb/NvS09PD++88w6PPPIIJSUlPPPMM8zPz/Otb31rxZZrIpGgubkZg8GA2+3mzJkz/PnPf1YqJZN1Td5W9JIkTQATS18HhBDdQCnwZeDhpae9BnxIkkQfjUZxuVy4XC48Hg+5ublKJdfyraBUwe/33zYv3mQyUVBQoHTN0Wg0+P1+HA6HMjtIVYxGI4WFhUqziHA4TGZmJn19fUpvAPmz3BRE7mJcXFxMRUUFVqtV2ZoLhULKtDgVWn5NT09z7do1tm/fTk5ODjabjYyMDHbv3q08R86+M5vNhEIhRkZG6O/vp6urC7/fnz5puEKIKmAPcAEoWbohAEyyOP1PKk6nk4sXLyppnS+99BIOhyOlRvk7QQjBkSNH2LVrF8eOHcNkMuHz+Th58iS/+MUvGBoaSraJt+Tw4cN88Ytf5NFHH1UCkO3t7Xg8HmZnZ5mbm2Nqaop4PM7WrVvJy8vDYrFw8OBBDh48yO7duzEajQghGB8f509/+hMXLlzA7XZvWPnprWhra6Onp4e5uTnq6urYunUrW7ZsYceOHUpEXk4Ma2lpoauri9dffx2n06ncDJLJHYteCGEC3gS+K0nS7PLtBkmSJCHEqsoSQnwT+Ob9GnonLCwsEA6HlfW93+9f9/XfWvsnp6RWVlZSW1tLbm4uCwsLjIyM4HA4NrzB5b34F4lE8Pl8SgKK2WzGbrfz2c9+VpnljI2NEY1G2blzJ3l5eZjNZnbs2EFVVZVywm4wGGRqaorW1lacTue65K3fi3/RaJRYLEZfX59S2l1YWMj4+Pjy1yUej+NwOBgeHmZkZAS/358+ufdCiEwWBf+6JEm/XXp4SghhlSRpQghhBVadb0qS9CLw4tLrbMiQu3ydu97TqLX2z2g0UlBQwOHDhzl8+DBZWVmMjIzw5z//mY6ODjwez33bfDfci3+9vb2Ew2EsFguxWIydO3dis9n4zGc+g8/nw+fz4XA4iMViNDU1KWv5pb8BLOZeyHGAX/3qV4TD4XUZIe/1/ZMkiY8//nhFI8tbPTeVZpt3Er0XwCtAtyRJP172o7eBfwF+sPT5rXWx8B6Q8+5ra2vRarVp1VOtqamJhx9+mPr6egwGA729vVy7do0PPviA4eHhZJt3R8ixB4fDobT6Kikp4cCBA8rSKyMjg4WFBSVhZblootEoHo+HV155hc7OTsLhcEp1/1nO8uOl0oU7GekfAp4Brgoh2pYe+z6LYn9DCPENYAR4an1MvDvknnEGg4Gamhqi0Whaib6xsZHjx49jtVqRJImenh4uX77Mhx9+mDYX1uzsLIFAgNHRUXQ6HWNjY9TX19Pc3Kyc4JKXlwesPkKGw2FcLhevvvrqpj3cIpncSfT+DHCzucvn19ac+6OyspIjR46Qk5NDMBhUcrTTicHBQf7yl79w9OhRcnJyaGlpoaenJ9lm3TWSJPGnP/0Jo9FIPB6nt7eXrKwsZe/earVSUFBAc3OzEvSKxWJEIhFeeeUVLl26lNRKtM1M6mWu3Ady5ZkQgmg0qhyImE64XC56enrYtm0b+fn5jIyM4HK50maUX458+orcHefKlSuK6CsqKjCbzRQXFyv78dFolFAoREtLCy0tLSlXM7FZ2FSin5iYoLW1lbKyMoLBIKFQKOnbI3dLW1sb3d3dnDhxAo1G86nut+lILBbD4XDw+uuvK4/JeejLC0/kgJff7ycajaa936nKphK90+nkwoULSnqqnPGWTkSjUaLRKIFAINmmrCnxeDzp6bMqi2wq0Z85c2bFNkqy90NVVFKRTSV6SL09URWVVCM1+0mpqKisG6roVVQeMFTRq6g8YGz0mt4NzC99TgeK+bStlbd4frr5B5/2UfVv8/oHgNjooJcQ4rIkSfs29I/eI/diazr5B3dvr+pfanEv9qrTexWVBwxV9CoqDxjJEP2LSfib98q92JpO/sHd26v6l1rctb33taYXQjwO/ATQAi9LkvSDe34xFRWVDeGeRS+E0AJ9wKOAE7gEPC1JUtfamaeiorLW3M+W3QFgQJKkIQAhxAkWO+TeVPQb1S5rnXFLkmRe7Qeqf2nBA+ufzP2IvhQYXfa9Ezh445M2sjHmBrHiLGjVv7TjgfJvNdY9OScZjTE3EtW/9Gaz+7ca9yP6MaB82fdlS4+pbADyEdXl5eV87nOfQ6PRIEkSv//977l+/XqyzVNJYe5H9JeAWiFENYti/wrwv9bEKpVbIp/TV1RURGNjI9/5znfQarUkEglaW1tV0avcknsWvSRJcSHEvwKnWNyy+5kkSZ1rZpnKqggh+MIXvkB9fT2HDx+mtLSULVu2MD4+jsPhYH5+PtkmqqQ497WmlyTpj8Af18gWlVsgn2BrMpnYtWsXjY2NHDx4kJycHDIyMvD7/YyMjKTEWW8qqc2m65yzGcnMzCQvL48vf/nLPPHEEzQ2NlJUVERWVhbBYJChoSHeeustTpw4wcTExO1fUOWBJumil087KSoqUoJROp2O7OxstFotGRkZFBcXk0gkCAQCypHMqyH/zO/3Ew6HmZubS+vWWUIIsrOzKSwspK6uju3bt1NbW0thYSE6nY7r16/j9Xq5fv06Q0NDTE9Pp1Uj0MzMTOrq6jAajeTl5TEyMsLIyEhKnPe2mUm66HU6HTk5OTz88MNkZWURiUSw2WzYbDb0ej05OTk89thjhMNhrl69yuzs7E0PQZibm2Nubo7z588zOjpKb29v2rXAXo5Wq6WkpIRdu3bx9a9/nYaGBmpraxFCMDs7y29+8xtGR0fp7+9ncHAw7Tro5ubm8q1vfYu6ujr27dvHf//3f/PCCy/gdrvT6uaVbiRV9EIIdu/eTXV1NU888QQGg0E53ywnJ4fMzEx0Oh0mk4msrCzq6uoIh8M3PQRBbh9dU1OD1+tlYGAAr9fLyMgIU1NTTE1NMTc3lzb91IUQGAwGioqKqK+vp6ioaEWn39nZWaamphgcHGRmZibJ1t4dGRkZZGVlUV5ertzgLRYLNTU1hEIhVfTrSNJH+t27d7Nv3z6+8IUvYDKZbvq87OxscnJyPvW4PH2/4ehsYrEYw8PDjI6Ocvr0adrb24lEIkQikbQTfUFBATU1NWi12hUn8s7OzuLxeBgZGUm7ZYxWq0Wn0ym7DzqdDrPZTE1NDYODg3i93mSbuG7ceH7faiffyu/neixzkj7Sb9++nX379innmS0nFAoRDocZHx9fVagLCwtMT0+TmZlJcXGxclqtxWLBYDBQVlZGcXExVVVV5OXl4fP58Pv9aXHUVVFREVarlW9/+9vU1dWh0XxSBf2rX/2Kjo4O3nvvPbxeb9oJHhZnZfJ7azQaKSoqIjs7m9zcXDIykj4WrRtCCB566CEsFgtarRa9Xo/ZbMZut1NdXQ0sngjkcrloa2vjpz/96Zq/v0n/7wohkCQJr9eLVqtVzpOXJIm5uTmCwSCDg4Oril4+w1wWul6vV2YE2dnZGI1G5YIqKyvDbDavenNJRfLz87FYLOzevRuLxUIkEiEUChEMBmltbeXKlSs4nc60nQbLszG3243ZvFgfIi/ltFptkq1bO3Q6nRKs1mq1ZGZmUl9fT1VVFRkZGRiNRmw2G9u2baOhoQFYnMU5nU4yMjKwWq3Mzs6u6elASRV9IpHghRde4OTJk1RUVBCNRldsOcnr9+np6VWnOZIksbCwgBBCmS4aDAZ++MMf8pnPfAaz2ayMkPKJtp2dnUxNTW2Yj/eCEIJ9+/bR1NREeXk5sViMc+fO8d577/GXv/wFh8NBIBBIW8HLhEIh3n33XTweD/v37yc/P5/Kykr0en2yTVsTdDodO3fupKCggLKyMsrLyykvL+fIkSNYLBaEEGg0GuVmIKPVarHZbDz66KNUVFTws5/9jJ///OdrZlfSR3qXy8X8/DyhUIhoNIrH4wE+GQnkteudTHEKCgowGAxkZGSsmCJKksT8/Dxutzvlo/llZWVUVFTQ2NhIXV2dMgtqa2ujp6eHkZERZmdnU96PO2FhYYHJyUk8Hg+SJJGbm0tZWRkmkwmdTpc2p9bqdDpyc3Ox2+3odDrl2tPpdNTX15OXl0dJSQlWq5WSkhJMJhMajQaTybTqOh4WA50GgwGbzbZqLOt+SLrovV4vXq8Xp9N5369VWlpKY2MjlZWVFBUVAZ/cPHp7ezl16hRud2p3N37sscf4+te/jt1ux2Qy4Xa7uXr1Ki+//DIul0u5KW4G4vE4Q0ND2O12YHE2ZrVaqaysZGhoCLfbnfL79RqNhvz8fPbu3ctzzz1HUVERBQUFys9MJhOZmZkrTueVd1vq6+tXjPDLkesrsrOz1zzGkXTR3y8ajYYtW7Yo0+Hdu3dTUlKi/Hx0dJR33nmH06dPMzY2lrJpqkajkbKyMrZu3UpFRQUmkwlJkujr6+P69etEo1El3rHZkEc4ee1bUVGB3W7H5/Ol9GhvsVgoLi7m8ccfp7a2Frvdjl6vX7E80el0aLVahBBcvHiRixcvMjExQTQapaysTFmSymt6eaYKi8FOl8tFMBhcU7vTWvRCCDIzM7FYLHzxi19kz5497N69W7l7SpKEw+Hg1VdfZWxsjMnJySRbfHNMJhMNDQ3Y7XZsNhsAgUBAEX0sFrup6G/cAgLSKqIvhFixvi0vL6empoaOjo6UFr3NZqOmpobjx49jtVopLi7+1HPkA1UTiQQXLlzg+eefZ3Z2lng8Tn5+vpKHcezYMUpLS8nKylJEH4lElNyStSRtRW+32zGbzRw4cIC6ujqOHj1Kbm4umZmZSJKE3+/nzTffpL29nZGRkZStPhNCoNfrKS4uZvv27UokGxYDnfPz8/j9ftxu96oCKCkp4dChQ5hMJgwGA7CYmfjWW2+t+QixXiw/aVgOysqjY6qi0Wg4cuQI+/fvV+IQy1lYWCAQCPD2228zPT2N0+mkpaUFp9NJPB5HkiSCwSB2u50jR47Q0NBAcXExmZmZJBIJvF4vLS0t/OhHP2JwcHBNbU870cv5+BUVFVRVVdHc3IzdbqesrEy5SBYWFohGo3R3dzMwMMDc3FxKB74yMjLQ6/WUlJRgNBqVbUz5wggGg4TDYUUYer1e2dYym81s376dgoIC8vLyAJidnaW9vR2Xy4XX6yWRSKTFyL9c+MvzElKNjIwMdDodlZWV1NTUYDQaV8wuZdG6XC5aW1txOp0MDQ0xOTm54kYsX5M2m42CggKysrKAxViHz+djfHyc9vZ2daQ3m83YbDaeffZZDhw4oKyBboyCLiws4Ha7mZmZSfmLfmFhAYPBQENDA2azWfElFovR2dnJ4ODgCkE8/PDDlJeXI0kSFRUVPPHEEytEL0kSx48f58yZM3z3u9/F7/en7EwnHSktLcVut9PY2PipYNzc3Bx+v58XXniB1tZWLl26RCgUIh6Pr7o80+l0bNmyBaPRqDwWiUQ4f/48ra2tyvW7lqSd6PPy8pQob3Fx8apTQCEEWVlZ7Ny5U9n+mZ2dJRAI4PP5CIfDBIPBlLgRyNHfoqIiZaSHTzLW5ubmlOCjTqdTctSrqqooKCjAYrFgNpsxGo3o9XqlQs1isWC329m3bx8DAwMMDQ0RjUZTPhqeDpjNZhoaGigoKFCi8vF4nLm5ORwOBw6Hg56eHgYHB5X1+3Lk2Wp+fj4lJSXK+wcwPz+P1+tldHRUyU/ZdBl5d4ucZFNYWHjTNZ9Wq6WgoIB/+7d/w+/309/fT09PD319fZw9e5bx8fGbZvltNJmZmTQ0NLBr1y527NihtL3y+Xy4XC78fr8yJSwsLMRisbBt2zZ27tzJZz/7WeWii8VihMNhPB4P8XiciooKqqur+d73vsdvfvMb3nzzTaanp1N29yKd2LZtG08++aQSfYfFEb67u5sPP/yQv//977S2tt50e1Wv12MymTh8+DB79+5l586dZGdnAyg3jZaWFoaHh9dlYEo70bvdbrq7u9mxYweJREJJrZXXQ8uRg2RlZWVkZ2dTXl5OXV0dbrebjz76iLGxMbq7u4lGo0lZ88v7sPn5+UqiRjQaJRKJ0NfXx+DgIC6Xi3A4TFFRkXJzkCsTFxYW8Hq9TExMcP36da5fv048HsdgMHD8+HElt/tme8GphhzLSHXGx8dpaWmhoKBAuXaGh4f5/e9/T29vLwMDA7cMotbV1VFZWcmTTz5JVVUV2dnZhMNhZmZmeP/99+nq6qK7u3vdKifTTvQul4vu7m56e3sRQqDT6TAajSvW9cs/Z2VlYbVasVqtwOJ6NxAIYDKZuHr1KmNjYwQCgaSIXk7aKCwsVLKuIpEIs7Oz9PX10dnZqUzxysrKaGho4KGHHmLXrl1s2bKFmZkZpqenuXr1KmfPnuXcuXOYTCasViv/9E//hF6vJysrK+Vz2eUtu3RhbGyMy5cvY7fblRqRtrY2Tp48yezs7C3jJxqNhrq6Ovbs2cMTTzyhvO8+n4/JyUn++te/cvHiRTwez7otxdJS9IFAgOeff57c3FxKS0sxGo3k5ORgMBjQ6/Vs374di8XCoUOHlGmTjBACo9HI0aNHaWpqoq6ujj/+8Y+cOnVqw0eZyspKqqur+drXvkZ5eTlCCPr7+2lpaeHkyZP09/eTmZmJ3W7nqaeeorGxkZ07d2I0GvH7/Vy4cIGuri7eeOMNZanypS99iZ07d5KRkYHb7aa9vZ3BwUGmp6dTds97+ZZdOjA6OsrMzAwDAwPo9Xri8TiBQACv13vLJaOcYn3s2DGampqUJJ5EIkFvby9nz55leHgYn8+3rrGXtBN9OBwmHA7j8/nQaDSMjIwolXUGgwGj0UgkEqGiooKtW7eSm5urbHHJI55Wq1X2VhOJBN3d3eTm5jI/P79h63whhFJJV19fT2FhIQDT09N0dnbS19fH2NgYdrudqqoqGhsb2bp1KyUlJUxNTeH1eunr66Onp4f+/n5sNhvl5eU0NDTQ0NBAMBjE5XIxMDCgLBFSHVn88Xg8pbdY5+fnmZ+fv+vCreLiYrZt20ZtbS1VVVVotVpisRh+v5/R0VF6enrw+Xzr7nvaiX45iUQCl8ul7OvK08QrV65gMploaWmhvr6eRx99FJvNtiI9FxZ3Avbs2cPU1BSSJPHuu+8yOjp6k7+29litVqXEUqalpYX/+Z//IRgMkp+fz/e//33q6urYtWsXOp2ORCLBK6+8wrlz57hy5QoZGRnU1tZy/Phxnn76aUwmE7FYjHfeeYfW1lZee+21tEnSkRkfH1fiE5uJxx57jOeee25F+fDw8DCvvfYa58+f5/Llyxtyc05r0cMnnUWW74HKHXJ6e3sJBoNkZWXR1NSk1GvLgS05JiBXQa0WDFxPsrOz0ev1SgDP5/Ph9XoJBALo9Xry8vKw2Wxs2bIFvV6P2+1menqavr4+hoeHCYfDSt1BbW0tZrMZp9PJ5OQkra2tdHd34/P50mrqDIsjaSAQ2DTbi0ajkdLSUsrKyigqKlrxfgSDQYaHh5mamtqwXIq0F/3NiEQinD17Fo1Gw+9+9zu+9rWvodVq2bFjh1IFJSMHv5Ileo1Gg9/v5+LFi4yNLZ4MZrVaqa6uxmKxkJ+fjxCC1tZWTp06xZkzZ3A6nZSVlbF//36effZZparw1KlTXL58mRMnTqRlN2BJkpQA5WYRfWlpKc888wxNTU1KwFJ+X+bm5rh27Roul2vD7Nm0opdJJBLKuml8fJyamppPPScUCuHxeJLalOJmwazljxsMBkpKSvjKV77CwsKCsm8fiUT46KOP6O/v58KFC4yOjhKJRNJO8DKy3elq/3I0Gg16vR6bzaZUTkqSRDgc5uzZs1y6dAm3272hLdzSSvQ3azhwOyRJYnZ2lomJiVWFHQwGcbvdG76GvNnFLccmbvRXnpEcPXp0xWEXk5OT/P3vf+eNN94gGAwmLe9A5dPILbGsVusK0QeDQT744AOuXr2Kx+PZ0LLp24peCFEO/BwoASTgRUmSfiKEKAR+DVQB14GnJEla82wCIYSy5t67d6+SStvZ2XnHyQsajYbCwkKqq6s/1YpJDgb29fVteH56T08PQgj++Z//mfz8fA4dOkRPTw/Xrl2jurpaqauXs77sdjtbtmxRmkcGg0HGx8c5ceKEsre7sLCQ8rUGt0PufJROe/c3kpmZiV6v58CBA+zfv5+9e/cqqbYdHR0MDQ3xt7/9jbGxsQ1fxtxJKVMceFaSpO3AIeD/CCG2A98D/ipJUi3w16Xv1xQ50Cbnke/du5fq6moKCgruqJuIRqMhKytLyW2/sTFmIpEgGo0q/eM3ch9bkiR8Ph9ut5uFhQWlBXRFRQV1dXXY7XbKy8tXdE7JycnBarUqyUjhcBi3201nZyeTk5NKe+90XgvLCVVygDMdkQcqOWW6pqZGOcFpZmaGwcFBurq6cDqdSquwjeS2ypEkaQKYWPo6IIToBkqBLwMPLz3tNeBD4N/X0rjc3FysViv/+Z//SVVVFTU1NfzXf/0Xv/71r/H7/bf8XbmQpaqqiscee4zPfe5zNDc3r0hJDYVCyv5oR0fHhk+J5f1ouQGoTqfjS1/6Ev/wD/+AVqtV2i3dWGYaiUSYm5vj9OnTXLp0ibNnz6Zs4s29sH37dgKBgFJ7nk7IWZZf/epX2bNnD4888gi5ubkIITh37hwffvghf/jDH5Reh8m4Qd/Vml4IUQXsAS4AJUs3BIBJFqf/q/3ON4Fv3otxVVVV2O127HY7VquV3NxcsrOz0Wg0ysfyf5q8X19SUkJubi4NDQ1UVFSwZ88epSsJfFJ66/P56OjowOl03rNo7sc/OZZw9epVZmZmKCsrUxpqyHbCosjlQKOcmOTz+bh06RJ9fX0rau3Xmvvx73ZIkrSimlCv1yu16st7yq0na+1fZmYmBoOBqqoq6urqKCoqIiMjQxlg2tvbmZiYSOpW6h2LXghhAt4EvitJ0uwNQSZJCLGqB5IkvQi8uPQad+ylRqPh6NGjHDp0iPr6emUtbjKZKCkpIRaLIUnSisCc3Ab785//PLt27eLpp59WWhLdeAGFw2EGBwd56aWX7qszyb36B4tJKF6vl5/+9Kc0NDTw5JNPUl1dTWVl5Yrnud1uPvjgA+VorsHBQdxuNy0tLesepb8f/25HIpFQugI5HA4sFouy9bhRrLV/BoOB4uJimpqa2L9/P7A4o5yYmODKlSv84Q9/SHq85Y5EL4TIZFHwr0uS9Nulh6eEEFZJkiaEEFZgei0NkySJyclJRkdHV0Q29+/fr6Tfzs7OrqiLl6vtHnroISoqKsjLyyMrK2vF3qhc9/zuu+9y9erVpJ8DF4/H6e/vZ2ZmBp/PR35+Pvn5+Yq9sNgrb3h4mEAgQDAYZGZmhvn5eeXGl84sLCwQi8VW9ACUO+Km00k38nHiDQ0NbNu2jYKCAuWmNjw8zNtvv01bW1tKvF93Er0XwCtAtyRJP172o7eBfwF+sPT5rbU2bnJyEofDsWKt3dzcTHNzM0NDQ/h8Pubn55UpfnZ2NtnZ2djt9pueexeJRJiZmeGtt96iv7+f69evr7Wd/m5IAAAE1ElEQVTZd0U8HlfKYi9fvpxUW5JBIpFQcink99FqteLz+VK+OnA5Op2O4uJiGhoaOHz4sCJ6r9dLd3c3v/zlL1PmkNE7uZU+BDwDXBVCtC099n0Wxf6GEOIbwAjw1FoaJkkSAwMDxGIxTp8+TXV1Nbt27VJ+brVaMZvNKwI98jpfbhApk0gklBpluZz23LlzNz3yWmVjCQaDDA0NKfvZ8owtnaL3VquVp59+mr1799LY2EhRURHhcJj33nuPtra2lKpyvJPo/RngZv/9z6+tOSvx+/1MTEzQ3d3NwsICNptN2cOVp4LL1+vyHrUc2JJ7xUejUQYGBmhra+Py5cuMj48zPT2tJrCkCOFwmLGxMcrLy5W6iXR6bzIyMsjLy6OmpobKykpsNhuhUAi/38/Q0BCjo6OEQqGUmNpDimfkeTwefD4fP/7xj7HZbBw+fJjKykrKysqYmpoikUhw8OBBpWbe4/EoU6hIJEJHRwczMzNMTEzgdDqVKL28jlRJDZxOJ6+99ppSaHTmzBn6+vrS4qw+uTOz3NdBp9MhSRLnz5+np6eHCxcuMD4+njKChxQXvbzek4Xc1dXFzMwM4+PjyvFUsVhMSbjx+/3KlD0Wi9Hf308gEMDtduP1etXpfIoiH1La2dlJXl6eso2aDjdmuTdDeXk5JSUl6HQ6QqEQQ0ND9Pb2Mj09TSAQSLaZK0hp0cvE43FcLpdSO7+c2+Xjp9IdVmV1ZNH/9re/5Xe/+11aFdzIu0VNTU00NzcTCASYmprio48+4vz584yMjKRcglFaiH45N14I6XBhqNwZ6dY2CxbjSHKOgdzu7NKlSwwMDCgHjaQaaSd6FZVUQt5yLS0tJR6P09fXx3vvvcfQ0FDKbNHdiCp6FZX7QD6FaGxsjNbWViYmJpiamrptbUgyUUWvonIfyAeT+Hy+pCd63SkbLXo3ML/0OR0o5tO2Vq72xCXSzT/4tI+qf5vXPwDERgdOhBCXJUnat6F/9B65F1vTyT+4e3tV/1KLe7E3dc8DVlFRWRdU0auoPGAkQ/QvJuFv3iv3Yms6+Qd3b6/qX2px1/Zu+JpeRUUluajTexWVBwxV9CoqDxgbJnohxONCiF4hxIAQYs3bZd8vQohyIcTfhBBdQohOIcT/XXr8P4QQY0KItqWPf7zJ729q/5aem7I+qv7d3j8FuchhPT8ALTAI2AEd0A5s34i/fRc2WoG9S1/nAH3AduA/gOceZP/SwUfVvzt/rY0a6Q8AA5IkDUmSFAVOsNg3P2WQJGlCkqSWpa8DgNzf/07Y7P5Bivuo+nfnbJToS4HlB787uUeDN4Ib+vsD/KsQokMI8TMhRMEqv7LZ/YM08lH179aogbwbuLG/P/A8sBVoYvGknx8l0bz7RvVP9W+jRD8GlC/7vmzpsZRitf7+kiRNSZK0IElSAniJxWngjWx2/yANfFT9u6V/Chsl+ktArRCiWgihA77CYt/8lOFm/f2XDvKQOQZcW+XXN7t/kOI+qv4Bt/bvEzYw+viPLEYcB4H/l+xo6Cr2HWHxKO4OoG3p4x+BXwBXlx5/G7A+iP6luo+qf7f3T/5Q03BVVB4w1ECeisoDhip6FZUHDFX0KioPGKroVVQeMFTRq6g8YKiiV1F5wFBFr6LygPH/ARRjqcM2Xu45AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "u-_cXLqJiEgq", + "outputId": "0d69795b-a262-458f-f5e8-885005740045", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "# Model building\n", + "NUM_CLASSES = 10\n", + "model = tf.keras.Sequential([\n", + " tf.keras.layers.Flatten(input_shape=(28, 28)),\n", + " tf.keras.layers.Dense(256, activation='relu'),\n", + " tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')\n", + "])\n", + "\n", + "# Compiling the model with the high-level keras\n", + "model.compile(optimizer='adam',\n", + " loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),\n", + " metrics=['accuracy'])\n", + "\n", + "# Model training\n", + "model.fit(x_train, y_train, epochs=10)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.2459 - accuracy: 0.9304\n", + "Epoch 2/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.1022 - accuracy: 0.9690\n", + "Epoch 3/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0701 - accuracy: 0.9789\n", + "Epoch 4/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0516 - accuracy: 0.9843\n", + "Epoch 5/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0389 - accuracy: 0.9880\n", + "Epoch 6/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0300 - accuracy: 0.9903\n", + "Epoch 7/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0227 - accuracy: 0.9930\n", + "Epoch 8/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0191 - accuracy: 0.9941\n", + "Epoch 9/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0138 - accuracy: 0.9958\n", + "Epoch 10/10\n", + "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0140 - accuracy: 0.9956\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "druwNSZQiGJi", + "outputId": "70890649-f7d5-4472-e4af-b7c4a34adf10", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "eval_loss, eval_acc = model.evaluate(x_test, y_test, verbose=1)\n", + "print('Eval accuracy percentage: {:.2f}'.format(eval_acc * 100))\n" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "313/313 [==============================] - 0s 1ms/step - loss: 0.0882 - accuracy: 0.9781\n", + "Eval accuracy percentage: 97.81\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "q5aSajJaiIaM" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/codes/python/0-welcome/README.rst b/codes/python/0-welcome/README.rst deleted file mode 100644 index 1ede2ab..0000000 --- a/codes/python/0-welcome/README.rst +++ /dev/null @@ -1,70 +0,0 @@ - -=========================== -Welcome to TensorFlow World -=========================== - -This document is dedicated to explain how to run the python script for this tutorial. - ---------------------------- -Test TensorFlow Environment ---------------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - -.. code:: shell - - cd code/ - python TensorFlow_Test.py - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] --log_dir='absolute/path/to/log_dir' - - -As an example the code can be executed as follows: - -.. code:: shell - - python 1-welcome.py --log_dir='~/log_dir' - -The ``--log_dir`` flag is to provide the address which the event files (for visualizing in Tensorboard) will be saved. The flag of ``--log_dir`` is not required because its default value is available in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_string( - 'log_dir', os.path.dirname(os.path.abspath(__file__)) + '/logs', - 'Directory where event logs are written to.') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - ----------------------------- -How to run the Tensorboard? ----------------------------- -.. _Google’s words: https://www.tensorflow.org/get_started/summaries_and_tensorboard -TensorBoard is the graph visualization tools provided by TensorFlow. Using `Google’s words`_: “The computations you'll use TensorFlow for - like training a massive deep neural network - can be complex and confusing. To make it easier to understand, -debug, and optimize TensorFlow programs, we've included a suite of visualization tools called -TensorBoard.” - -The Tensorboard can be run as follows in the terminal: - -.. code:: shell - - tensorboard --logdir="absolute/path/to/log_dir" - - - - - - diff --git a/codes/python/0-welcome/code/0-welcome.py b/codes/python/0-welcome/code/0-welcome.py deleted file mode 100644 index 00d0a08..0000000 --- a/codes/python/0-welcome/code/0-welcome.py +++ /dev/null @@ -1,35 +0,0 @@ -##################################################### -########## Welcome to TensorFlow World ############## -##################################################### - -# The tutorials in this section is just a start for going into TensorFlow world. -# The TensorFlow flags are used for having a more user friendly environment. - -from __future__ import print_function -import tensorflow as tf -import os - - -###################################### -######### Necessary Flags ############ -# #################################### - -log_dir = os.path.dirname(os.path.abspath(__file__)) + '/logs' - -################################################ -################# handling errors!############## -################################################ - -# Defining some sentence! -welcome = tf.constant('Welcome to TensorFlow world!') - -# Run the session -with tf.Session() as sess: - writer = tf.summary.FileWriter(os.path.expanduser(log_dir), sess.graph) - print("output: ", sess.run(welcome)) - -# Closing the writer. -writer.close() -sess.close() - - diff --git a/codes/python/0-welcome/code/TensorFlow_Test.py b/codes/python/0-welcome/code/TensorFlow_Test.py deleted file mode 100644 index 41915e0..0000000 --- a/codes/python/0-welcome/code/TensorFlow_Test.py +++ /dev/null @@ -1,14 +0,0 @@ -# This code has been provided by TensorFlow. -# Please refer to: https://www.tensorflow.org/api_guides/python/test - -import tensorflow as tf - -class SquareTest(tf.test.TestCase): - - def testSquare(self): - with self.test_session(): - x = tf.square([2, 3]) - self.assertAllEqual(x.eval(), [4, 9]) - -if __name__ == '__main__': - tf.test.main() diff --git a/codes/python/0-welcome/welcome.py b/codes/python/0-welcome/welcome.py new file mode 100644 index 0000000..233671e --- /dev/null +++ b/codes/python/0-welcome/welcome.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +"""welcome.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/0-welcome/welcome.ipynb +""" + +# Import tensorflow +import tensorflow as tf + +# Check version +print("Tensorflow version: ", tf.__version__) + +# Test TensorFlow for cuda availibility +print("Tensorflow is built with CUDA: ", tf.test.is_built_with_cuda()) + +# Check devices +print("All devices: ", tf.config.list_physical_devices(device_type=None)) +print("GPU devices: ", tf.config.list_physical_devices(device_type='GPU')) + +# Print a randomly generated tensor +# tf.math.reduce_sum: https://www.tensorflow.org/api_docs/python/tf/math/reduce_sum +# tf.random.normal: https://www.tensorflow.org/api_docs/python/tf/random/normal +print(tf.math.reduce_sum(tf.random.normal([1, 10]))) + diff --git a/codes/python/1-basics/automatic_differentiation.py b/codes/python/1-basics/automatic_differentiation.py new file mode 100644 index 0000000..8b4a47b --- /dev/null +++ b/codes/python/1-basics/automatic_differentiation.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +"""automatic_differentiation.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1ibfKtpxC_hIhZlPbefCoqpAS7jTdyiFw + +## Automatic Differentiation + +The [automatic differentiation](https://en.wikipedia.org/wiki/Automatic_differentiation) is to calculate derivative of functions which is useful for algorithms such as [stochastic gradient descent](https://en.wikipedia.org/wiki/Stochastic_gradient_descent). + +It's is particularly useful when we implement neural networks and desire to calculate differentiation of the output with respect to an input that are connected with a **chain of functions**: + +$L(x)=f(g(h(x)))$ + +The differentiation is as below: + +$\frac{dL}{dx} = \frac{df}{dg}\frac{dg}{dh}\frac{dh}{dx}$ + +The above rule is called the [chain rule](https://en.wikipedia.org/wiki/Chain_rule). + +So the [gradients](https://en.wikipedia.org/wiki/Gradient) needs to be calculated for ultimate derivative calculations. + +Let's see how TensorFlow does it! +""" + +# Loading necessary libraries +import tensorflow as tf +import numpy as np + +"""### Introduction + +Some general information are useful to be addressed here: + +* To compute gradients, TensorFlow uses [tf.GradientTape](https://www.tensorflow.org/api_docs/python/tf/GradientTape) which records the operation for later being used for gradient computation. + +Let's have three similar example: +""" + +x = tf.constant([2.0]) + +with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad: + f = x ** 2 + +# Print gradient output +print('The gradient df/dx where f=(x^2):\n', grad.gradient(f, x)) + +x = tf.constant([2.0]) +x = tf.Variable(x) + +with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad: + f = x ** 2 + +# Print gradient output +print('The gradient df/dx where f=(x^2):\n', grad.gradient(f, x)) + +x = tf.constant([2.0]) + +with tf.GradientTape(persistent=False, watch_accessed_variables=True) as grad: + grad.watch(x) + f = x ** 2 + +# Print gradient output +print('The gradient df/dx where f=(x^2):\n', grad.gradient(f, x)) + +"""What's the difference between above examples? + +1. Using tf.Variable on top of the tensor to transform it into a [tf.Variable](https://www.tensorflow.org/guide/variable). +2. Using [.watch()](https://www.tensorflow.org/api_docs/python/tf/GradientTape#watch) operation. + +The tf.Variable turn tensor to a variable tensor which is the recommended approach by TensorFlow. The .watch() method ensures the variable is being tracked by the tf.GradientTape(). + +**You can see if we use neither, we get NONE as the gradient which means gradients were not being tracked!** + +NOTE: In general it's always safe to work with variable as well as using .watch() to ensure tracking gradients. + +We used default arguments as: + +1. **persistent=False**: It says, any variable that is hold with tf.GradientTape(), after one calling of gradient will be released. +2. **watch_accessed_variables=True**: By default watching variables. So if we have a variable, we do not need to use .watch() with this default setting. + +Let's have an example with **persistent=True**: +""" + +x = tf.constant([2.0]) +x = tf.Variable(x) + +# For practice, turn persistent to False to see what happens. +with tf.GradientTape(persistent=True, watch_accessed_variables=True) as grad: + f = x ** 2 + h = x ** 3 + +# Print gradient output +print('The gradient df/dx where f=(x^2):\n', grad.gradient(f, x)) +print('The gradient dh/dx where h=(x^3):\n', grad.gradient(h, x)) \ No newline at end of file diff --git a/codes/python/1-basics/basic_math_operations/README.rst b/codes/python/1-basics/basic_math_operations/README.rst deleted file mode 100644 index 9141fe1..0000000 --- a/codes/python/1-basics/basic_math_operations/README.rst +++ /dev/null @@ -1,60 +0,0 @@ - -=========================== -Welcome to TensorFlow World -=========================== - -This document is dedicated to explain how to run the python script for this tutorial. - - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] --log_dir='absolute/path/to/log_dir' - - -As an example the code can be executed as follows: - -.. code:: shell - - python 1-welcome.py --log_dir='~/log_dir' - -The ``--log_dir`` flag is to provide the address which the event files (for visualizing in Tensorboard) will be saved. The flag of ``--log_dir`` is not required because its default value is available in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_string( - 'log_dir', os.path.dirname(os.path.abspath(__file__)) + '/logs', - 'Directory where event logs are written to.') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - ----------------------------- -How to run the Tensorboard? ----------------------------- -.. _Google’s words: https://www.tensorflow.org/get_started/summaries_and_tensorboard -TensorBoard is the graph visualization tools provided by TensorFlow. Using `Google’s words`_: “The computations you'll use TensorFlow for - like training a massive deep neural network - can be complex and confusing. To make it easier to understand, -debug, and optimize TensorFlow programs, we've included a suite of visualization tools called -TensorBoard.” - -The Tensorboard can be run as follows in the terminal: - -.. code:: shell - - tensorboard --logdir="absolute/path/to/log_dir" - - - - - - diff --git a/codes/python/1-basics/basic_math_operations/code/basic_math_operation.py b/codes/python/1-basics/basic_math_operations/code/basic_math_operation.py deleted file mode 100644 index d581ecd..0000000 --- a/codes/python/1-basics/basic_math_operations/code/basic_math_operation.py +++ /dev/null @@ -1,55 +0,0 @@ -##################################################### -########## Welcome to TensorFlow World ############## -##################################################### - -# The tutorials in this section is just a start for math operations. -# The TensorFlow flags are used for having a more user friendly environment. - -from __future__ import print_function -import tensorflow as tf -import os - - -###################################### -######### Necessary Flags ############ -# #################################### - -# The default path for saving event files is the same folder of this python file. -tf.app.flags.DEFINE_string( - 'log_dir', os.path.dirname(os.path.abspath(__file__)) + '/logs', - 'Directory where event logs are written to.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ - -# The user is prompted to input an absolute path. -# os.path.expanduser is leveraged to transform '~' sign to the corresponding path indicator. -# Example: '~/logs' equals to '/home/username/logs' -if not os.path.isabs(os.path.expanduser(FLAGS.log_dir)): - raise ValueError('You must assign absolute path for --log_dir') - - -# Defining some constant values -a = tf.constant(5.0, name="a") -b = tf.constant(10.0, name="b") - -# Some basic operations -x = tf.add(a, b, name="add") -y = tf.div(a, b, name="divide") - -# Run the session -with tf.Session() as sess: - writer = tf.summary.FileWriter(os.path.expanduser(FLAGS.log_dir), sess.graph) - print("a =", sess.run(a)) - print("b =", sess.run(b)) - print("a + b =", sess.run(x)) - print("a/b =", sess.run(y)) - -# Closing the writer. -writer.close() -sess.close() - diff --git a/codes/python/1-basics/graph.py b/codes/python/1-basics/graph.py new file mode 100644 index 0000000..16f134d --- /dev/null +++ b/codes/python/1-basics/graph.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +"""graph.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1ibfKtpxC_hIhZlPbefCoqpAS7jTdyiFw + +## Intorduction to TensorFlow graphs. + +For long, the big complaint about TensorFlow was *It's not flexible for debugging!* With the advent of TensorFlow 2.0, that changed drastically. + +Now TensorFlow allows you to run the oprations **eagerly**. That means, you can run TensorFlow operations by Python and return the outputs to Python again. That creates a lot of flexibility, especially for debugging. + +But there are some merits in NOT using the eagerly option. You can run operations on TensorFlow graphs that in some scenarios leads to significant speed up. According to TensorFlow: + +> Graphs are data structures that contain a set of [tf.Operation](https://www.tensorflow.org/api_docs/python/tf/Operation) objects, which represent units of computation; and [tf.Tensor](https://www.tensorflow.org/api_docs/python/tf/Tensor) objects, which represent the units of data that flow between operations. They are defined in a [tf.Graph](https://www.tensorflow.org/api_docs/python/tf/Graph) context. Since these graphs are data structures, they can be saved, run, and restored all without the original Python code. + +Let's have some example for transforming functions to graphs! +""" + +# Loading necessary libraries +import tensorflow as tf +import numpy as np +import timeit + +"""### Operation + +We can take a Python function on graph with [@tf.function](https://www.tensorflow.org/api_docs/python/tf/function) decorator. +""" + +@tf.function +def multiply_fn(a, b): + return tf.matmul(a, b) + +# Create some tensors +a = tf.constant([[0.5, 0.5]]) +b = tf.constant([[10.0], [1.0]]) + +# Check function +print('Multiple a of shape {} with b of shape {}'.format(a.shape, b.shape)) +print(multiply_fn(a, b).numpy()) + +# Function without neing take to graph, i.e., with eager execution. +def add_fn(a, b): + return tf.add(a, b) + +# Create some tensors +a = tf.constant([[0.5, 0.5]]) +b = tf.constant([[10.0], [1.0]]) + +# Check function +print('Add a of shape {} with b of shape {}'.format(a.shape, b.shape)) +print(add_fn(a, b).numpy()) + +"""### Speedup + +Now let's define a custom model and run it: + +1. eagerly +2. on graph + +To check how to define models refer to: https://www.tensorflow.org/api_docs/python/tf/keras/Model +""" + +class ModelShallow(tf.keras.Model): + + def __init__(self): + super(ModelShallow, self).__init__() + self.dense1 = tf.keras.layers.Dense(10, activation=tf.nn.relu) + self.dense2 = tf.keras.layers.Dense(20, activation=tf.nn.relu) + self.dense3 = tf.keras.layers.Dense(30, activation=tf.nn.softmax) + self.dropout = tf.keras.layers.Dropout(0.5) + + def call(self, inputs, training=False): + x = self.dense1(inputs) + if training: + x = self.dropout(x, training=training) + x = self.dense2(x) + out = self.dense3(x) + return out + +class ModelDeep(tf.keras.Model): + + def __init__(self): + super(ModelDeep, self).__init__() + self.dense1 = tf.keras.layers.Dense(1000, activation=tf.nn.relu) + self.dense2 = tf.keras.layers.Dense(2000, activation=tf.nn.relu) + self.dense3 = tf.keras.layers.Dense(3000, activation=tf.nn.softmax) + self.dropout = tf.keras.layers.Dropout(0.5) + + def call(self, inputs, training=False): + x = self.dense1(inputs) + if training: + x = self.dropout(x, training=training) + x = self.dense2(x) + out = self.dense3(x) + return out + +# Create the model with eager esxecution by default +model_shallow_with_eager = ModelShallow() + +# Take model to graph. +# NOTE: Instead of using decorators, we can ditectly operate tf.function on the model. +model_shallow_on_graph = tf.function(ModelShallow()) + +# Model deep +model_deep_with_eager = ModelDeep() +model_deep_on_graph = tf.function(ModelDeep()) + +# sample input +sample_input = tf.random.uniform([60, 28, 28]) + +# Check time for shallow model +print("Shallow Model - Eager execution time:", timeit.timeit(lambda: model_shallow_with_eager(sample_input), number=1000)) +print("Shallow Model - Graph-based execution time:", timeit.timeit(lambda: model_shallow_on_graph(sample_input), number=1000)) + +# Check time for deep model +print("Deep Model - Eager execution time:", timeit.timeit(lambda: model_deep_with_eager(sample_input), number=100)) +print("Deep Model - Graph-based execution time:", timeit.timeit(lambda: model_deep_on_graph(sample_input), number=100)) + diff --git a/codes/python/1-basics/models.py b/codes/python/1-basics/models.py new file mode 100644 index 0000000..cb5eccc --- /dev/null +++ b/codes/python/1-basics/models.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +"""models.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1ibfKtpxC_hIhZlPbefCoqpAS7jTdyiFw + +## Models in TensorFlow + +In TensorFlow, you always need to define models to train a machine learning model. A model consists of layers that conduct operations and can be reused in the model's structure. Let's get started. +""" + +# Loading necessary libraries +import tensorflow as tf +import numpy as np + +"""### Layer + +In TensorFlow, we can implement layers using the high-level [tf.Module](https://www.tensorflow.org/api_docs/python/tf/Module) class. +""" + +class SampleLayer(tf.Module): + """ + We define the layer with a class that inherited the structure of tf.Module class. + """ + def __init__(self, name=None): + super().__init__(name=name) + + # Define a trainable variable + self.x = tf.Variable([[1.0, 3.0]], name="x_trainable") + + # Define a non-trainable variable + self.y = tf.Variable(2.0, trainable=False, name="y_non_trainable") + def __call__(self, input): + return self.x * input + self.y + +# Initialize the layer +# Here, __call__ function will not be called +simple_layer = SampleLayer(name="my_layer") + +# Call the layer and extract some information +output = simple_layer(tf.constant(1.0)) +print("Output:", output) +print("Layer name:", simple_layer.name) +print("Trainable variables:", simple_layer.trainable_variables) + +"""### Model + +Now. let's define a model. A model consists of multiple layers. +""" + +class Model(tf.Module): + def __init__(self, name=None): + super().__init__(name=name) + + self.layer_1 = SampleLayer('layer_1') + self.layer_2 = SampleLayer('layer_2') + + def __call__(self, x): + x = self.layer_1(x) + output = self.layer_2(x) + return output + +# Initialize the model +custom_model = Model(name="model_name") + +# Call the model +# Call the layer and extract some information +output = custom_model(tf.constant(1.0)) +print("Output:", output) +print("Model name:", custom_model.name) +print("Trainable variables:", custom_model.trainable_variables) + +"""### Keras Models + +Keras is a high-level API that is part of TensorFlow now. You can use [tf.keras.Model](https://www.tensorflow.org/api_docs/python/tf/keras/Model) to define a model. You can also use the collection of [tf.keras.layers](https://www.tensorflow.org/api_docs/python/tf/keras/layers) for your convenience. It's straightforward as below to define a model that has two fully-connected layers: +""" + +class CustomModel(tf.keras.Model): + + def __init__(self): + super(CustomModel, self).__init__() + self.layer_1 = tf.keras.layers.Dense(16, activation=tf.nn.relu) + self.layer_2 = tf.keras.layers.Dense(32, activation=None) + + def call(self, inputs): + x = self.layer_1(inputs) + out = self.layer_2(inputs) + return out + +# Create model +custom_model = CustomModel() + +# Call the model +# Call the layer and extract some information +output = custom_model(tf.constant([[1.0, 2.0, 3.0]])) +print("Output shape:", output.shape) +print("Model name:", custom_model.name) + +# Count total trainable variables +total_trainable_var = np.sum([tf.size(var).numpy() for var in custom_model.trainable_variables]) +print("Number of trainable variables:", total_trainable_var) \ No newline at end of file diff --git a/codes/python/1-basics/readme.rst b/codes/python/1-basics/readme.rst deleted file mode 100644 index efbb1b4..0000000 --- a/codes/python/1-basics/readme.rst +++ /dev/null @@ -1,5 +0,0 @@ -============================== -Basics -============================== - - diff --git a/codes/python/1-basics/tensors.py b/codes/python/1-basics/tensors.py new file mode 100644 index 0000000..a51a8d1 --- /dev/null +++ b/codes/python/1-basics/tensors.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +"""tensors.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/github/instillai/TensorFlow-Course/blob/master/codes/ipython/1-basics/tensors.ipynb +""" + +# Import necessary libraries +import tensorflow as tf +import numpy as np + +"""## Tensors + +Tensor are multi-dimensitonal arrays that are used in Tensorflow. + +We use the following definition: + +* **Rank:** The number of dimensions that a vector has. + +Below, we will define different kinds of tensors and show their rank using [tf.rank](https://www.tensorflow.org/api_docs/python/tf/rank) function. +""" + +tensor = tf.constant(0) +print("Print constant tensor {} of rank {}".format(tensor, tf.rank(tensor))) +print("Show full tensor:", tensor) + +# NOTE: We use .numpy() to transform tf.tensor to numpy +tensor = tf.constant([1,2,3]) +print("Tensor:", tensor) +print("Rank:", tf.rank(tensor).numpy()) + +"""### Tensor Operations""" + +x = tf.constant([[1, 1], + [1, 1]]) +y = tf.constant([[2, 4], + [6, 8]]) + +# Add two tensors +print(tf.add(x, y), "\n") + +# Add two tensors +print(tf.matmul(x, y), "\n") + +"""### Muti-dimentional Tensors + +This part is not much different compared to what we learned so far. However, it would be nice to try extracting as much information as we can from a multi-dimentional tensor. + + +Let's use [tf.ones](https://www.tensorflow.org/api_docs/python/tf/ones) for our purpose here. It creates an all-one tensor. +""" + +# We set the shape of the tensor and the desired data type. +tensor = tf.ones(shape = [2, 3, 6], dtype = tf.float32) +print('Tensor:', tensor) + +print("Tensor Rank: ", tf.rank(tensor).numpy()) +print("Shape: ", tensor.shape) +print("Elements' type", tensor.dtype) +print("The size of the second axis:", tensor.shape[1]) +print("The size of the last axis:", tensor.shape[-1]) +print("Total number of elements: ", tf.size(tensor).numpy()) +print("How many dimensions? ", tensor.ndim) + +"""### Indexing + +TensorFlow indexing is aligned with Python indexing. See the following examples. +""" + +x = tf.constant([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]]) + +# All elements +print(x[:].numpy()) + +# All elements of the first row +print(x[0,:].numpy()) + +# First row and last column +print(x[0,-1].numpy()) + +# From second row to last and from third column to last +print(x[1:,2:].numpy) + +"""### Data types + +You can change the data type of the tesnorflow tensors for your purpose. This will be done easily by [tf.cast](https://www.tensorflow.org/api_docs/python/tf/cast). +""" + +original_tensor = tf.constant([1, 2, 3, 4], dtype=tf.int32) +print('Original tensor: ', original_tensor) +print("Tensor type before casting: ", original_tensor.dtype) + +# Casting to change dtype +casted_tensor = tf.cast(original_tensor, dtype=tf.float32) +print('New tensor: ', casted_tensor) +print("Tensor type after casting: ", casted_tensor.dtype) + diff --git a/codes/python/1-basics/variables/README.rst b/codes/python/1-basics/variables/README.rst deleted file mode 100644 index 084e15f..0000000 --- a/codes/python/1-basics/variables/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -========== -Variables -========== - -This source code is dedicated to define and initialize variables. - - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python variable.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. - - - - - diff --git a/codes/python/1-basics/variables/code/variables.py b/codes/python/1-basics/variables/code/variables.py deleted file mode 100644 index de3a132..0000000 --- a/codes/python/1-basics/variables/code/variables.py +++ /dev/null @@ -1,65 +0,0 @@ -## This code create some arbitrary variables and initialize them ### -# The goal is to show how to define and initialize variables from scratch. - -import tensorflow as tf -from tensorflow.python.framework import ops - -####################################### -######## Defining Variables ########### -####################################### - -# Create three variables with some default values. -weights = tf.Variable(tf.random_normal([2, 3], stddev=0.1), - name="weights") -biases = tf.Variable(tf.zeros([3]), name="biases") -custom_variable = tf.Variable(tf.zeros([3]), name="custom") - -# Get all the variables' tensors and store them in a list. -all_variables_list = ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES) - - -############################################ -######## Customized initializer ############ -############################################ - -## Initialation of some custom variables. -## In this part we choose some variables and only initialize them rather than initializing all variables. - -# "variable_list_custom" is the list of variables that we want to initialize. -variable_list_custom = [weights, custom_variable] - -# The initializer -init_custom_op = tf.variables_initializer(var_list=variable_list_custom ) - - -######################################## -######## Global initializer ############ -######################################## - -# Method-1 -# Add an op to initialize the variables. -init_all_op = tf.global_variables_initializer() - -# Method-2 -init_all_op = tf.variables_initializer(var_list=all_variables_list) - - - -########################################################## -######## Initialization using other variables ############ -########################################################## - -# Create another variable with the same value as 'weights'. -WeightsNew = tf.Variable(weights.initialized_value(), name="WeightsNew") - -# Now, the variable must be initialized. -init_WeightsNew_op = tf.variables_initializer(var_list=[WeightsNew]) - -###################################### -####### Running the session ########## -###################################### -with tf.Session() as sess: - # Run the initializer operation. - sess.run(init_all_op) - sess.run(init_custom_op) - sess.run(init_WeightsNew_op) diff --git a/codes/python/2-basics_in_machine_learning/linear_regression/README.rst b/codes/python/2-basics_in_machine_learning/linear_regression/README.rst deleted file mode 100644 index af6caf9..0000000 --- a/codes/python/2-basics_in_machine_learning/linear_regression/README.rst +++ /dev/null @@ -1,46 +0,0 @@ -================== -Linear Regression -================== - -This document is dedicated to explain how to run the python script for this tutorial. The documentation is available `here `_. Alternatively, you can check this ``Linear Regression using TensorFlow`` `blog post `_ for further details. - -.. _blogpostlinearregression: http://www.machinelearninguru.com/deep_learning/tensorflow/machine_learning_basics/linear_regresstion/linear_regression.html - -.. _Documentationlinearregression: https://github.com/astorfi/TensorFlow-World/wiki/Linear-Regeression - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python linear_regression.py --num_epochs=50 - -The ``--num_epochs`` flag is to provide the number of epochs that will be used for training. The ``--num_epochs`` flag is not required because its default value is ``50`` and is provided in the source code as follows: - -.. code:: python - - tf.app.flags.DEFINE_integer( - 'num_epochs', 50, 'The number of epochs for training the model. Default=50') - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/python/2-basics_in_machine_learning/linear_regression/code/linear_regression.py b/codes/python/2-basics_in_machine_learning/linear_regression/code/linear_regression.py deleted file mode 100644 index 10a1d75..0000000 --- a/codes/python/2-basics_in_machine_learning/linear_regression/code/linear_regression.py +++ /dev/null @@ -1,106 +0,0 @@ -import numpy as np -import tensorflow as tf -import xlrd -import matplotlib.pyplot as plt -import os -from sklearn.utils import check_random_state - -# Generating artificial data. -n = 50 -XX = np.arange(n) -rs = check_random_state(0) -YY = rs.randint(-20, 20, size=(n,)) + 2.0 * XX -data = np.stack([XX,YY], axis=1) - -####################### -## Defining flags ##### -####################### -tf.app.flags.DEFINE_integer('num_epochs', 50, 'The number of epochs for training the model. Default=50') -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - - -# creating the weight and bias. -# The defined variables will be initialized to zero. -W = tf.Variable(0.0, name="weights") -b = tf.Variable(0.0, name="bias") - - -# Creating placeholders for input X and label Y. -def inputs(): - """ - Defining the place_holders. - :return: - Returning the data and label place holders. - """ - X = tf.placeholder(tf.float32, name="X") - Y = tf.placeholder(tf.float32, name="Y") - return X,Y - -# Create the prediction. -def inference(X): - """ - Forward passing the X. - :param X: Input. - :return: X*W + b. - """ - return X * W + b - -def loss(X, Y): - ''' - compute the loss by comparing the predicted value to the actual label. - :param X: The input. - :param Y: The label. - :return: The loss over the samples. - ''' - - # Making the prediction. - Y_predicted = inference(X) - return tf.reduce_sum(tf.squared_difference(Y, Y_predicted))/(2*data.shape[0]) - - -# The training function. -def train(loss): - learning_rate = 0.0001 - return tf.train.GradientDescentOptimizer(learning_rate).minimize(loss) - - -with tf.Session() as sess: - - # Initialize the variables[w and b]. - sess.run(tf.global_variables_initializer()) - - # Get the input tensors - X, Y = inputs() - - # Return the train loss and create the train_op. - train_loss = loss(X, Y) - train_op = train(train_loss) - - # Step 8: train the model - for epoch_num in range(FLAGS.num_epochs): # run 100 epochs - loss_value, _ = sess.run([train_loss,train_op], - feed_dict={X: data[:,0], Y: data[:,1]}) - - # Displaying the loss per epoch. - print('epoch %d, loss=%f' %(epoch_num+1, loss_value)) - - # save the values of weight and bias - wcoeff, bias = sess.run([W, b]) - - -############################### -#### Evaluate and plot ######## -############################### -Input_values = data[:,0] -Labels = data[:,1] -Prediction_values = data[:,0] * wcoeff + bias - -# # uncomment if plotting is desired! -# plt.plot(Input_values, Labels, 'ro', label='main') -# plt.plot(Input_values, Prediction_values, label='Predicted') - -# # Saving the result. -# plt.legend() -# plt.savefig('plot.png') -# plt.close() diff --git a/codes/python/2-basics_in_machine_learning/linear_regression/updating_model.gif b/codes/python/2-basics_in_machine_learning/linear_regression/updating_model.gif deleted file mode 100644 index a6eeb72..0000000 Binary files a/codes/python/2-basics_in_machine_learning/linear_regression/updating_model.gif and /dev/null differ diff --git a/codes/python/2-basics_in_machine_learning/linear_svm/README.rst b/codes/python/2-basics_in_machine_learning/linear_svm/README.rst deleted file mode 100644 index 192f00a..0000000 --- a/codes/python/2-basics_in_machine_learning/linear_svm/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -=========== -Linear SVM -=========== - -This document is dedicated to explain how to run the python script for this tutorial. For this tutorial, we will create a linear SVM for separation of the data. The data that is used for this code is linearly separable. - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python linear_svm.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/python/2-basics_in_machine_learning/linear_svm/code/linear_svm.py b/codes/python/2-basics_in_machine_learning/linear_svm/code/linear_svm.py deleted file mode 100644 index e6b1144..0000000 --- a/codes/python/2-basics_in_machine_learning/linear_svm/code/linear_svm.py +++ /dev/null @@ -1,167 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -import tensorflow as tf -from sklearn import datasets -import random -import sys - - -####################### -### Necessary Flags ### -####################### - -tf.app.flags.DEFINE_integer('batch_size', 32, - 'Number of samples per batch.') - -tf.app.flags.DEFINE_integer('num_steps', 500, - 'Number of steps for training.') - -tf.app.flags.DEFINE_boolean('is_evaluation', True, - 'Whether or not the model should be evaluated.') - -tf.app.flags.DEFINE_float( - 'C_param', 0.1, - 'penalty parameter of the error term.') - -tf.app.flags.DEFINE_float( - 'Reg_param', 1.0, - 'penalty parameter of the error term.') - -tf.app.flags.DEFINE_float( - 'delta', 1.0, - 'The parameter set for margin.') - -tf.app.flags.DEFINE_float( - 'initial_learning_rate', 0.1, - 'The initial learning rate for optimization.') - -FLAGS = tf.app.flags.FLAGS - - -########################## -### Required Functions ### -########################## - -def loss_fn(W,b,x_data,y_target): - logits = tf.subtract(tf.matmul(x_data, W),b) - norm_term = tf.divide(tf.reduce_sum(tf.multiply(tf.transpose(W),W)),2) - classification_loss = tf.reduce_mean(tf.maximum(0., tf.subtract(FLAGS.delta, tf.multiply(logits, y_target)))) - total_loss = tf.add(tf.multiply(FLAGS.C_param,classification_loss), tf.multiply(FLAGS.Reg_param,norm_term)) - return total_loss - -def inference_fn(W,b,x_data,y_target): - prediction = tf.sign(tf.subtract(tf.matmul(x_data, W), b)) - accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, y_target), tf.float32)) - return accuracy - -def next_batch_fn(x_train,y_train,num_samples=FLAGS.batch_size): - index = np.random.choice(len(x_train), size=num_samples) - X_batch = x_train[index] - y_batch = np.transpose([y_train[index]]) - return X_batch, y_batch - -########################## -### Dataset peparation ### -########################## - -# Dataset loading and organizing. -iris = datasets.load_iris() - -# Only the first two features are extracted and used. -X = iris.data[:, :2] - -# The labels are transformed to -1 and 1. -y = np.array([1 if label==0 else -1 for label in iris.target]) - -# Get the indices for train and test sets. -my_randoms = np.random.choice(X.shape[0], X.shape[0], replace=False) -train_indices = my_randoms[0:int(0.5 * X.shape[0])] -test_indices = my_randoms[int(0.5 * X.shape[0]):] - -# Splitting train and test sets. -x_train = X[train_indices] -y_train = y[train_indices] -x_test = X[test_indices] -y_test = y[test_indices] - -############################# -### Defining Placeholders ### -############################# - -x_data = tf.placeholder(shape=[None, X.shape[1]], dtype=tf.float32) -y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32) -W = tf.Variable(tf.random_normal(shape=[X.shape[1],1])) -b = tf.Variable(tf.random_normal(shape=[1,1])) - -# Calculation of loss and accuracy. -total_loss = loss_fn(W, b, x_data, y_target) -accuracy = inference_fn(W, b, x_data, y_target) - -# Defining train_op -train_op = tf.train.GradientDescentOptimizer(FLAGS.initial_learning_rate).minimize(total_loss) - -############### -### Session ### -############### -sess = tf.Session() - -# Initialization of the variables. -init = tf.initialize_all_variables() -sess.run(init) - -############################### -### Training the Linear SVM ### -############################### -for step_idx in range(FLAGS.num_steps): - - # Get the batch of data. - X_batch, y_batch = next_batch_fn(x_train, y_train, num_samples=FLAGS.batch_size) - - # Run the optimizer. - sess.run(train_op, feed_dict={x_data: X_batch, y_target: y_batch}) - - # Calculation of loss and accuracy. - loss_step = sess.run(total_loss, feed_dict={x_data: X_batch, y_target: y_batch}) - train_acc_step = sess.run(accuracy, feed_dict={x_data: x_train, y_target: np.transpose([y_train])}) - test_acc_step = sess.run(accuracy, feed_dict={x_data: x_test, y_target: np.transpose([y_test])}) - - # Displaying the desired values. - if step_idx % 100 == 0: - print('Step #%d, training accuracy= %% %.2f, testing accuracy= %% %.2f ' % (step_idx, float(100 * train_acc_step), float(100 * test_acc_step))) - -if FLAGS.is_evaluation: - [[w1], [w2]] = sess.run(W) - [[bias]] = sess.run(b) - x_line = [data[1] for data in X] - - # Find the separator line. - line = [] - line = [-w2/w1*i+bias/w1 for i in x_line] - - # coor_pos_list = [positive_X, positive_y] - # coor_neg_list = [negative_X, negative_y] - - for index, data in enumerate(X): - if y[index] == 1: - positive_X = data[1] - positive_y = data[0] - elif y[index] == -1: - negative_X = data[1] - negative_y = data[0] - else: - sys.exit("Invalid label!") - - # # uncomment if plotting is desired! - # # Plotting the SVM decision boundary. - # plt.plot(positive_X, positive_y, '+', label='Positive') - # plt.plot(negative_X, negative_y, 'o', label='Negative') - # plt.plot(x_line, line, 'r-', label='Separator', linewidth=3) - # plt.legend(loc='best') - # plt.title('Linear SVM') - # plt.show() - - - - - - diff --git a/codes/python/2-basics_in_machine_learning/logistic_regression/README.rst b/codes/python/2-basics_in_machine_learning/logistic_regression/README.rst deleted file mode 100644 index ee36af1..0000000 --- a/codes/python/2-basics_in_machine_learning/logistic_regression/README.rst +++ /dev/null @@ -1,37 +0,0 @@ -================== -Logistic Regression -================== - -This document is dedicated to explaining how to run the python script for this tutorial. ``Logistic regression`` is a binary -classification algorithm in which `yes` or `no` are the only possible responses. The linear output is transformed to a probability of course between zero and 1. The decision is made by thresholding the probability and saying it belongs to which class. We consider ``Softmax`` with ``cross entropy`` loss for minimizing the loss. - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python logistic_regression.py --num_epochs=50 --batch_size=512 --max_num_checkpoint=10 --num_classes=2 - -Different ``flags`` are provided for training. For the full list please refer to the source code. The above example is just an example as is! - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/python/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.py b/codes/python/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.py deleted file mode 100644 index 1da3918..0000000 --- a/codes/python/2-basics_in_machine_learning/logistic_regression/code/logistic_regression.py +++ /dev/null @@ -1,292 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt -import tensorflow as tf -import tempfile -import urllib -import pandas as pd -import os -from tensorflow.examples.tutorials.mnist import input_data - -###################################### -######### Necessary Flags ############ -###################################### - -tf.app.flags.DEFINE_string( - 'train_path', os.path.dirname(os.path.abspath(__file__)) + '/train_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_path', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('max_num_checkpoint', 10, - 'Maximum number of checkpoints that TensorFlow will keep.') - -tf.app.flags.DEFINE_integer('num_classes', 2, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('num_epochs', 10, - 'Number of epochs for training.') - -########################################## -######## Learning rate flags ############# -########################################## -tf.app.flags.DEFINE_float('initial_learning_rate', 0.001, 'Initial learning rate.') - -tf.app.flags.DEFINE_float( - 'learning_rate_decay_factor', 0.95, 'Learning rate decay factor.') - -tf.app.flags.DEFINE_float( - 'num_epochs_per_decay', 1, 'Number of epoch pass to decay learning rate.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('fine_tuning', False, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('online_test', True, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.train_path): - raise ValueError('You must assign absolute path for --train_path') - -if not os.path.isabs(FLAGS.checkpoint_path): - raise ValueError('You must assign absolute path for --checkpoint_path') - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=False) - -######################## -### Data Processing #### -######################## -# Organize the data and feed it to associated dictionaries. -data={} - -data['train/image'] = mnist.train.images -data['train/label'] = mnist.train.labels -data['test/image'] = mnist.test.images -data['test/label'] = mnist.test.labels - -def extract_samples_Fn(data): - index_list = [] - for sample_index in range(data.shape[0]): - label = data[sample_index] - if label == 1 or label == 0: - index_list.append(sample_index) - return index_list - - -# Get only the samples with zero and one label for training. -index_list_train = extract_samples_Fn(data['train/label']) - - -# Get only the samples with zero and one label for test set. -index_list_test = extract_samples_Fn(data['test/label']) - -# Reform the train data structure. -data['train/image'] = mnist.train.images[index_list_train] -data['train/label'] = mnist.train.labels[index_list_train] - -# Reform the test data structure. -data['test/image'] = mnist.test.images[index_list_test] -data['test/label'] = mnist.test.labels[index_list_test] - -# Dimentionality of train -dimensionality_train = data['train/image'].shape - -# Dimensions -num_train_samples = dimensionality_train[0] -num_features = dimensionality_train[1] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - # learning rate policy - decay_steps = int(num_train_samples / FLAGS.batch_size * - FLAGS.num_epochs_per_decay) - learning_rate = tf.train.exponential_decay(FLAGS.initial_learning_rate, - global_step, - decay_steps, - FLAGS.learning_rate_decay_factor, - staircase=True, - name='exponential_decay_learning_rate') - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image') - label_place = tf.placeholder(tf.int32, shape=([None,]), name='gt') - label_one_hot = tf.one_hot(label_place, depth=FLAGS.num_classes, axis=-1) - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + Loss + Accuracy ############## - ################################################## - # A simple fully connected with two class and a softmax is equivalent to Logistic Regression. - logits = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs = FLAGS.num_classes, scope='fc') - - # Define loss - with tf.name_scope('loss'): - loss_tensor = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=label_one_hot)) - - # Accuracy - # Evaluate the model - prediction_correct = tf.equal(tf.argmax(logits, 1), tf.argmax(label_one_hot, 1)) - - # Accuracy calculation - accuracy = tf.reduce_mean(tf.cast(prediction_correct, tf.float32)) - - ############################################# - ########### training operation ############## - ############################################# - - # Define optimizer by its default values - optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) - - # 'train_op' is a operation that is run for gradient update on parameters. - # Each execution of 'train_op' is a training step. - # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow - # update the 'global_step' and increment it by one! - - # gradient update. - with tf.name_scope('train_op'): - gradients_and_variables = optimizer.compute_gradients(loss_tensor) - train_op = optimizer.apply_gradients(gradients_and_variables, global_step=global_step) - - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - - # The saver op. - saver = tf.train.Saver() - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # If fie-tuning flag in 'True' the model will be restored. - if FLAGS.fine_tuning: - saver.restore(sess, os.path.join(FLAGS.checkpoint_path, checkpoint_prefix)) - print("Model restored for fine-tuning...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - - # go through the batches - test_accuracy = 0 - for epoch in range(FLAGS.num_epochs): - total_batch_training = int(data['train/image'].shape[0] / FLAGS.batch_size) - - # go through the batches - for batch_num in range(total_batch_training): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - train_batch_data, train_batch_label = data['train/image'][start_idx:end_idx], data['train/label'][ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run optimization op (backprop) and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - batch_loss, _, training_step = sess.run( - [loss_tensor, train_op, - global_step], - feed_dict={image_place: train_batch_data, - label_place: train_batch_label, - dropout_param: 0.5}) - - ######################################## - ########## Write summaries ############# - ######################################## - - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - print("Epoch " + str(epoch + 1) + ", Training Loss= " + \ - "{:.5f}".format(batch_loss)) - - ########################################################### - ############ Saving the model checkpoint ################## - ########################################################### - - # # The model will be saved when the training is done. - - # Create the path for saving the checkpoints. - if not os.path.exists(FLAGS.checkpoint_path): - os.makedirs(FLAGS.checkpoint_path) - - # save the model - save_path = saver.save(sess, os.path.join(FLAGS.checkpoint_path, checkpoint_prefix)) - print("Model saved in file: %s" % save_path) - - ############################################################################ - ########## Run the session for pur evaluation on the test data ############# - ############################################################################ - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoint_path, checkpoint_prefix)) - print("Model restored...") - - # Evaluation of the model - test_accuracy = 100 * sess.run(accuracy, feed_dict={ - image_place: data['test/image'], - label_place: data['test/label'], - dropout_param: 1.}) - - print("Final Test Accuracy is %% %.2f" % test_accuracy) diff --git a/codes/python/2-basics_in_machine_learning/multiclass_svm/README.rst b/codes/python/2-basics_in_machine_learning/multiclass_svm/README.rst deleted file mode 100644 index 809b0a1..0000000 --- a/codes/python/2-basics_in_machine_learning/multiclass_svm/README.rst +++ /dev/null @@ -1,38 +0,0 @@ -======================= -Multi-Class Kernel SVM -======================= - -This document is dedicated to explain how to run the python script for this tutorial. For this tutorial, we will create a Kernel SVM for separation of the data. The data that is used for this code is MNIST dataset. This document is inspired on `Implementing Multiclass SVMs `_ open source code. However, in ours, we extend it to MNIST dataset and modify its method. - -.. _Multiclasssvm: https://github.com/nfmcclure/tensorflow_cookbook/tree/master/04_Support_Vector_Machines/06_Implementing_Multiclass_SVMs - - -------------------- -Python Environment -------------------- - -``WARNING:`` If TensorFlow is installed in any environment(virtual environment, ...), it must be activated at first. So at first make sure the tensorFlow is available in the current environment using the following script: - --------------------------------- -How to run the code in Terminal? --------------------------------- - - -Please root to the ``code/`` directory and run the python script as the general form of below: - -.. code:: shell - - python [python_code_file.py] - - -As an example the code can be executed as follows: - -.. code:: shell - - python multiclass_SVM.py - ----------------------------- -How to run the code in IDEs? ----------------------------- - -Since the code is ready-to-go, as long as the TensorFlow can be called in the IDE editor(Pycharm, Spyder,..), the code can be executed successfully. diff --git a/codes/python/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.py b/codes/python/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.py deleted file mode 100644 index 3dff74e..0000000 --- a/codes/python/2-basics_in_machine_learning/multiclass_svm/code/multiclass_svm.py +++ /dev/null @@ -1,204 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -import tensorflow as tf -from sklearn import datasets -from tensorflow.python.framework import ops -from tensorflow.examples.tutorials.mnist import input_data -from sklearn.decomposition import PCA - -####################### -### Necessary Flags ### -####################### - -tf.app.flags.DEFINE_integer('batch_size', 50, - 'Number of samples per batch.') - -tf.app.flags.DEFINE_integer('num_steps', 1000, - 'Number of steps for training.') - -tf.app.flags.DEFINE_integer('log_steps', 50, - 'Number of steps per each display.') - -tf.app.flags.DEFINE_boolean('is_evaluation', True, - 'Whether or not the model should be evaluated.') - -tf.app.flags.DEFINE_float( - 'gamma', -15.0, - 'penalty parameter of the error term.') - -tf.app.flags.DEFINE_float( - 'initial_learning_rate', 0.01, - 'The initial learning rate for optimization.') - -FLAGS = tf.app.flags.FLAGS - - -########################### -### Necessary Functions ### -########################### -def cross_class_label_fn(A): - """ - This function take the matrix of size (num_classes, batch_size) and return the cross-class label matrix - in which Yij are the elements where i,j are class indices. - :param A: The input matrix of size (num_classes, batch_size). - :return: The output matrix of size (num_classes, batch_size, batch_size). - """ - label_class_i = tf.reshape(A, [num_classes, 1, FLAGS.batch_size]) - label_class_j = tf.reshape(label_class_i, [num_classes, FLAGS.batch_size, 1]) - returned_mat = tf.matmul(label_class_j, label_class_i) - return returned_mat - - -# Compute SVM loss. -def loss_fn(alpha, label_placeholder): - term_1 = tf.reduce_sum(alpha) - alpha_cross = tf.matmul(tf.transpose(alpha), alpha) - cross_class_label = cross_class_label_fn(label_placeholder) - term_2 = tf.reduce_sum(tf.multiply(my_kernel, tf.multiply(alpha_cross, cross_class_label)), [1, 2]) - return tf.reduce_sum(tf.subtract(term_2, term_1)) - - -# Gaussian (RBF) prediction kernel -def kernel_pred(x_data, prediction_grid): - A = tf.reshape(tf.reduce_sum(tf.square(x_data), 1), [-1, 1]) - B = tf.reshape(tf.reduce_sum(tf.square(prediction_grid), 1), [-1, 1]) - square_distance = tf.add(tf.subtract(A, tf.multiply(2., tf.matmul(x_data, tf.transpose(prediction_grid)))), - tf.transpose(B)) - return tf.exp(tf.multiply(gamma, tf.abs(square_distance))) - - -def kernel_fn(x_data, gamma): - """ - This function generates the RBF kernel. - :param x_data: Input data - :param gamma: Hyperparamet. - :return: The RBF kernel. - """ - square_distance = tf.multiply(2., tf.matmul(x_data, tf.transpose(x_data))) - kernel = tf.exp(tf.multiply(gamma, tf.abs(square_distance))) - return kernel - - -def prepare_label_fn(label_onehot): - """ - Label preparation. Since we are dealing with one vs all scenario, for each sample - all the labels other than the current class must be set to -1. It can be done by simply - Setting all the zero values to -1 in the return one_hot array for classes. - - :param label_onehot: The input as one_hot label which shape (num_samples,num_classes) - :return: The output with the same shape and all zeros tured to -1. - """ - labels = label_onehot - labels[labels == 0] = -1 - labels = np.transpose(labels) - return labels - - -def next_batch(X, y, batch_size): - """ - Generating a batch of random data. - :param x_train: - :param batch_size: - :return: - """ - idx = np.random.choice(len(X), size=batch_size) - X_batch = X[idx] - y_batch = y[:, idx] - return X_batch, y_batch - - -######################## -### Data Preparation ### -######################## - -# Read MNIST data. It has a data structure. -# mnist.train.images, mnist.train.labels: The training set images and their associated labels. -# mnist.validation.images, mnist.validation.labels: The validation set images and their associated labels. -# mnist.test.images, mnist.test.labels: The test set images and their associated labels. - -# Flags: -# "reshape=True", by this flag, the data will be reshaped to (num_samples,num_features) -# and since each image is 28x28, the num_features = 784 -# "one_hot=True", this flag return one_hot labeling format -# ex: sample_label [1 0 0 0 0 0 0 0 0 0] says the sample belongs to the first class. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=True) - -# Label preparation. -y_train = prepare_label_fn(mnist.train.labels) -y_test = prepare_label_fn(mnist.test.labels) - -# Get the number of classes. -num_classes = y_train.shape[0] - -########################################## -### Dimensionality Reduction Using PCA ### -########################################## -pca = PCA(n_components=100) -pca.fit(mnist.train.images) - -# print the accumulative variance for the returned principle components. -print("The variance of the chosen components = %{0:.2f}".format(100 * np.sum(pca.explained_variance_ratio_))) -x_train = pca.transform(mnist.train.images) -x_test = pca.transform(mnist.test.images) -num_fetures = x_train.shape[1] - -############################ -### Graph & Optimization ### -############################ -# Create graph -sess = tf.Session() - -# Initialize placeholders -data_placeholder = tf.placeholder(shape=[None, num_fetures], dtype=tf.float32) -label_placeholder = tf.placeholder(shape=[num_classes, None], dtype=tf.float32) -pred_placeholder = tf.placeholder(shape=[None, num_fetures], dtype=tf.float32) - -# The alpha variable for solving the dual optimization problem. -alpha = tf.Variable(tf.random_normal(shape=[num_classes, FLAGS.batch_size])) - -# Gaussian (RBF) kernel -gamma = tf.constant(FLAGS.gamma) - -# RBF kernel -my_kernel = kernel_fn(data_placeholder, gamma) - -# Loss calculation. -loss = loss_fn(alpha, label_placeholder) - -# Generating the prediction kernel. -pred_kernel = kernel_pred(data_placeholder, pred_placeholder) - -############################# -### Prediction & Accuracy ### -############################# -prediction_output = tf.matmul(tf.multiply(label_placeholder, alpha), pred_kernel) -prediction = tf.arg_max(prediction_output - tf.expand_dims(tf.reduce_mean(prediction_output, 1), 1), 0) -accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, tf.argmax(label_placeholder, 0)), tf.float32)) - -# Optimizer -train_op = tf.train.AdamOptimizer(FLAGS.initial_learning_rate).minimize(loss) - -# Variables Initialization. -init = tf.global_variables_initializer() -sess.run(init) - -# Training loop -for i in range(FLAGS.num_steps): - - batch_X, batch_y = next_batch(x_train, y_train, FLAGS.batch_size) - sess.run(train_op, feed_dict={data_placeholder: batch_X, label_placeholder: batch_y}) - - temp_loss = sess.run(loss, feed_dict={data_placeholder: batch_X, label_placeholder: batch_y}) - - acc_train_batch = sess.run(accuracy, feed_dict={data_placeholder: batch_X, - label_placeholder: batch_y, - pred_placeholder: batch_X}) - - batch_X_test, batch_y_test = next_batch(x_test, y_test, FLAGS.batch_size) - acc_test_batch = sess.run(accuracy, feed_dict={data_placeholder: batch_X_test, - label_placeholder: batch_y_test, - pred_placeholder: batch_X_test}) - - if (i + 1) % FLAGS.log_steps == 0: - print('Step #%d, Loss= %f, training accuracy= %f, testing accuracy= %f ' % ( - (i+1), temp_loss, acc_train_batch, acc_test_batch)) diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/__init__.py b/codes/python/3-neural_networks/convolutional-neural-network/code/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/__init__.py b/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py b/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py deleted file mode 100644 index 0f3fdb9..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py +++ /dev/null @@ -1,38 +0,0 @@ -import sys - - -def print_progress(progress, epoch_num, loss): - """ - This function draw an active progress bar. - :param progress: Where we are: - type: float - value: [0,1] - :param epoch_num: number of epochs for training - :param loss: The loss for the specific batch in training phase. - - :return: Progressing bar - """ - - # Define the length of bar - barLength = 30 - - # Ceck the input! - assert type(progress) is float, "id is not a float: %r" % id - assert 0 <= progress <= 1, "variable should be between zero and one!" - - # Empty status while processing. - status = "" - - # This part is to make a new line when the process is finished. - if progress >= 1: - progress = 1 - status = "\r\n" - - # Where we are in the progress! - indicator = int(round(barLength*progress)) - - # Print the appropriate progress phase! - list = [str(epoch_num), "#"*indicator , "-"*(barLength-indicator), progress*100, loss, status] - text = "\rEpoch {0[0]} {0[1]} {0[2]} %{0[3]:.2f} loss={0[4]:.3f} {0[5]}".format(list) - sys.stdout.write(text) - sys.stdout.flush() diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ b/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ deleted file mode 100644 index 0f3fdb9..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/auxiliary/progress_bar.py~ +++ /dev/null @@ -1,38 +0,0 @@ -import sys - - -def print_progress(progress, epoch_num, loss): - """ - This function draw an active progress bar. - :param progress: Where we are: - type: float - value: [0,1] - :param epoch_num: number of epochs for training - :param loss: The loss for the specific batch in training phase. - - :return: Progressing bar - """ - - # Define the length of bar - barLength = 30 - - # Ceck the input! - assert type(progress) is float, "id is not a float: %r" % id - assert 0 <= progress <= 1, "variable should be between zero and one!" - - # Empty status while processing. - status = "" - - # This part is to make a new line when the process is finished. - if progress >= 1: - progress = 1 - status = "\r\n" - - # Where we are in the progress! - indicator = int(round(barLength*progress)) - - # Print the appropriate progress phase! - list = [str(epoch_num), "#"*indicator , "-"*(barLength-indicator), progress*100, loss, status] - text = "\rEpoch {0[0]} {0[1]} {0[2]} %{0[3]:.2f} loss={0[4]:.3f} {0[5]}".format(list) - sys.stdout.write(text) - sys.stdout.flush() diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/evaluation.sh b/codes/python/3-neural_networks/convolutional-neural-network/code/evaluation.sh deleted file mode 100755 index 232711f..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/evaluation.sh +++ /dev/null @@ -1,6 +0,0 @@ - -# Run training. -python test_classifier.py \ - --batch_size=512 \ - --allow_soft_placement - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/input_function/__init__.py b/codes/python/3-neural_networks/convolutional-neural-network/code/input_function/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/input_function/input.py b/codes/python/3-neural_networks/convolutional-neural-network/code/input_function/input.py deleted file mode 100644 index b924447..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/input_function/input.py +++ /dev/null @@ -1,110 +0,0 @@ -import numpy as np -import collections - - -class DATA_OBJECT(object): - def __init__(self, - images, - labels, - num_classes=0, - one_hot=False, - dtype=np.float32, - reshape=False): - """Data object construction. - images: The images of size [num_samples, rows, columns, depth]. - labels: The labels of size [num_samples,] - num_classes: The number of classes in case one_hot labeling is desired. - one_hot=False: Turn the labels into one_hot format. - dtype=np.float32: The data type. - reshape=False: Reshape in case the feature vector extraction is desired. - - """ - # Define the date type. - if dtype not in (np.uint8, np.float32): - raise TypeError('Invalid image dtype %r, expected uint8 or float32' % - dtype) - assert images.shape[0] == labels.shape[0], ( - 'images.shape: %s labels.shape: %s' % (images.shape, labels.shape)) - self._num_samples = images.shape[0] - - # [num_examples, rows, columns, depth] -> [num_examples, rows*columns] - if reshape: - assert images.shape[3] == 1 - images = images.reshape(images.shape[0], - images.shape[1] * images.shape[2]) - - # Conver to float if necessary - if dtype == np.float32: - # Convert from [0, 255] -> [0.0, 1.0]. - images = images.astype(dtype) - images = np.multiply(images, 1.0 / 255.0) - self._images = images - self._labels = labels - - # If the one_hot flag is true, then the one_hot labeling supersedes the normal labeling. - if one_hot: - # If the one_hot labeling is desired, number of classes must be defined as one of the arguments of DATA_OBJECT class! - assert num_classes != 0, ( - 'You must specify the num_classes in the DATA_OBJECT for one_hot label construction!') - - # Define the indexes. - index = np.arange(self._num_samples) * num_classes - one_hot_labels = np.zeros((self._num_samples, num_classes)) - one_hot_labels.flat[index + labels.ravel()] = 1 - self._labels = one_hot_labels - - @property - def images(self): - return self._images - - @property - def labels(self): - return self._labels - - @property - def num_samples(self): - return self._num_samples - - -def provide_data(mnist): - """ - This function provide data object with desired shape. - The attribute of data object: - - train - - validation - - test - The sub attributs of the data object attributes: - -images - -labels - - :param mnist: The downloaded MNIST dataset - :return: data: The data object. - ex: data.train.images return the images of the dataset object in the training set! - - - """ - ################################################ - ########## Get the images and labels############ - ################################################ - - # Note: This setup is specific to mnist data but can be generalized for any data. - # The ?_images(? can be train, validation or test) must have the format of [num_samples, rows, columns, depth] after extraction from data. - # The ?_labels(? can be train, validation or test) must have the format of [num_samples,] after extraction from data. - train_images = mnist.train.images - train_labels = mnist.train.labels - validation_images = mnist.validation.images - validation_labels = mnist.validation.labels - test_images = mnist.test.images - test_labels = mnist.test.labels - - # Create separate objects for train, validation & test. - train = DATA_OBJECT(train_images, train_labels, num_classes=10, one_hot=True, dtype=np.float32, reshape=False) - validation = DATA_OBJECT(validation_images, validation_labels, num_classes=10, one_hot=True, dtype=np.float32, - reshape=False) - test = DATA_OBJECT(test_images, test_labels, num_classes=10, one_hot=True, dtype=np.float32, reshape=False) - - # Create the whole data object - DataSetObject = collections.namedtuple('DataSetObject', ['train', 'validation', 'test']) - data = DataSetObject(train=train, validation=validation, test=test) - - return data diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/net_structure/__init__.py b/codes/python/3-neural_networks/convolutional-neural-network/code/net_structure/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/net_structure/net.py b/codes/python/3-neural_networks/convolutional-neural-network/code/net_structure/net.py deleted file mode 100644 index 8ce1e80..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/net_structure/net.py +++ /dev/null @@ -1,93 +0,0 @@ -##################################### -# With some tiny modification, this code is the one used by Tensorflow slim at: -# https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim -# Please refer to the link for further explanations. - -### The difference is this architecture is written in fully-convolutional fashion. -### The advantage is that, this model can be used for larger image sizes with some average pooling in the last layer. - -import tensorflow as tf - -slim = tf.contrib.slim - - -def net_architecture(images, num_classes=10, is_training=False, - dropout_keep_prob=0.5, - spatial_squeeze=True, - scope='Net'): - """Creates a variant of the Net model. - - Args: - images: The batch of `Tensors`: size [batch_size, height, width, channels]. - num_classes: Total number of classes. - is_training: Training/Validation. - dropout_keep_prob: The percentage of activation values: Only active in training mode! - scope: Variable_scope. - - Returns: - logits: the pre-softmax activations of size [batch_size, `num_classes`] - end_points: The dictionary for the layers outputs. - """ - - # Create empty dictionary - end_points = {} - - with tf.variable_scope(scope, 'Net', [images, num_classes]) as sc: - end_points_collection = sc.name + '_end_points' - - # Collect outputs for conv2d and max_pool2d. - with tf.contrib.framework.arg_scope([tf.contrib.layers.conv2d, tf.contrib.layers.max_pool2d], - outputs_collections=end_points_collection): - # Layer-1 - net = tf.contrib.layers.conv2d(images, 32, [5, 5], scope='conv1') - net = tf.contrib.layers.max_pool2d(net, [2, 2], 2, scope='pool1') - - # Layer-2 - net = tf.contrib.layers.conv2d(net, 64, [5, 5], scope='conv2') - net = tf.contrib.layers.max_pool2d(net, [2, 2], 2, scope='pool2') - - # Layer-3 - net = tf.contrib.layers.conv2d(net, 1024, [7, 7], padding='VALID', scope='fc3') - net = tf.contrib.layers.dropout(net, dropout_keep_prob, is_training=is_training, - scope='dropout3') - - # Last layer which is the logits for classes - logits = tf.contrib.layers.conv2d(net, num_classes, [1, 1], activation_fn=None, scope='fc4') - - # Return the collections as a dictionary - end_points = slim.utils.convert_collection_to_dict(end_points_collection) - - # Squeeze spatially to eliminate extra dimensions.(embedding layer) - if spatial_squeeze: - logits = tf.squeeze(logits, [1, 2], name='fc4/squeezed') - end_points[sc.name + '/fc4'] = logits - return logits, end_points - - -def net_arg_scope(weight_decay=0.0005, is_training=False): - """Defines the default network argument scope. - - Args: - weight_decay: The weight decay to use for regularizing the model. - - Returns: - An `arg_scope` to use for the model. - """ - if is_training: - with tf.contrib.framework.arg_scope( - [tf.contrib.layers.conv2d], - padding='SAME', - weights_regularizer=slim.l2_regularizer(weight_decay), - weights_initializer=tf.contrib.layers.variance_scaling_initializer(factor=1.0, mode='FAN_AVG', - uniform=False, seed=None, - dtype=tf.float32), - activation_fn=tf.nn.relu) as sc: - return sc - - else: - with tf.contrib.framework.arg_scope( - [tf.contrib.layers.conv2d], - padding='SAME', - activation_fn=tf.nn.relu) as sc: - return sc - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh b/codes/python/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh deleted file mode 100755 index c52212a..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/script/evaluation.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Where the logs will be saved to. -test_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/test_logs - -# Where the checkpoints is saved to. -checkpoint_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/checkpoints - - -# Run training. -python test_classifier.py \ - --test_dir=${test_dir} \ - --checkpoint_dir=${checkpoint_dir} \ - --batch_size=512 \ - --num_epochs=2 \ - --allow_soft_placement - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/script/train.sh b/codes/python/3-neural_networks/convolutional-neural-network/code/script/train.sh deleted file mode 100755 index 88f413b..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/script/train.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Where the logs will be saved to. -train_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/train_logs - -# Where the checkpoints is saved to. -checkpoint_dir=/home/sina/GITHUB/Tensorflow-Turorials/NeuralNetworks/convolutional-neural-network/code/checkpoints - - -# Run training. -python train_classifier.py \ - --train_dir=${train_dir} \ - --checkpoint_dir=${checkpoint_dir} \ - --batch_size=512 \ - --num_epochs=20 \ - --max_num_checkpoint=10 \ - --is_training \ - --allow_soft_placement - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/test_classifier.py b/codes/python/3-neural_networks/convolutional-neural-network/code/test_classifier.py deleted file mode 100644 index a6507fe..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/test_classifier.py +++ /dev/null @@ -1,247 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -from net_structure import net -from input_function import input -from auxiliary import progress_bar -import os -import sys - -###################################### -######### Necessary Flags ############ -###################################### -tf.app.flags.DEFINE_string( - 'evaluation_path', os.path.dirname(os.path.abspath(__file__)) + '/test_log', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoints_directory', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.checkpoints_directory): - raise ValueError('You must assign absolute path for --checkpoints_directory') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=False, one_hot=False) - -# The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = data.train.images.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -height = dimensionality_train[1] -width = dimensionality_train[2] -num_channels = dimensionality_train[3] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, height, width, num_channels]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_parameter = tf.placeholder(tf.float32) - - ################################################## - ########### Model + loss + accuracy ############## - ################################################## - - # MODEL - joint_arg_scope = net.net_arg_scope(weight_decay=0.0005, is_training=FLAGS.is_training) - with tf.contrib.framework.arg_scope(joint_arg_scope): - logits_features, end_points = net.net_architecture(image_place, num_classes=FLAGS.num_classes, - dropout_keep_prob=dropout_parameter, - is_training=FLAGS.is_training) - - # Define loss - with tf.name_scope('loss'): - loss_test = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits_features, labels=label_place)) - - # Accuracy - with tf.name_scope('accuracy_test'): - # Evaluate the model - correct_test_prediction = tf.equal(tf.argmax(logits_features, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy_test = tf.reduce_mean(tf.cast(correct_test_prediction, tf.float32)) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(data.test.images.shape[0], size=(3,)) - tf.summary.image('images', data.test.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - # Histogram and scalar summaries sammaries - # sparsity: This summary is the fraction of zero activation for the output of each layer! - # activations: This summary is the histogram of activation for the output of each layer! - # WARNING: tf.summary.histogram can be very time consuming so it will be calculated per epoch! - for end_point in end_points: - x = end_points[end_point] - tf.summary.scalar('sparsity/' + end_point, - tf.nn.zero_fraction(x), collections=['test']) - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss_test, collections=['test']) - tf.summary.scalar("accuracy_test", accuracy_test, collections=['test']) - tf.summary.scalar("global_step", global_step, collections=['test']) - - # Merge all summaries together. - summary_test_op = tf.summary.merge_all('test') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - tensors_key = ['loss_test', 'accuracy_test', 'global_step', 'image_place', 'label_place', - 'summary_test_op'] - tensors_values = [loss_test, accuracy_test, global_step, image_place, label_place, summary_test_op] - tensors = dict(zip(tensors_key, tensors_values)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - - # The saver op. - saver = tf.train.Saver() - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################################### - ########## Defining the summary writers for test ########### - ################################################################### - - test_summary_dir = os.path.join(FLAGS.evaluation_path, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoints_directory, checkpoint_prefix)) - print("Model restored...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - num_test_samples = data.test.images.shape[0] - total_batch_test = int(num_test_samples / FLAGS.batch_size) - - # go through the batches - test_accuracy = 0 - for batch_num in range(total_batch_test): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - test_batch_data, test_batch_label = data.test.images[start_idx:end_idx], data.test.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run session and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - - test_batch_accuracy, batch_loss, test_summaries, test_step = sess.run( - [tensors['accuracy_test'], tensors['loss_test'], tensors['summary_test_op'], - tensors['global_step']], - feed_dict={tensors['image_place']: test_batch_data, - tensors['label_place']: test_batch_label}) - test_accuracy += test_batch_accuracy - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - test_summary_writer.add_summary(test_summaries, global_step=test_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - progress = float(batch_num + 1) / total_batch_test - progress_bar.print_progress(progress, epoch_num=1, loss=batch_loss) - - - ###################################################################### - ########## Calculate the accuracy for the whole test set ############# - ###################################################################### - test_accuracy_total = test_accuracy / float(total_batch_test) - print("Testing Accuracy= " + \ - "{:.5f}".format(test_accuracy_total)) diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/train.sh b/codes/python/3-neural_networks/convolutional-neural-network/code/train.sh deleted file mode 100755 index 4cc8126..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/train.sh +++ /dev/null @@ -1,15 +0,0 @@ - -# Run training. -python train_classifier.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/train_classifier.py b/codes/python/3-neural_networks/convolutional-neural-network/code/train_classifier.py deleted file mode 100755 index 758dc33..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/train_classifier.py +++ /dev/null @@ -1,245 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -from net_structure import net -from input_function import input -import os -import train_evaluation - -###################################### -######### Necessary Flags ############ -###################################### - -tf.app.flags.DEFINE_string( - 'train_dir', os.path.dirname(os.path.abspath(__file__)) + '/train_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_dir', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('max_num_checkpoint', 10, - 'Maximum number of checkpoints that TensorFlow will keep.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('num_epochs', 1, - 'Number of epochs for training.') - -########################################## -######## Learning rate flags ############# -########################################## -tf.app.flags.DEFINE_float('initial_learning_rate', 0.001, 'Initial learning rate.') - -tf.app.flags.DEFINE_float( - 'learning_rate_decay_factor', 0.95, 'Learning rate decay factor.') - -tf.app.flags.DEFINE_float( - 'num_epochs_per_decay', 1, 'Number of epoch pass to decay learning rate.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('fine_tuning', False, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('online_test', True, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.train_dir): - raise ValueError('You must assign absolute path for --train_dir') - -if not os.path.isabs(FLAGS.checkpoint_dir): - raise ValueError('You must assign absolute path for --checkpoint_dir') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=False, one_hot=False) - -# The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = data.train.images.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -height = dimensionality_train[1] -width = dimensionality_train[2] -num_channels = dimensionality_train[3] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - # learning rate policy - decay_steps = int(num_train_samples / FLAGS.batch_size * - FLAGS.num_epochs_per_decay) - learning_rate = tf.train.exponential_decay(FLAGS.initial_learning_rate, - global_step, - decay_steps, - FLAGS.learning_rate_decay_factor, - staircase=True, - name='exponential_decay_learning_rate') - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, height, width, num_channels]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + Loss + Accuracy ############## - ################################################## - - # MODEL - arg_scope = net.net_arg_scope(weight_decay=0.0005, is_training=FLAGS.is_training) - with tf.contrib.framework.arg_scope(arg_scope): - logits, end_points = net.net_architecture(image_place, num_classes=FLAGS.num_classes, - dropout_keep_prob=dropout_param, - is_training=FLAGS.is_training) - - # Define loss - with tf.name_scope('loss'): - loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=label_place)) - - # Accuracy - with tf.name_scope('accuracy'): - # Evaluate the model - correct_pred = tf.equal(tf.argmax(logits, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32)) - - ############################################# - ########### training operation ############## - ############################################# - - # Define optimizer by its default values - optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) - - # 'train_op' is a operation that is run for gradient update on parameters. - # Each execution of 'train_op' is a training step. - # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow - # update the 'global_step' and increment it by one! - - # gradient update. - with tf.name_scope('train'): - grads_and_vars = optimizer.compute_gradients(loss) - train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(data.train.images.shape[0], size=(3,)) - tf.summary.image('images', data.train.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - # Histogram and scalar summaries sammaries - # sparsity: This summary is the fraction of zero activation for the output of each layer! - # activations: This summary is the histogram of activation for the output of each layer! - # WARNING: tf.summary.histogram can be very time consuming so it will be calculated per epoch! - for end_point in end_points: - x = end_points[end_point] - tf.summary.scalar('sparsity/' + end_point, - tf.nn.zero_fraction(x), collections=['train', 'test']) - tf.summary.histogram('activations/' + end_point, x, collections=['per_epoch_train']) - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss, collections=['train', 'test']) - tf.summary.scalar("accuracy", accuracy, collections=['train', 'test']) - tf.summary.scalar("global_step", global_step, collections=['train']) - tf.summary.scalar("learning_rate", learning_rate, collections=['train']) - - # Merge all summaries together. - summary_train_op = tf.summary.merge_all('train') - summary_test_op = tf.summary.merge_all('test') - summary_epoch_train_op = tf.summary.merge_all('per_epoch_train') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - tensors_key = ['cost', 'accuracy', 'train_op', 'global_step', 'image_place', 'label_place', 'dropout_param', - 'summary_train_op', 'summary_test_op', 'summary_epoch_train_op'] - tensors = [loss, accuracy, train_op, global_step, image_place, label_place, dropout_param, summary_train_op, - summary_test_op, summary_epoch_train_op] - tensors_dictionary = dict(zip(tensors_key, tensors)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - # Run the saver. - # 'max_to_keep' flag determines the maximum number of models that the tensorflow save and keep. default by TensorFlow = 5. - saver = tf.train.Saver(max_to_keep=FLAGS.max_num_checkpoint) - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################### - ############ Training / Evaluation ############### - ################################################### - train_evaluation.train(sess=sess, saver=saver, tensors=tensors_dictionary, data=data, - train_dir=FLAGS.train_dir, - finetuning=FLAGS.fine_tuning, online_test=FLAGS.online_test, - num_epochs=FLAGS.num_epochs, checkpoint_dir=FLAGS.checkpoint_dir, - batch_size=FLAGS.batch_size) - - # Test in the end of experiment. - train_evaluation.evaluation(sess=sess, saver=saver, tensors=tensors_dictionary, data=data, - checkpoint_dir=FLAGS.checkpoint_dir) diff --git a/codes/python/3-neural_networks/convolutional-neural-network/code/train_evaluation.py b/codes/python/3-neural_networks/convolutional-neural-network/code/train_evaluation.py deleted file mode 100644 index afb1252..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/code/train_evaluation.py +++ /dev/null @@ -1,187 +0,0 @@ -from __future__ import print_function -import tensorflow as tf -import numpy as np -from auxiliary import progress_bar -import os -import sys - - -def train(**keywords): - """ - This function run the session whether in training or evaluation mode. - NOTE: **keywords is defined in order to make the code easily changable. - WARNING: All the arguments for the **keywords must be defined when calling this function. - **keywords: - :param sess: The default session. - :param saver: The saver operator to save and load the model weights. - :param tensors: The tensors dictionary defined by the graph. - :param data: The data structure. - :param train_dir: The training dir which is a reference for saving the logs and model checkpoints. - :param finetuning: If fine tuning should be done or random initialization is needed. - :param num_epochs: Number of epochs for training. - :param online_test: If the testing is done while training. - :param checkpoint_dir: The directory of the checkpoints. - :param batch_size: The training batch size. - - :return: - Run the session. - """ - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - ################################################################### - ########## Defining the summary writers for train/test ########### - ################################################################### - - train_summary_dir = os.path.join(keywords['train_dir'], "summaries", "train") - train_summary_writer = tf.summary.FileWriter(train_summary_dir) - train_summary_writer.add_graph(keywords['sess'].graph) - - test_summary_dir = os.path.join(keywords['train_dir'], "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(keywords['sess'].graph) - - # If fie-tuning flag in 'True' the model will be restored. - if keywords['finetuning']: - keywords['saver'].restore(keywords['sess'], os.path.join(keywords['checkpoint_dir'], checkpoint_prefix)) - print("Model restored for fine-tuning...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - for epoch in range(keywords['num_epochs']): - total_batch_training = int(keywords['data'].train.images.shape[0] / keywords['batch_size']) - - # go through the batches - for batch_num in range(total_batch_training): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * keywords['batch_size'] - end_idx = (batch_num + 1) * keywords['batch_size'] - - # Fit training using batch data - train_batch_data, train_batch_label = keywords['data'].train.images[start_idx:end_idx], keywords[ - 'data'].train.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run optimization op (backprop) and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - batch_loss, _, train_summaries, training_step = keywords['sess'].run( - [keywords['tensors']['cost'], keywords['tensors']['train_op'], keywords['tensors']['summary_train_op'], - keywords['tensors']['global_step']], - feed_dict={keywords['tensors']['image_place']: train_batch_data, - keywords['tensors']['label_place']: train_batch_label, - keywords['tensors']['dropout_param']: 0.5}) - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - train_summary_writer.add_summary(train_summaries, global_step=training_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - progress = float(batch_num + 1) / total_batch_training - progress_bar.print_progress(progress, epoch_num=epoch + 1, loss=batch_loss) - - # ################################################################ - # ############ Summaries per epoch of training ################### - # ################################################################ - summary_epoch_train_op = keywords['tensors']['summary_epoch_train_op'] - train_epoch_summaries = keywords['sess'].run(summary_epoch_train_op, - feed_dict={keywords['tensors']['image_place']: train_batch_data, - keywords['tensors']['label_place']: train_batch_label, - keywords['tensors']['dropout_param']: 1.0}) - - # Put the summaries to the train summary writer. - train_summary_writer.add_summary(train_epoch_summaries, global_step=training_step) - - ##################################################### - ########## Evaluation on the test data ############# - ##################################################### - - if keywords['online_test']: - # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation - # may lead to memory error. In presense of large testing samples, batch evaluation on testing is - # recommended as in the training phase. - test_accuracy_epoch, test_summaries = keywords['sess'].run( - [keywords['tensors']['accuracy'], keywords['tensors']['summary_test_op']], - feed_dict={keywords['tensors']['image_place']: keywords['data'].test.images, - keywords['tensors'][ - 'label_place']: keywords['data'].test.labels, - keywords['tensors'][ - 'dropout_param']: 1.}) - print("Epoch " + str(epoch + 1) + ", Testing Accuracy= " + \ - "{:.5f}".format(test_accuracy_epoch)) - - ########################################################### - ########## Write the summaries for test phase ############# - ########################################################### - - # Returning the value of global_step if necessary - current_step = tf.train.global_step(keywords['sess'], keywords['tensors']['global_step']) - - # Add the couter of global step for proper scaling between train and test summuries. - test_summary_writer.add_summary(test_summaries, global_step=current_step) - - ########################################################### - ############ Saving the model checkpoint ################## - ########################################################### - - # # The model will be saved when the training is done. - - # Create the path for saving the checkpoints. - if not os.path.exists(keywords['checkpoint_dir']): - os.makedirs(keywords['checkpoint_dir']) - - # save the model - save_path = keywords['saver'].save(keywords['sess'], os.path.join(keywords['checkpoint_dir'], checkpoint_prefix)) - print("Model saved in file: %s" % save_path) - - - ############################################################################ - ########## Run the session for pur evaluation on the test data ############# - ############################################################################ - - -def evaluation(**keywords): - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Get the input arguments - saver = keywords['saver'] - sess = keywords['sess'] - checkpoint_dir = keywords['checkpoint_dir'] - data = keywords['data'] - accuracy_tensor = keywords['tensors']['accuracy'] - image_place = keywords['tensors']['image_place'] - label_place = keywords['tensors']['label_place'] - dropout_param = keywords['tensors']['dropout_param'] - - - # Restoring the saved weights. - saver.restore(sess, os.path.join(checkpoint_dir, checkpoint_prefix)) - print("Model restored...") - - test_set = data.test.images - test_label = data.test.labels - # Evaluation of the model - test_accuracy = 100 * keywords['sess'].run(accuracy_tensor, feed_dict={ - image_place: test_set, - label_place: test_label, - dropout_param: 1.}) - - print("Final Test Accuracy is %% %.2f" % test_accuracy) diff --git a/codes/python/3-neural_networks/convolutional-neural-network/readme.rst b/codes/python/3-neural_networks/convolutional-neural-network/readme.rst deleted file mode 100644 index e6156ad..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/readme.rst +++ /dev/null @@ -1,103 +0,0 @@ -============================== -Convolutional Neural Network -============================== - -This is the code repository for the blog post `Train a Convolutional Neural Network as a Classifier`__. Please refer to this `wiki page`__ for more details. - -.. _cnn_classifier_post: http://machinelearninguru.com/deep_learning/tensorflow/neural_networks/cnn_classifier/cnn_classifier.html -__ cnn_classifier_post_ - -.. _cnn_classifier_wiki: https://github.com/astorfi/TensorFlow-World/wiki/Convolutional-Neural-Networks -__ cnn_classifier_wiki_ - - - - - - --------- -Training --------- - -**Train:** - -The training can be run using the **train.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./train.sh - -The bash script is as below: - - -.. code-block:: bash - - python train_classifier.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - -**helper:** - -In order to realize that what are the parameters as input running the following command is recommended: - -.. code-block:: bash - - python train_classifier.py --help - - -In which `train_classifier.py` is the main file for running the training. The result of the above command will be as below: - -.. code-block:: bash - - --train_dir TRAIN_DIR - Directory where event logs are written to. - --checkpoint_dir CHECKPOINT_DIR - Directory where checkpoints are written to. - --max_num_checkpoint MAX_NUM_CHECKPOINT - Maximum number of checkpoints that TensorFlow will - keep. - --num_classes NUM_CLASSES - Number of model clones to deploy. - --batch_size BATCH_SIZE - Number of model clones to deploy. - --num_epochs NUM_EPOCHS - Number of epochs for training. - --initial_learning_rate INITIAL_LEARNING_RATE - Initial learning rate. - --learning_rate_decay_factor LEARNING_RATE_DECAY_FACTOR - Learning rate decay factor. - --num_epochs_per_decay NUM_EPOCHS_PER_DECAY - Number of epoch pass to decay learning rate. - --is_training [IS_TRAINING] - Training/Testing. - --fine_tuning [FINE_TUNING] - Fine tuning is desired or not?. - --online_test [ONLINE_TEST] - Fine tuning is desired or not?. - --allow_soft_placement [ALLOW_SOFT_PLACEMENT] - Automatically put the variables on CPU if there is no - GPU support. - --log_device_placement [LOG_DEVICE_PLACEMENT] - Demonstrate which variables are on what device. - - ------------ -Evaluation ------------ - -The evaluation will be run using the **evaluation.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./evaluation.sh - - diff --git a/codes/python/3-neural_networks/convolutional-neural-network/requirements.txt b/codes/python/3-neural_networks/convolutional-neural-network/requirements.txt deleted file mode 100644 index acaa382..0000000 --- a/codes/python/3-neural_networks/convolutional-neural-network/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -- TensorFLow 1.0 -- numpy diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/code/evaluation.sh b/codes/python/3-neural_networks/multi-layer-perceptron/code/evaluation.sh deleted file mode 100755 index 232711f..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/code/evaluation.sh +++ /dev/null @@ -1,6 +0,0 @@ - -# Run training. -python test_classifier.py \ - --batch_size=512 \ - --allow_soft_placement - diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/code/test_classifier.py b/codes/python/3-neural_networks/multi-layer-perceptron/code/test_classifier.py deleted file mode 100644 index 058d727..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/code/test_classifier.py +++ /dev/null @@ -1,233 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -import os -import sys - -###################################### -######### Necessary Flags ############ -###################################### -tf.app.flags.DEFINE_string( - 'test_dir', os.path.dirname(os.path.abspath(__file__)) + '/test_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_dir', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 9), - 'Number of model clones to deploy.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.checkpoint_dir): - raise ValueError('You must assign absolute path for --checkpoint_dir') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=True) - - -# Dimentionality of train -dimensionality = mnist.train.images.shape - -# Dimensions -num_train_samples = dimensionality[0] -num_features = dimensionality[1] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + loss + accuracy ############## - ################################################## - - # MODEL(MPL with two hidden layer) - - # LAYER-1 - net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1') - - # LAYER-2 - net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2') - - # SOFTMAX - logits_last = tf.contrib.layers.fully_connected(inputs=net, num_outputs=FLAGS.num_classes, scope='fc-3') - - # Define loss - loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits_last, labels=label_place)) - - # Accuracy - # Evaluate the model - pred_classifier = tf.equal(tf.argmax(logits_last, 1), tf.argmax(label_place, 1)) - - # Accuracy calculation - accuracy = tf.reduce_mean(tf.cast(pred_classifier, tf.float32)) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Image summaries(draw three random images from data in both training and testing phases) - # The image summaries is only cerated for train summaries and it get three random images from the training set. - arr = np.random.randint(mnist.test.images.shape[0], size=(3,)) - tf.summary.image('images', mnist.test.images[arr], max_outputs=3, - collections=['per_epoch_train']) - - - # Summaries for loss and accuracy - tf.summary.scalar("loss", loss, collections=['test']) - tf.summary.scalar("accuracy", accuracy, collections=['test']) - tf.summary.scalar("global_step", global_step, collections=['test']) - - # Merge all summaries together. - summary_test_op = tf.summary.merge_all('test') - - ######################################################## - ############ # Defining the tensors list ############### - ######################################################## - - # tensors_key = ['loss', 'accuracy', 'global_step', 'image_place', 'label_place', - # 'summary_test_op'] - # tensors_values = [loss, accuracy, global_step, image_place, label_place, summary_test_op] - # tensors = dict(zip(tensors_key, tensors_values)) - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - - # The saver op. - saver = tf.train.Saver() - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################################### - ########## Defining the summary writers for test ########### - ################################################################### - - test_summary_dir = os.path.join(FLAGS.test_dir, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoint_dir, checkpoint_prefix)) - print("Model restored...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - total_batch_test = int(mnist.test.images.shape[0] / FLAGS.batch_size) - - # go through the batches - test_accuracy = 0 - for batch_num in range(total_batch_test): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - test_batch_data, test_batch_label = mnist.test.images[start_idx:end_idx], mnist.test.labels[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run session and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - - test_batch_accuracy, batch_loss, test_summaries, test_step = sess.run( - [accuracy, loss, summary_test_op, - global_step], - feed_dict={image_place: test_batch_data, - label_place: test_batch_label}) - test_accuracy += test_batch_accuracy - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - test_summary_writer.add_summary(test_summaries, global_step=test_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - print("Batch " + str(batch_num + 1) + ", Testing Loss= " + \ - "{:.5f}".format(test_batch_accuracy)) - - - ###################################################################### - ########## Calculate the accuracy for the whole test set ############# - ###################################################################### - test_accuracy_total = test_accuracy / float(total_batch_test) - print("Total Test Accuracy= " + \ - "{:.5f}".format(test_accuracy_total)) diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/code/train.sh b/codes/python/3-neural_networks/multi-layer-perceptron/code/train.sh deleted file mode 100755 index d5fdb4c..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/code/train.sh +++ /dev/null @@ -1,15 +0,0 @@ - -# Run training. -python train_mlp.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb b/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb deleted file mode 100644 index ad01223..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.ipynb +++ /dev/null @@ -1,357 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from __future__ import print_function\n", - "from tensorflow.examples.tutorials.mnist import input_data\n", - "import tensorflow as tf\n", - "import numpy as np\n", - "import os" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "######################################\n", - "######### Necessary Flags ############\n", - "######################################\n", - "\n", - "num_classes = 10\n", - "batch_size = 128\n", - "num_epochs = 10" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "##########################################\n", - "######## Learning rate flags #############\n", - "##########################################\n", - "initial_learning_rate = 0.001\n", - "learning_rate_decay_factor = 0.95\n", - "num_epochs_per_decay = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#########################################\n", - "########## status flags #################\n", - "#########################################\n", - "is_training = False\n", - "fine_tuning = False\n", - "online_test = True\n", - "allow_soft_placement = True\n", - "log_device_placement = False" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", - "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", - "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" - ] - } - ], - "source": [ - "##########################################\n", - "####### Load and Organize Data ###########\n", - "##########################################\n", - "'''\n", - "In this part the input must be prepared.\n", - "\n", - " 1 - The MNIST data will be downloaded.\n", - " 2 - The images and labels for both training and testing will be extracted.\n", - " 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs\n", - " to be fed to the CNN architecture. So it needs to be reshaped.\n", - "\n", - "'''\n", - "\n", - "# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist)\n", - "# It checks and download MNIST if it's not already downloaded then extract it.\n", - "# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images.\n", - "mnist = input_data.read_data_sets(\"MNIST_data/\", reshape=True, one_hot=True)\n", - "train_data = mnist.train.images\n", - "train_label = mnist.train.labels\n", - "test_data = mnist.test.images\n", - "test_label = mnist.test.labels\n", - "\n", - "# # The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics.\n", - "# data = input.provide_data(mnist)\n", - "\n", - "# Dimentionality of train\n", - "dimensionality_train = train_data.shape\n", - "\n", - "# Dimensions\n", - "num_train_samples = dimensionality_train[0]\n", - "num_features = dimensionality_train[1]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch #1, Train Loss=0.248\n", - "Test Accuracy= 0.8565\n", - "Epoch #2, Train Loss=0.242\n", - "Test Accuracy= 0.8610\n", - "Epoch #3, Train Loss=0.240\n", - "Test Accuracy= 0.8676\n", - "Epoch #4, Train Loss=0.236\n", - "Test Accuracy= 0.8737\n", - "Epoch #5, Train Loss=0.235\n", - "Test Accuracy= 0.8740\n", - "Epoch #6, Train Loss=0.234\n", - "Test Accuracy= 0.8753\n", - "Epoch #7, Train Loss=0.234\n", - "Test Accuracy= 0.8756\n", - "Epoch #8, Train Loss=0.244\n", - "Test Accuracy= 0.8766\n", - "Epoch #9, Train Loss=0.234\n", - "Test Accuracy= 0.8765\n", - "Epoch #10, Train Loss=0.236\n", - "Test Accuracy= 0.8786\n", - "Final Test Accuracy is 0.88\n" - ] - } - ], - "source": [ - "#######################################\n", - "########## Defining Graph ############\n", - "#######################################\n", - "\n", - "graph = tf.Graph()\n", - "with graph.as_default():\n", - " ###################################\n", - " ########### Parameters ############\n", - " ###################################\n", - "\n", - " # global step\n", - " global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", - "\n", - " # learning rate policy\n", - " decay_steps = int(num_train_samples / batch_size *\n", - " num_epochs_per_decay)\n", - " learning_rate = tf.train.exponential_decay(initial_learning_rate,\n", - " global_step,\n", - " decay_steps,\n", - " learning_rate_decay_factor,\n", - " staircase=True,\n", - " name='exponential_decay_learning_rate')\n", - "\n", - " ###############################################\n", - " ########### Defining place holders ############\n", - " ###############################################\n", - " image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image')\n", - " label_place = tf.placeholder(tf.float32, shape=([None, num_classes]), name='gt')\n", - " dropout_param = tf.placeholder(tf.float32)\n", - "\n", - " ##################################################\n", - " ########### Model + Loss + Accuracy ##############\n", - " ##################################################\n", - "\n", - " # MODEL(MPL with two hidden layer)\n", - "\n", - " # LAYER-1\n", - " net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1')\n", - "\n", - " # LAYER-2\n", - " net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2')\n", - "\n", - " # SOFTMAX\n", - " logits_pre_softmax = tf.contrib.layers.fully_connected(inputs=net, num_outputs=num_classes, scope='fc-3')\n", - "\n", - " # Define loss\n", - " softmax_loss = tf.reduce_mean(\n", - " tf.nn.softmax_cross_entropy_with_logits(logits=logits_pre_softmax, labels=label_place))\n", - "\n", - " # Accuracy\n", - " accuracy = tf.reduce_mean(\n", - " tf.cast(tf.equal(tf.argmax(logits_pre_softmax, 1), tf.argmax(label_place, 1)), tf.float32))\n", - "\n", - " #############################################\n", - " ########### training operation ##############\n", - " #############################################\n", - "\n", - " # Define optimizer by its default values\n", - " optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", - "\n", - " # 'train_op' is a operation that is run for gradient update on parameters.\n", - " # Each execution of 'train_op' is a training step.\n", - " # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow\n", - " # update the 'global_step' and increment it by one!\n", - "\n", - " # gradient update.\n", - " with tf.name_scope('train_scope'):\n", - " grads = optimizer.compute_gradients(softmax_loss)\n", - " train_op = optimizer.apply_gradients(grads, global_step=global_step)\n", - "\n", - " ###############################################\n", - " ############ Define Sammaries #################\n", - " ###############################################\n", - "\n", - " # Summaries for loss and accuracy\n", - " tf.summary.scalar(\"loss\", softmax_loss, collections=['train', 'test'])\n", - " tf.summary.scalar(\"accuracy\", accuracy, collections=['train', 'test'])\n", - " tf.summary.scalar(\"global_step\", global_step, collections=['train'])\n", - " tf.summary.scalar(\"learning_rate\", learning_rate, collections=['train'])\n", - "\n", - " # Merge all summaries together.\n", - " summary_train_op = tf.summary.merge_all('train')\n", - " summary_test_op = tf.summary.merge_all('test')\n", - "\n", - " ############################################\n", - " ############ Run the Session ###############\n", - " ############################################\n", - " session_conf = tf.ConfigProto(\n", - " allow_soft_placement=allow_soft_placement,\n", - " log_device_placement=log_device_placement)\n", - " sess = tf.Session(graph=graph, config=session_conf)\n", - "\n", - " with sess.as_default():\n", - "\n", - " # Initialize all variables\n", - " sess.run(tf.global_variables_initializer())\n", - "\n", - " ###################################################################\n", - " ########## Run the training and loop over the batches #############\n", - " ###################################################################\n", - " for epoch in range(num_epochs):\n", - " total_batch_training = int(train_data.shape[0] / batch_size)\n", - "\n", - " # go through the batches\n", - " for batch_num in range(total_batch_training):\n", - " #################################################\n", - " ########## Get the training batches #############\n", - " #################################################\n", - "\n", - " start_idx = batch_num * batch_size\n", - " end_idx = (batch_num + 1) * batch_size\n", - "\n", - " # Fit training using batch data\n", - " train_batch_data, train_batch_label = train_data[start_idx:end_idx], train_label[\n", - " start_idx:end_idx]\n", - "\n", - " ########################################\n", - " ########## Run the session #############\n", - " ########################################\n", - "\n", - " # Run optimization op (backprop) and Calculate batch loss and accuracy\n", - " # When the tensor tensors['global_step'] is evaluated, it will be incremented by one.\n", - " batch_loss, _, training_step = sess.run(\n", - " [softmax_loss, train_op, global_step],\n", - " feed_dict={image_place: train_batch_data,\n", - " label_place: train_batch_label,\n", - " dropout_param: 0.5})\n", - "\n", - "\n", - " #################################################\n", - " ########## Plot the progressive bar #############\n", - " #################################################\n", - "\n", - " print(\"Epoch #\" + str(epoch + 1) + \", Train Loss=\" + \\\n", - " \"{:.3f}\".format(batch_loss))\n", - "\n", - " #####################################################\n", - " ########## Evaluation on the test data #############\n", - " #####################################################\n", - "\n", - " if online_test:\n", - " # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation\n", - " # may lead to memory error. In presense of large testing samples, batch evaluation on testing is\n", - " # recommended as in the training phase.\n", - " test_accuracy_epoch, test_summaries = sess.run(\n", - " [accuracy, summary_test_op],\n", - " feed_dict={image_place: test_data,\n", - " label_place: test_label,\n", - " dropout_param: 1.})\n", - " print(\"Test Accuracy= \" + \\\n", - " \"{:.4f}\".format(test_accuracy_epoch))\n", - "\n", - " ###########################################################\n", - " ########## Write the summaries for test phase #############\n", - " ###########################################################\n", - "\n", - " # Returning the value of global_step if necessary\n", - " current_step = tf.train.global_step(sess, global_step)\n", - "\n", - "\n", - " # Evaluation of the model\n", - " total_test_accuracy = sess.run(accuracy, feed_dict={\n", - " image_place: test_data,\n", - " label_place: test_label,\n", - " dropout_param: 1.})\n", - "\n", - " print(\"Final Test Accuracy is %.2f\" % total_test_accuracy)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.py b/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.py deleted file mode 100755 index 21da176..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/code/train_mlp.py +++ /dev/null @@ -1,336 +0,0 @@ -from __future__ import print_function -from tensorflow.examples.tutorials.mnist import input_data -import tensorflow as tf -import numpy as np -import os - -###################################### -######### Necessary Flags ############ -###################################### - -tf.app.flags.DEFINE_string( - 'train_root', os.path.dirname(os.path.abspath(__file__)) + '/train_logs', - 'Directory where event logs are written to.') - -tf.app.flags.DEFINE_string( - 'checkpoint_root', - os.path.dirname(os.path.abspath(__file__)) + '/checkpoints', - 'Directory where checkpoints are written to.') - -tf.app.flags.DEFINE_integer('max_num_checkpoint', 10, - 'Maximum number of checkpoints that TensorFlow will keep.') - -tf.app.flags.DEFINE_integer('num_classes', 10, - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('batch_size', np.power(2, 7), - 'Number of model clones to deploy.') - -tf.app.flags.DEFINE_integer('num_epochs', 5, - 'Number of epochs for training.') - -########################################## -######## Learning rate flags ############# -########################################## -tf.app.flags.DEFINE_float('initial_learning_rate', 0.001, 'Initial learning rate.') - -tf.app.flags.DEFINE_float( - 'learning_rate_decay_factor', 0.95, 'Learning rate decay factor.') - -tf.app.flags.DEFINE_float( - 'num_epochs_per_decay', 1, 'Number of epoch pass to decay learning rate.') - -######################################### -########## status flags ################# -######################################### -tf.app.flags.DEFINE_boolean('is_training', False, - 'Training/Testing.') - -tf.app.flags.DEFINE_boolean('fine_tuning', False, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('online_test', True, - 'Fine tuning is desired or not?.') - -tf.app.flags.DEFINE_boolean('allow_soft_placement', True, - 'Automatically put the variables on CPU if there is no GPU support.') - -tf.app.flags.DEFINE_boolean('log_device_placement', False, - 'Demonstrate which variables are on what device.') - -# Store all elemnts in FLAG structure! -FLAGS = tf.app.flags.FLAGS - -################################################ -################# handling errors!############## -################################################ -if not os.path.isabs(FLAGS.train_root): - raise ValueError('You must assign absolute path for --train_root') - -if not os.path.isabs(FLAGS.checkpoint_root): - raise ValueError('You must assign absolute path for --checkpoint_root') - -########################################## -####### Load and Organize Data ########### -########################################## -''' -In this part the input must be prepared. - - 1 - The MNIST data will be downloaded. - 2 - The images and labels for both training and testing will be extracted. - 3 - The prepared data format(?,784) is different by the appropriate image shape(?,28,28,1) which needs - to be fed to the CNN architecture. So it needs to be reshaped. - -''' - -# Download and get MNIST dataset(available in tensorflow.contrib.learn.python.learn.datasets.mnist) -# It checks and download MNIST if it's not already downloaded then extract it. -# The 'reshape' is True by default to extract feature vectors but we set it to false to we get the original images. -mnist = input_data.read_data_sets("MNIST_data/", reshape=True, one_hot=True) -train_data = mnist.train.images -train_label = mnist.train.labels -test_data = mnist.test.images -test_label = mnist.test.labels - -# # The 'input.provide_data' is provided to organize any custom dataset which has specific characteristics. -# data = input.provide_data(mnist) - -# Dimentionality of train -dimensionality_train = train_data.shape - -# Dimensions -num_train_samples = dimensionality_train[0] -num_features = dimensionality_train[1] - -####################################### -########## Defining Graph ############ -####################################### - -graph = tf.Graph() -with graph.as_default(): - ################################### - ########### Parameters ############ - ################################### - - # global step - global_step = tf.Variable(0, name="global_step", trainable=False) - - # learning rate policy - decay_steps = int(num_train_samples / FLAGS.batch_size * - FLAGS.num_epochs_per_decay) - learning_rate = tf.train.exponential_decay(FLAGS.initial_learning_rate, - global_step, - decay_steps, - FLAGS.learning_rate_decay_factor, - staircase=True, - name='exponential_decay_learning_rate') - - ############################################### - ########### Defining place holders ############ - ############################################### - image_place = tf.placeholder(tf.float32, shape=([None, num_features]), name='image') - label_place = tf.placeholder(tf.float32, shape=([None, FLAGS.num_classes]), name='gt') - dropout_param = tf.placeholder(tf.float32) - - ################################################## - ########### Model + Loss + Accuracy ############## - ################################################## - - # MODEL(MPL with two hidden layer) - - # LAYER-1 - net = tf.contrib.layers.fully_connected(inputs=image_place, num_outputs=250, scope='fc-1') - - # LAYER-2 - net = tf.contrib.layers.fully_connected(inputs=net, num_outputs=250, scope='fc-2') - - # SOFTMAX - logits_pre_softmax = tf.contrib.layers.fully_connected(inputs=net, num_outputs=FLAGS.num_classes, scope='fc-3') - - # Define loss - softmax_loss = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(logits=logits_pre_softmax, labels=label_place)) - - # Accuracy - accuracy = tf.reduce_mean( - tf.cast(tf.equal(tf.argmax(logits_pre_softmax, 1), tf.argmax(label_place, 1)), tf.float32)) - - ############################################# - ########### training operation ############## - ############################################# - - # Define optimizer by its default values - optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) - - # 'train_op' is a operation that is run for gradient update on parameters. - # Each execution of 'train_op' is a training step. - # By passing 'global_step' to the optimizer, each time that the 'train_op' is run, Tensorflow - # update the 'global_step' and increment it by one! - - # gradient update. - with tf.name_scope('train_scope'): - grads = optimizer.compute_gradients(softmax_loss) - train_op = optimizer.apply_gradients(grads, global_step=global_step) - - ############################################### - ############ Define Sammaries ################# - ############################################### - - # Summaries for loss and accuracy - tf.summary.scalar("loss", softmax_loss, collections=['train', 'test']) - tf.summary.scalar("accuracy", accuracy, collections=['train', 'test']) - tf.summary.scalar("global_step", global_step, collections=['train']) - tf.summary.scalar("learning_rate", learning_rate, collections=['train']) - - # Merge all summaries together. - summary_train_op = tf.summary.merge_all('train') - summary_test_op = tf.summary.merge_all('test') - - ############################################ - ############ Run the Session ############### - ############################################ - session_conf = tf.ConfigProto( - allow_soft_placement=FLAGS.allow_soft_placement, - log_device_placement=FLAGS.log_device_placement) - sess = tf.Session(graph=graph, config=session_conf) - - with sess.as_default(): - # Run the saver. - # 'max_to_keep' flag determines the maximum number of models that the tensorflow save and keep. default by TensorFlow = 5. - saver = tf.train.Saver(max_to_keep=FLAGS.max_num_checkpoint) - - # Initialize all variables - sess.run(tf.global_variables_initializer()) - - ################################################### - ############ Training / Evaluation ############### - ################################################### - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - ################################################################### - ########## Defining the summary writers for train/test ########### - ################################################################### - - train_summary_dir = os.path.join(FLAGS.train_root, "summaries", "train") - train_summary_writer = tf.summary.FileWriter(train_summary_dir) - train_summary_writer.add_graph(sess.graph) - - test_summary_dir = os.path.join(FLAGS.train_root, "summaries", "test") - test_summary_writer = tf.summary.FileWriter(test_summary_dir) - test_summary_writer.add_graph(sess.graph) - - # If fine-tuning flag in 'True' the model will be restored. - if FLAGS.fine_tuning: - saver.restore(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model restored for fine-tuning...") - - ################################################################### - ########## Run the training and loop over the batches ############# - ################################################################### - for epoch in range(FLAGS.num_epochs): - total_batch_training = int(train_data.shape[0] / FLAGS.batch_size) - - # go through the batches - for batch_num in range(total_batch_training): - ################################################# - ########## Get the training batches ############# - ################################################# - - start_idx = batch_num * FLAGS.batch_size - end_idx = (batch_num + 1) * FLAGS.batch_size - - # Fit training using batch data - train_batch_data, train_batch_label = train_data[start_idx:end_idx], train_label[ - start_idx:end_idx] - - ######################################## - ########## Run the session ############# - ######################################## - - # Run optimization op (backprop) and Calculate batch loss and accuracy - # When the tensor tensors['global_step'] is evaluated, it will be incremented by one. - batch_loss, _, train_summaries, training_step = sess.run( - [softmax_loss, train_op, - summary_train_op, - global_step], - feed_dict={image_place: train_batch_data, - label_place: train_batch_label, - dropout_param: 0.5}) - - ######################################## - ########## Write summaries ############# - ######################################## - - # Write the summaries - train_summary_writer.add_summary(train_summaries, global_step=training_step) - - # # Write the specific summaries for training phase. - # train_summary_writer.add_summary(train_image_summary, global_step=training_step) - - ################################################# - ########## Plot the progressive bar ############# - ################################################# - - print("Epoch #" + str(epoch + 1) + ", Train Loss=" + \ - "{:.3f}".format(batch_loss)) - - ##################################################### - ########## Evaluation on the test data ############# - ##################################################### - - if FLAGS.online_test: - # WARNING: In this evaluation the whole test data is fed. In case the test data is huge this implementation - # may lead to memory error. In presense of large testing samples, batch evaluation on testing is - # recommended as in the training phase. - test_accuracy_epoch, test_summaries = sess.run( - [accuracy, summary_test_op], - feed_dict={image_place: test_data, - label_place: test_label, - dropout_param: 1.}) - print("Test Accuracy= " + \ - "{:.4f}".format(test_accuracy_epoch)) - - ########################################################### - ########## Write the summaries for test phase ############# - ########################################################### - - # Returning the value of global_step if necessary - current_step = tf.train.global_step(sess, global_step) - - # Add the couter of global step for proper scaling between train and test summuries. - test_summary_writer.add_summary(test_summaries, global_step=current_step) - - ########################################################### - ############ Saving the model checkpoint ################## - ########################################################### - - # # The model will be saved when the training is done. - - # Create the path for saving the checkpoints. - if not os.path.exists(FLAGS.checkpoint_root): - os.makedirs(FLAGS.checkpoint_root) - - # save the model - save_path = saver.save(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model saved in file: %s" % save_path) - - ############################################################################ - ########## Run the session for pur evaluation on the test data ############# - ############################################################################ - - # The prefix for checkpoint files - checkpoint_prefix = 'model' - - # Restoring the saved weights. - saver.restore(sess, os.path.join(FLAGS.checkpoint_root, checkpoint_prefix)) - print("Model restored...") - - # Evaluation of the model - total_test_accuracy = sess.run(accuracy, feed_dict={ - image_place: test_data, - label_place: test_label, - dropout_param: 1.}) - - print("Final Test Accuracy is %.2f" % total_test_accuracy) diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/readme.rst b/codes/python/3-neural_networks/multi-layer-perceptron/readme.rst deleted file mode 100644 index c40907a..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/readme.rst +++ /dev/null @@ -1,97 +0,0 @@ -========================= -Multi Layer Perceptron -========================= - -This code is developed for training a ``Multi Layer Perceptron`` architecture in which the input will be feed-forwarded to the network that contains some hidden layers. - -.. figure:: https://github.com/astorfi/TensorFlow-World/blob/master/docs/_img/3-neural_network/multi-layer-perceptron/neural-network.png - :scale: 50 % - :align: center - - --------- -Training --------- - -**Train:** - -The training can be run using the **train.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./train.sh - -The bash script is as below: - - -.. code-block:: bash - - python train_mlp.py \ - --batch_size=512 \ - --max_num_checkpoint=10 \ - --num_classes=10 \ - --num_epochs=1 \ - --initial_learning_rate=0.001 \ - --num_epochs_per_decay=1 \ - --is_training=True \ - --allow_soft_placement=True \ - --fine_tuning=False \ - --online_test=True \ - --log_device_placement=False - -**helper:** - -In order to realize that what are the parameters as input running the following command is recommended: - -.. code-block:: bash - - python train_mlp.py --help - - -In which `train_mlp.py` is the main file for running the training. The result of the above command will be as below: - -.. code-block:: bash - - --train_dir TRAIN_DIR - Directory where event logs are written to. - --checkpoint_dir CHECKPOINT_DIR - Directory where checkpoints are written to. - --max_num_checkpoint MAX_NUM_CHECKPOINT - Maximum number of checkpoints that TensorFlow will - keep. - --num_classes NUM_CLASSES - Number of model clones to deploy. - --batch_size BATCH_SIZE - Number of model clones to deploy. - --num_epochs NUM_EPOCHS - Number of epochs for training. - --initial_learning_rate INITIAL_LEARNING_RATE - Initial learning rate. - --learning_rate_decay_factor LEARNING_RATE_DECAY_FACTOR - Learning rate decay factor. - --num_epochs_per_decay NUM_EPOCHS_PER_DECAY - Number of epoch pass to decay learning rate. - --is_training [IS_TRAINING] - Training/Testing. - --fine_tuning [FINE_TUNING] - Fine tuning is desired or not?. - --online_test [ONLINE_TEST] - Fine tuning is desired or not?. - --allow_soft_placement [ALLOW_SOFT_PLACEMENT] - Automatically put the variables on CPU if there is no - GPU support. - --log_device_placement [LOG_DEVICE_PLACEMENT] - Demonstrate which variables are on what device. - - ------------ -Evaluation ------------ - -The evaluation will be run using the **evaluation.sh** `bash script` file using the following command: - -.. code-block:: bash - - ./evaluation.sh - - diff --git a/codes/python/3-neural_networks/multi-layer-perceptron/requirements.txt b/codes/python/3-neural_networks/multi-layer-perceptron/requirements.txt deleted file mode 100644 index acaa382..0000000 --- a/codes/python/3-neural_networks/multi-layer-perceptron/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -- TensorFLow 1.0 -- numpy diff --git a/codes/python/3-neural_networks/readme.md b/codes/python/3-neural_networks/readme.md deleted file mode 100644 index 68f6f40..0000000 --- a/codes/python/3-neural_networks/readme.md +++ /dev/null @@ -1 +0,0 @@ -The tutorial in TensorFlow related to Neural Network architectures. diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/README.rst b/codes/python/3-neural_networks/recurrent-neural-networks/README.rst deleted file mode 100644 index e69de29..0000000 diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz b/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz deleted file mode 100644 index 5ace8ea..0000000 Binary files a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-images-idx3-ubyte.gz and /dev/null differ diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz b/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz deleted file mode 100644 index a7e1415..0000000 Binary files a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/t10k-labels-idx1-ubyte.gz and /dev/null differ diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz b/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz deleted file mode 100644 index b50e4b6..0000000 Binary files a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-images-idx3-ubyte.gz and /dev/null differ diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz b/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz deleted file mode 100644 index 707a576..0000000 Binary files a/codes/python/3-neural_networks/recurrent-neural-networks/code/MNIST_data/train-labels-idx1-ubyte.gz and /dev/null differ diff --git a/codes/python/3-neural_networks/recurrent-neural-networks/code/rnn.py b/codes/python/3-neural_networks/recurrent-neural-networks/code/rnn.py deleted file mode 100644 index 9993a4f..0000000 --- a/codes/python/3-neural_networks/recurrent-neural-networks/code/rnn.py +++ /dev/null @@ -1,99 +0,0 @@ -import tensorflow as tf -import numpy as np -import matplotlib.pyplot as plt -import argparse - -# Useful function for arguments. -def str2bool(v): - return v.lower() in ("yes", "true") - -# Parser -parser = argparse.ArgumentParser(description='Creating Classifier') - -###################### -# Optimization Flags # -###################### - -tf.app.flags.DEFINE_float('learning_rate', default=0.001, help='initial learning rate') -tf.app.flags.DEFINE_integer('seed', default=111, help='seed') - -################## -# Training Flags # -################## -tf.app.flags.DEFINE_integer('batch_size', default=128, help='Batch size for training') -tf.app.flags.DEFINE_integer('num_epoch', default=10, help='Number of training iterations') -tf.app.flags.DEFINE_integer('batch_per_log', default=10, help='Print the log at what number of batches?') - -############### -# Model Flags # -############### -tf.app.flags.DEFINE_integer('hidden_size', default=128, help='Number of neurons for RNN hodden layer') - -# Store all elemnts in FLAG structure! -args = tf.app.flags.FLAGS - - -# Reset the graph set the random numbers to be the same using "seed" -tf.reset_default_graph() -tf.set_random_seed(args.seed) -np.random.seed(args.seed) - -# Divide 28x28 images to rows of data to feed to RNN as sequantial information -step_size = 28 -input_size = 28 -output_size = 10 - -# Input tensors -X = tf.placeholder(tf.float32, [None, step_size, input_size]) -y = tf.placeholder(tf.int32, [None]) - -# Rnn -cell = tf.nn.rnn_cell.BasicRNNCell(num_units=args.hidden_size) -output, state = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32) - -# Forward pass and loss calcualtion -logits = tf.layers.dense(state, output_size) -cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits) -loss = tf.reduce_mean(cross_entropy) - -# optimizer -optimizer = tf.train.AdamOptimizer(learning_rate=args.learning_rate).minimize(loss) - -# Prediction -prediction = tf.nn.in_top_k(logits, y, 1) -accuracy = tf.reduce_mean(tf.cast(prediction, tf.float32)) - -# input data -from tensorflow.examples.tutorials.mnist import input_data -mnist = input_data.read_data_sets("MNIST_data/") - -# Process MNIST -X_test = mnist.test.images # X_test shape: [num_test, 28*28] -X_test = X_test.reshape([-1, step_size, input_size]) -y_test = mnist.test.labels - -# initialize the variables -init = tf.global_variables_initializer() - -# Empty list for tracking -loss_train_list = [] -acc_train_list = [] - -# train the model -with tf.Session() as sess: - sess.run(init) - n_batches = mnist.train.num_examples // args.batch_size - for epoch in range(args.num_epoch): - for batch in range(n_batches): - X_train, y_train = mnist.train.next_batch(args.batch_size) - X_train = X_train.reshape([-1, step_size, input_size]) - sess.run(optimizer, feed_dict={X: X_train, y: y_train}) - loss_train, acc_train = sess.run( - [loss, accuracy], feed_dict={X: X_train, y: y_train}) - loss_train_list.append(loss_train) - acc_train_list.append(acc_train) - print('Epoch: {}, Train Loss: {:.3f}, Train Acc: {:.3f}'.format( - epoch + 1, loss_train, acc_train)) - loss_test, acc_test = sess.run( - [loss, accuracy], feed_dict={X: X_test, y: y_test}) - print('Test Loss: {:.3f}, Test Acc: {:.3f}'.format(loss_test, acc_test)) diff --git a/codes/python/advanced/custom_training.py b/codes/python/advanced/custom_training.py new file mode 100644 index 0000000..c4c7539 --- /dev/null +++ b/codes/python/advanced/custom_training.py @@ -0,0 +1,121 @@ +import tensorflow as tf +import numpy as np + +# Load MNIST data +(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() +# Preprocessing +x_train = x_train / 255.0 +x_test = x_test / 255.0 + +# Add one domention to make 3D images +x_train = x_train[...,tf.newaxis] +x_test = x_test[...,tf.newaxis] + +# Track the data type +dataType, dataShape = x_train.dtype, x_train.shape +print(f"Data type and shape x_train: {dataType} {dataShape}") +labelType, labelShape = y_train.dtype, y_train.shape +print(f"Data type and shape y_train: {labelType} {labelShape}") + +im_list = [] +n_samples_to_show = 16 +c = 0 +for i in range(n_samples_to_show): + im_list.append(x_train[i]) +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im[:,:,0], 'gray') +plt.show() + +batch_size = 32 +# Prepare the training dataset. +train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)) +train_dataset = train_dataset.shuffle(buffer_size=1024).batch(batch_size) + +# Prepare the validation dataset. +test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test)) +test_dataset = test_dataset.batch(batch_size) + +# Model building +NUM_CLASSES = 10 +model = tf.keras.Sequential([ + tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)), + tf.keras.layers.MaxPooling2D((2, 2)), + tf.keras.layers.Conv2D(32, (3, 3), activation='relu'), + tf.keras.layers.Flatten(), + tf.keras.layers.Dense(32, activation='relu'), + tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')] + ) + +# Defining loss function +loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False) +accuracy_metric = tf.keras.metrics.Accuracy() + +# Calculate loss +def loss_fn(gt_label, pred): + # training argument define the beehaviour of layers with respect + # to whether we are training the model or not. It is important for layers + # such as BatchNorm and Dropout. + return loss_object(y_true=gt_label, y_pred=pred) + +def accuracy_fn(gt_label, output): + # calculate the accuracy by turning output into labels with argmax + pred = tf.argmax(output, axis=1, output_type=tf.int32) + return accuracy_metric(pred, gt_label) + +# Define the optimizer +optimizer = tf.keras.optimizers.Adam(learning_rate=0.01) + +NUM_EPOCHS = 5 +EPOCH_PER_DISPLAY = 1 +total_loss = [] +for epoch in range(NUM_EPOCHS): + + running_loss = [] + running_accuracy = [] + + # Training + for input, target in train_dataset: + + # Calculate and track graduents + with tf.GradientTape() as tape: + + # Calculate model output and loss + output = model(input, training=True) + loss_ = loss_fn(target, output) + accuracy_ = accuracy_fn(target, output) + + # Tape gradients + grads = tape.gradient(loss_, model.trainable_variables) + + # Track batch loss and accuracy + running_loss.append(loss_) + running_accuracy.append(accuracy_) + + # Optimize model based on the gradients + optimizer.apply_gradients(zip(grads, model.trainable_variables)) + + # Epoch calculations + epoch_loss = np.mean(running_loss) + epoch_accuracy = np.mean(running_accuracy) + if (epoch + 1) % EPOCH_PER_DISPLAY == 0: + print("Epoch {}: Loss: {:.4f} Accuracy: {:.2f}%".format(epoch+1, epoch_loss, epoch_accuracy * 100)) + +# Calculate the accurcy on the test set +running_accuracy = [] +for (input, gt_label) in test_dataset: + output = model(input, training=False) + accuracy_ = accuracy_fn(gt_label, output) + running_accuracy.append(accuracy_) + +print("Test accuracy: {:.3%}".format(np.mean(running_accuracy))) \ No newline at end of file diff --git a/codes/python/advanced/dataset_generator.py b/codes/python/advanced/dataset_generator.py new file mode 100644 index 0000000..c23e698 --- /dev/null +++ b/codes/python/advanced/dataset_generator.py @@ -0,0 +1,172 @@ +# -*- coding: utf-8 -*- +"""dataset_generator.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1SFWk7Ap06ZkvP2HmLhXLiyyqo-ei35M1 + +# Dataset generators + +In this advanced tutorials I demonstrate an efficient way of using the TensorFlow [tf.Data API](https://www.tensorflow.org/guide/data) to create a dataset. This approach has some important advantages: + +1. It provides a lot of flexibility in terms of using Python and packages such as NumPy to create a dataset. +2. By working with large databases, you can call the samples and shuffling **on-demand** which significantly reduce memory usage. In fact, memory won't be a bottleneck anymore. + +This will be done by [Python generator functions](https://www.tensorflow.org/guide/data#consuming_python_generators) to create [tf.data.Dataset](https://www.tensorflow.org/api_docs/python/tf/data/Dataset) objects. The process is as follows: + +1. By using a generator function, we dictate the way data must be generated. +2. By using [tf.data.Dataset.from_generator](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#from_generator) method, we create the TensorFlow dataset. +""" + +import tensorflow as tf +import numpy as np + +# Load MNIST data +(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() +# Preprocessing +x_train = x_train / 255.0 +x_test = x_test / 255.0 + +# Add one domention to make 3D images +x_train = x_train[...,tf.newaxis] +x_test = x_test[...,tf.newaxis] + +# Track the data type +dataType, dataShape = x_train.dtype, x_train.shape +print(f"Data type and shape x_train: {dataType} {dataShape}") +labelType, labelShape = y_train.dtype, y_train.shape +print(f"Data type and shape y_train: {labelType} {labelShape}") + +"""## Generators + +Here, I define separate generators for train/test. The generator function, pick a random sample from the dataset at each step. This create a shuffled dataset without the need to use the [.shuffle()](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle) method. Sometimes [.shuffle()](https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle) method can be very [memory consuming](https://www.tensorflow.org/guide/data_performance#reducing_memory_footprint). +""" + +# Defining generator functions for train/test samples +TRAIN_LEN = x_train.shape[0] +def gen_pairs_train(): + for i in range(TRAIN_LEN): + # Get a random image each time + idx = np.random.randint(0,TRAIN_LEN) + yield (x_train[idx], y_train[idx]) + + +TEST_LEN = x_test.shape[0] +def gen_pairs_test(): + for i in range(TEST_LEN): + # Get a random image each time + idx = np.random.randint(0,TEST_LEN) + yield (x_test[idx], y_test[idx]) + +# Function to test input pipeline +sample_image, sample_label = next(gen_pairs_train()) + +"""## Dataset creation + +Here I just used tf.data.Dataset.from_generator on top of the *gen_pairs_train()* and *gen_pairs_test()* generator functions. +""" + +batch_size = 32 +# Prepare the training dataset. +train_dataset = tf.data.Dataset.from_generator(generator=gen_pairs_train, output_types=(tf.float64, tf.uint8)) +train_dataset = train_dataset.batch(batch_size) + +# Prepare the validation dataset. +test_dataset = tf.data.Dataset.from_generator(generator=gen_pairs_test, output_types=(tf.float64, tf.uint8)) +test_dataset = test_dataset.batch(batch_size) + +im_list = [] +n_samples_to_show = 16 +c = 0 +for i in range(n_samples_to_show): + img, label = next(gen_pairs_train()) + im_list.append(img) +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im[:,:,0], 'gray') +plt.show() + +# Model building +NUM_CLASSES = 10 +model = tf.keras.Sequential([ + tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)), + tf.keras.layers.MaxPooling2D((2, 2)), + tf.keras.layers.Conv2D(32, (3, 3), activation='relu'), + tf.keras.layers.Flatten(), + tf.keras.layers.Dense(32, activation='relu'), + tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')] + ) + +# Defining loss function +loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False) +accuracy_metric = tf.keras.metrics.Accuracy() + +# Calculate loss +def loss_fn(gt_label, pred): + # training argument define the beehaviour of layers with respect + # to whether we are training the model or not. It is important for layers + # such as BatchNorm and Dropout. + return loss_object(y_true=gt_label, y_pred=pred) + +def accuracy_fn(gt_label, output): + # calculate the accuracy by turning output into labels with argmax + pred = tf.argmax(output, axis=1, output_type=tf.int32) + return accuracy_metric(pred, gt_label) + +# Define the optimizer +optimizer = tf.keras.optimizers.Adam(learning_rate=0.01) + +NUM_EPOCHS = 5 +EPOCH_PER_DISPLAY = 1 +total_loss = [] +for epoch in range(NUM_EPOCHS): + + running_loss = [] + running_accuracy = [] + + # Training + for input, target in train_dataset: + + # Calculate and track graduents + with tf.GradientTape() as tape: + + # Calculate model output and loss + output = model(input, training=True) + loss_ = loss_fn(target, output) + accuracy_ = accuracy_fn(target, output) + + # Tape gradients + grads = tape.gradient(loss_, model.trainable_variables) + + # Track batch loss and accuracy + running_loss.append(loss_) + running_accuracy.append(accuracy_) + + # Optimize model based on the gradients + optimizer.apply_gradients(zip(grads, model.trainable_variables)) + + # Epoch calculations + epoch_loss = np.mean(running_loss) + epoch_accuracy = np.mean(running_accuracy) + if (epoch + 1) % EPOCH_PER_DISPLAY == 0: + print("Epoch {}: Loss: {:.4f} Accuracy: {:.2f}%".format(epoch+1, epoch_loss, epoch_accuracy * 100)) + +# Calculate the accurcy on the test set +running_accuracy = [] +for (input, gt_label) in test_dataset: + output = model(input, training=False) + accuracy_ = accuracy_fn(gt_label, output) + running_accuracy.append(accuracy_) + +print("Test accuracy: {:.3%}".format(np.mean(running_accuracy))) \ No newline at end of file diff --git a/codes/python/advanced/tfrecords.py b/codes/python/advanced/tfrecords.py new file mode 100644 index 0000000..a96c794 --- /dev/null +++ b/codes/python/advanced/tfrecords.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +"""TFRecords.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1p-Nz6v3CyqKSc-QazX1FgvZkamt5T-uC +""" + +import tensorflow as tf +from tensorflow import keras +import numpy as np + +# Load MNIST data +(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() + +# Preprocessing +x_train = x_train / 255.0 +x_test = x_test / 255.0 + +# Track the data type +dataType = x_train.dtype +print(f"Data type: {dataType}") + +labelType = y_test.dtype +print(f"Data type: {labelType}") + +im_list = [] +n_samples_to_show = 16 +c = 0 +for i in range(n_samples_to_show): + im_list.append(x_train[i]) + +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im, 'gray') +plt.show() + +# Convert values to compatible tf.Example types. + +def _bytes_feature(value): + """Returns a bytes_list from a string / byte.""" + if isinstance(value, type(tf.constant(0))): + value = value.numpy() # BytesList won't unpack a string from an EagerTensor. + return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) + + +def _float_feature(value): + """Returns a float_list from a float / double.""" + return tf.train.Feature(float_list=tf.train.FloatList(value=[value])) + + +def _int64_feature(value): + """Returns an int64_list from a bool / enum / int / uint.""" + return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) + +# Create the features dictionary. +def image_example(image, label, dimension): + feature = { + 'dimension': _int64_feature(dimension), + 'label': _int64_feature(label), + 'image_raw': _bytes_feature(image.tobytes()), + } + + return tf.train.Example(features=tf.train.Features(feature=feature)) + +record_file = 'mnistTrain.tfrecords' +n_samples = x_train.shape[0] +dimension = x_train.shape[1] + +with tf.io.TFRecordWriter(record_file) as writer: + for i in range(n_samples): + image = x_train[i] + label = y_train[i] + tf_example = image_example(image, label, dimension) + writer.write(tf_example.SerializeToString()) + +# Create the dataset object from tfrecord file(s) +dataset = tf.data.TFRecordDataset(record_file) + +# Decoding function +def parse_record(record): + name_to_features = { + 'dimension': tf.io.FixedLenFeature([], tf.int64), + 'label': tf.io.FixedLenFeature([], tf.int64), + 'image_raw': tf.io.FixedLenFeature([], tf.string), + } + return tf.io.parse_single_example(record, name_to_features) + +def decode_record(record): + image = tf.io.decode_raw( + record['image_raw'], out_type=dataType, little_endian=True, fixed_length=None, name=None + ) + label = record['label'] + dimension = record['dimension'] + image = tf.reshape(image, (dimension, dimension)) + + return (image, label) + +im_list = [] +n_samples_to_show = 16 +c = 0 +for record in dataset: + c+=1 + if c > n_samples_to_show: + break + parsed_record = parse_record(record) + decoded_record = decode_record(parsed_record) + image, label = decoded_record + im_list.append(image) + +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im, 'gray') +plt.show() + diff --git a/codes/python/application/image/image_classification.py b/codes/python/application/image/image_classification.py new file mode 100644 index 0000000..6d029e1 --- /dev/null +++ b/codes/python/application/image/image_classification.py @@ -0,0 +1,203 @@ +# Import python libraries +import matplotlib.pyplot as plt +import numpy as np +import os +import pathlib +import tensorflow as tf +import random +import pandas as pd +import tensorflow_datasets as tfds +from collections import defaultdict +from skimage.transform import resize +from skimage.util import img_as_float +from skimage import io + +""" # Params +""" +TRAIN_LEN = 1000 +TEST_LEN = 1000 + +print(tf.__version__) + +# Download the dataset +dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz" + +# Get the files by having the url +# Ref: https://www.tensorflow.org/api_docs/python/tf/keras/utils/get_file +data_dir = tf.keras.utils.get_file(origin=dataset_url, cache_subdir=os.path.expanduser('~/data'), fname='flower_photos', + untar=True) + +# Create a Path object +# Ref: https://docs.python.org/3/library/pathlib.html +data_dir = pathlib.Path(data_dir) + +# Get all image paths +image_paths = list(data_dir.glob('*/*.jpg')) + +# Create a dataFrame +df = pd.DataFrame(image_paths, columns=['path']) + + +def get_class(path): + """ + Get the class labels from the file paths + :param path: The full path of the file + :return: + """ + return path.parent.name + + +def get_look_up_dict(df): + """ + Create a look up tables for class labels and their associated unique keys + :param df: dataframe + :return: Dict + """ + # Defining a dict + look_up_dict = defaultdict(list) + classes = list(df['class_name'].unique()) + + for i in range(len(classes)): + look_up_dict[classes[i]] = i + + return look_up_dict + + +# Store the class names in a new column +df['class_name'] = df.path.apply(get_class) + +# Create a class to label dictionary +class_to_label = get_look_up_dict(df) +label_to_class = dict([(value, key) for key, value in class_to_label.items()]) + +# Store the class labels in a new column +df['label'] = df.class_name.apply(lambda x: class_to_label[x]) + +# Create separate train/test splits +from sklearn.model_selection import train_test_split + +X, y = df['path'], df['label'] +# Read more at https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html +# Stratify sampling is used. +X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.33, random_state=42, shuffle=True) + + +def imResize(image): + """ + This function resize the images. + :param image: The stack of images + :return: The stack of resized images + """ + # Desired size + IM_SIZE = 200 + + # Turn to float64 and scale to [0,1] + image = img_as_float(image) + + desired_size = [IM_SIZE, IM_SIZE] + image_resized = resize(image, (desired_size[0], desired_size[1]), + anti_aliasing=True) + + # Cast back to float 32 + image_resized = image_resized.astype(np.float32) + return image_resized + + +def visualize_training(): + im_list = [] + n_samples_to_show = 9 + c = 0 + for i in range(n_samples_to_show): + sample, label = next(train_gen()) + im_list.append(sample) + # Visualization + import matplotlib.pyplot as plt + from mpl_toolkits.axes_grid1 import ImageGrid + fig = plt.figure(figsize=(4., 4.)) + # Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html + grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(3, 3), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) + # Show image grid + for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im) + plt.show() + + +""" # Dataset generator +""" + + +def train_gen(): + """ + The generator function to create training samples + :return: Generator object + ex: For next sample use next(train_gen()). + To loop through: + gen_obj = train_gen() + for item in gen_obj: + print(item) + """ + for i in range(TRAIN_LEN): + # Pick a random choice + idx = np.random.randint(0, TRAIN_LEN) + im_path = X_train.iloc[idx] + im_label = y_train.iloc[idx] + + # Read the image + im = io.imread(str(im_path)) + + # Resize the image + im = imResize(im) + + yield im, im_label + + +def test_gen(): + """ + The generator function to create test samples + :return: Generator object + """ + for i in range(TEST_LEN): + # Pick a random choice + idx = np.random.randint(0, TRAIN_LEN) + im_path = X_train.iloc[idx] + im_label = y_train.iloc[idx] + + # Read the image + im = io.imread(str(im_path)) + + # Resize the image + im = imResize(im) + + yield im, im_label + + +# Get the generator object +sample, label = next(train_gen()) + +""" # Visualize some sample images from the training set +""" +visualize_training() + +""" # Create datasets +""" +batch_size = 32 +# Prepare the training dataset. +train_dataset = tf.data.Dataset.from_generator(generator=train_gen, output_types=(tf.float64, tf.uint8)) +train_dataset = train_dataset.batch(batch_size) + +# Prepare the validation dataset. +test_dataset = tf.data.Dataset.from_generator(generator=test_gen, output_types=(tf.float64, tf.uint8)) +test_dataset = test_dataset.batch(batch_size) + +# Another way of visualization +for images, labels in train_dataset.take(1): + for i in range(9): + ax = plt.subplot(3, 3, i + 1) + plt.imshow(images[i].numpy().astype("float32")) + plt.title(label_to_class[labels[i].numpy()]) + plt.axis("off") + plt.show() diff --git a/codes/python/basics_in_machine_learning/dataaugmentation.py b/codes/python/basics_in_machine_learning/dataaugmentation.py new file mode 100644 index 0000000..14e624e --- /dev/null +++ b/codes/python/basics_in_machine_learning/dataaugmentation.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +"""dataaugmentation.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1ibfKtpxC_hIhZlPbefCoqpAS7jTdyiFw +""" + +import tensorflow as tf +import tensorflow_datasets as tfds # Import TensorFlow datasets +import urllib +import tensorflow_datasets as tfds +import matplotlib.pyplot as plt +import numpy as np +# Necessary for dealing with https urls +import ssl +ssl._create_default_https_context = ssl._create_unverified_context + +# We read only the first 10 training samples +ds, ds_info = tfds.load('colorectal_histology', split='train', shuffle_files=True, with_info=True, download=True) +assert isinstance(ds, tf.data.Dataset) +print(ds_info) + +# Visualizing images +fig = tfds.show_examples(ds, ds_info) + +# Reading all images (remove break point to read all) +for example in tfds.as_numpy(ds): + image, label = example['image'], example['label'] + break +# take one sample from data +one_sample = ds.take(1) +one_sample = list(one_sample.as_numpy_iterator()) +image = one_sample[0]['image'] +label = one_sample[0]['label'] +print(image.shape,label.shape) + +# Side by side visualization +def visualize(im, imAgmented, operation): + fig = plt.figure() + plt.subplot(1,2,1) + plt.title('Original image') + plt.imshow(im) + plt.subplot(1,2,2) + plt.title(operation) + plt.imshow(imAgmented) + +# Adding Gaussian noise to image +common_type = tf.float32 # Make noise and image of the same type +gnoise = tf.random.normal(shape=tf.shape(image), mean=0.0, stddev=0.1, dtype=common_type) +image_type_converted = tf.image.convert_image_dtype(image, dtype=common_type, saturate=False) +noisy_image = tf.add(image_type_converted, gnoise) +visualize(image_type_converted, noisy_image, 'noisyimage') + +# Adjusting brighness +bright = tf.image.adjust_brightness(image, 0.2) +visualize(image, bright, 'brightened image') + +# Flip image +flipped = tf.image.flip_left_right(image) +visualize(image, flipped, 'flipped image') + +adjusted = tf.image.adjust_jpeg_quality(image, jpeg_quality=20) +visualize(image, adjusted, 'quality adjusted image') + +# Randon cropping of the image (the cropping area is picked at random) +crop_to_original_ratio = 0.5 # The scale of the cropped area to the original image +new_size = int(crop_to_original_ratio * image.shape[0]) +cropped = tf.image.random_crop(image, size=[new_size,new_size,3]) +visualize(image, cropped, 'randomly cropped image') + +# Center cropping of the image (the cropping area is at the center) +central_fraction = 0.6 # The scale of the cropped area to the original image +center_cropped = tf.image.central_crop(image, central_fraction=central_fraction) +visualize(image, center_cropped, 'centrally cropped image') \ No newline at end of file diff --git a/codes/python/basics_in_machine_learning/linearregression.py b/codes/python/basics_in_machine_learning/linearregression.py new file mode 100644 index 0000000..63ed82e --- /dev/null +++ b/codes/python/basics_in_machine_learning/linearregression.py @@ -0,0 +1,216 @@ +# -*- coding: utf-8 -*- +"""linearregression.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1SFWk7Ap06ZkvP2HmLhXLiyyqo-ei35M1 +""" + +from __future__ import absolute_import, division, print_function, unicode_literals +import pathlib +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import seaborn as sns +from datetime import datetime +import tensorflow as tf +from tensorflow import keras +from tensorflow.keras import layers +print(tf.__version__) + +# Download the daset with keras.utils.get_file +dataset_path = keras.utils.get_file("housing.data", "https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data") + +column_names = ['CRIM','ZN','INDUS','CHAS','NOX', + 'RM', 'AGE', 'DIS','RAD','TAX','PTRATION', 'B', 'LSTAT', 'MEDV'] +raw_dataset = pd.read_csv(dataset_path, names=column_names, + na_values = "?", comment='\t', + sep=" ", skipinitialspace=True) +# Create a dataset instant +dataset = raw_dataset.copy() + +# This function returns last n rows from the object +# based on position. +dataset.tail(n=10) + +# Split data into train/test +# p = training data portion +p=0.8 +trainDataset = dataset.sample(frac=p,random_state=0) +testDataset = dataset.drop(trainDataset.index) + +# Visual representation of training data +import matplotlib.pyplot as plt +fig, ax = plt.subplots() +# With .pop() command, the associated columns are extracted. +x = trainDataset['RM'] +y = trainDataset['MEDV'] +ax.scatter(x, y, edgecolors=(0, 0, 0)) +ax.set_xlabel('RM') +ax.set_ylabel('MEDV') +plt.show() + +# Pop command return item and drop it from frame. +# After using trainDataset.pop('RM'), the 'RM' column +# does not exist in the trainDataset frame anymore! +trainInput = trainDataset['RM'] +trainTarget = trainDataset['MEDV'] +testInput = testDataset['RM'] +testTarget = testDataset['MEDV'] + +# We don't specify anything for activation -> no activation is applied (ie. "linear" activation: a(x) = x) +# Check: https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense + +def linear_model(): + model = keras.Sequential([ + layers.Dense(1, use_bias=True, input_shape=(1,), name='layer') + ]) + + # Using adam optimizer + optimizer = tf.keras.optimizers.Adam( + learning_rate=0.01, beta_1=0.9, beta_2=0.99, epsilon=1e-05, amsgrad=False, + name='Adam') + + # Check: https://www.tensorflow.org/api_docs/python/tf/keras/Model + # loss: String (name of objective function), objective function or tf.keras.losses.Loss instance. See tf.keras.losses. + # optimizer: String (name of optimizer) or optimizer instance. See tf.keras.optimizers. + # metrics: List of metrics to be evaluated by the model during training and testing + model.compile(loss='mse', optimizer=optimizer, metrics=['mae','mse']) + + return model + +# Create model instant +model = linear_model() + +# Print the model summary +model.summary() + +# params +n_epochs = 4000 +batch_size = 256 +n_idle_epochs = 100 +n_epochs_log = 200 +n_samples_save = n_epochs_log * trainInput.shape[0] +print('Checkpoint is saved for each {} samples'.format(n_samples_save)) + +# A mechanism that stops training if the validation loss is not improving for more than n_idle_epochs. +#See https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping for details. +earlyStopping = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=n_idle_epochs, min_delta=0.001) + +# Creating a custom callback to print the log after a certain number of epochs +# Check: https://www.tensorflow.org/api_docs/python/tf/keras/callbacks +predictions_list = [] +class NEPOCHLogger(tf.keras.callbacks.Callback): + def __init__(self,per_epoch=100): + ''' + display: Number of batches to wait before outputting loss + ''' + self.seen = 0 + self.per_epoch = per_epoch + + def on_epoch_end(self, epoch, logs=None): + if epoch % self.per_epoch == 0: + print('Epoch {}, loss {:.2f}, val_loss {:.2f}, mae {:.2f}, val_mae {:.2f}, mse {:.2f}, val_mse {:.2f}'\ + .format(epoch, logs['loss'], logs['val_loss'],logs['mae'], logs['val_mae'],logs['mse'], logs['val_mse'])) + +# Call the object +log_display = NEPOCHLogger(per_epoch=n_epochs_log) + +# Include the epoch in the file name (uses `str.format`) +import os +checkpoint_path = "training/cp-{epoch:05d}.ckpt" +checkpoint_dir = os.path.dirname(checkpoint_path) + +# Create a callback that saves the model's weights every 5 epochs +checkpointCallback = tf.keras.callbacks.ModelCheckpoint( + filepath=checkpoint_path, + verbose=1, + save_weights_only=True, + save_freq=n_samples_save) + +# Save the weights using the `checkpoint_path` format +model.save_weights(checkpoint_path.format(epoch=0)) + +# Define the Keras TensorBoard callback. +logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S") +tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir) + +history = model.fit( + trainInput, trainTarget, batch_size=batch_size, + epochs=n_epochs, validation_split = 0.1, verbose=0, callbacks=[earlyStopping,log_display,tensorboard_callback,checkpointCallback]) + +# The fit model returns the history object for each Keras model +# Let's explore what is inside history +print('keys:', history.history.keys()) + +# Returning the desired values for plotting and turn to numpy array +mae = np.asarray(history.history['mae']) +val_mae = np.asarray(history.history['val_mae']) + +# Creating the data frame +num_values = (len(mae)) +values = np.zeros((num_values,2), dtype=float) +values[:,0] = mae +values[:,1] = val_mae + +# Using pandas to frame the data +steps = pd.RangeIndex(start=0,stop=num_values) +data = pd.DataFrame(values, steps, columns=["training-mae", "val-mae"]) + +# Plotting +sns.set(style="whitegrid") +sns.lineplot(data=data, palette="tab10", linewidth=2.5) + +predictions = model.predict(testInput).flatten() +a = plt.axes(aspect='equal') +plt.scatter(predictions, testTarget, edgecolors=(0, 0, 0)) +plt.xlabel('True Values') +plt.ylabel('Predictions') +lims = [0, 50] +plt.xlim(lims) +plt.ylim(lims) +_ = plt.plot(lims, lims) + +# Get the saved checkpoint files +checkpoints = [] +for f_name in os.listdir(checkpoint_dir): + if f_name.startswith('cp-'): + file_with_no_ext = os.path.splitext(f_name)[0] + checkpoints.append(file_with_no_ext) + +# Return unique list elements +checkpoints = list(set(checkpoints)) +print('checkpoints:',checkpoints) + +# Load all model checkpoints and evaluate for each +count = 0 +model_improvement_progress = False +if model_improvement_progress: + for checkpoint in checkpoints: + count += 1 + + # Call model instant + model = linear_model() + + # Restore the weights + path = os.path.join('training',checkpoint) + model.load_weights(path) + + # Access to layer weights + layer = model.get_layer('layer') + w1,w0 = layer.get_weights() + w1 = float(w1[0]) + w0 = float(w0[0]) + + # Draw the scatter plot of data + fig, ax = plt.subplots() + x = testInput + y = testTarget + ax.scatter(x, y, edgecolors=(0, 0, 0)) + ax.set_xlabel('RM') + ax.set_ylabel('MEDV') + + # Plot the line + y_hat = w1*x + w0 + plt.plot(x, y_hat, '-r') \ No newline at end of file diff --git a/codes/python/neural_networks/cnns.py b/codes/python/neural_networks/cnns.py new file mode 100644 index 0000000..caf4640 --- /dev/null +++ b/codes/python/neural_networks/cnns.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +"""CNNs.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1ibfKtpxC_hIhZlPbefCoqpAS7jTdyiFw +""" + +import tensorflow as tf + +# Load MNIST data +(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() +# Preprocessing +x_train = x_train / 255.0 +x_test = x_test / 255.0 + +# Add one domention to make 3D images +x_train = x_train[...,tf.newaxis] +x_test = x_test[...,tf.newaxis] + +# Track the data type +dataType, dataShape = x_train.dtype, x_train.shape +print(f"Data type and shape x_train: {dataType} {dataShape}") +labelType, labelShape = y_train.dtype, y_train.shape +print(f"Data type and shape y_train: {labelType} {labelShape}") + +im_list = [] +n_samples_to_show = 16 +c = 0 +for i in range(n_samples_to_show): + im_list.append(x_train[i]) +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im[:,:,0], 'gray') +plt.show() + +"""## Training""" + +# Model building +NUM_CLASSES = 10 +model = tf.keras.Sequential([ + tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)), + tf.keras.layers.MaxPooling2D((2, 2)), + tf.keras.layers.Conv2D(32, (3, 3), activation='relu'), + tf.keras.layers.MaxPooling2D((2, 2)), + tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), + tf.keras.layers.Flatten(), + tf.keras.layers.Dense(32, activation='relu'), + tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid')] + ) + +# Compiling the model with the high-level keras +model.compile(optimizer='adam', + loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False), + metrics=['accuracy']) + +# Model training +model.fit(x_train, y_train, epochs=5) + +"""## Evaluation""" + +eval_loss, eval_acc = model.evaluate(x_test, y_test, verbose=1) +print('Eval accuracy percentage: {:.2f}'.format(eval_acc * 100)) + diff --git a/codes/python/neural_networks/mlp.py b/codes/python/neural_networks/mlp.py new file mode 100644 index 0000000..498bdca --- /dev/null +++ b/codes/python/neural_networks/mlp.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +"""mlp.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1SFWk7Ap06ZkvP2HmLhXLiyyqo-ei35M1 +""" + +import tensorflow as tf + +# Load MNIST data +(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() +# Preprocessing +x_train = x_train / 255.0 +x_test = x_test / 255.0 +# Track the data type +dataType = x_train.dtype +print(f"Data type: {dataType}") +labelType = y_test.dtype +print(f"Data type: {labelType}") + +im_list = [] +n_samples_to_show = 16 +c = 0 +for i in range(n_samples_to_show): + im_list.append(x_train[i]) +# Visualization +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import ImageGrid +fig = plt.figure(figsize=(4., 4.)) +# Ref: https://matplotlib.org/3.1.1/gallery/axes_grid1/simple_axesgrid.html +grid = ImageGrid(fig, 111, # similar to subplot(111) + nrows_ncols=(4, 4), # creates 2x2 grid of axes + axes_pad=0.1, # pad between axes in inch. + ) +# Show image grid +for ax, im in zip(grid, im_list): + # Iterating over the grid returns the Axes. + ax.imshow(im, 'gray') +plt.show() + +# Model building +NUM_CLASSES = 10 +model = tf.keras.Sequential([ + tf.keras.layers.Flatten(input_shape=(28, 28)), + tf.keras.layers.Dense(256, activation='relu'), + tf.keras.layers.Dense(NUM_CLASSES, activation='sigmoid') +]) + +# Compiling the model with the high-level keras +model.compile(optimizer='adam', + loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False), + metrics=['accuracy']) + +# Model training +model.fit(x_train, y_train, epochs=10) + +eval_loss, eval_acc = model.evaluate(x_test, y_test, verbose=1) +print('Eval accuracy percentage: {:.2f}'.format(eval_acc * 100)) + diff --git a/docs/tutorials/1-basics/variables/README.rst b/docs/tutorials/1-basics/variables/README.rst index b054d36..8a1ed7e 100644 --- a/docs/tutorials/1-basics/variables/README.rst +++ b/docs/tutorials/1-basics/variables/README.rst @@ -75,7 +75,7 @@ TensorFlow to only initialize a certain variable. The script is as follows variable_list_custom = [weights, custom_variable] # The initializer - init_custom_op = tf.variables_initializer(var_list=all_variables_list) + init_custom_op = tf.variables_initializer(var_list=variable_list_custom) Noted that custom initialization does not mean that we don't need to initialize other variables! All variables that some operations will be diff --git a/docs/tutorials/3-neural_network/convolutiona_neural_network/README.rst b/docs/tutorials/3-neural_network/convolutiona_neural_network/README.rst index cceb5b0..f9771b4 100644 --- a/docs/tutorials/3-neural_network/convolutiona_neural_network/README.rst +++ b/docs/tutorials/3-neural_network/convolutiona_neural_network/README.rst @@ -197,9 +197,6 @@ There are different types of variance-scaling initializers. The one we used in is the one proposed by the paper `Understanding the difficulty of training deep feedforward neural networks `__ -and provided by the TensorFlow. is the one proposed by the paper -`Understanding the difficulty of training deep feedforward neural -networks `__ and provided by the TensorFlow. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -257,7 +254,7 @@ because when the input size of the convolutional layer equals to its kernel size and 'VALID' pooling is used, the output is only one single neuron if the number of output feature map equals to 1. So if the number of output feature maps is equals to 1024, this layer operates like and -filly-connected layer with 1024 output hidden units! +fully-connected layer with 1024 output hidden units! ~~~~~~~~~~~~~ Dropout Layer @@ -489,7 +486,7 @@ get back to it in another post. The image summaries are created which has the duty of visualizing the input elements to the summary tensor. These elements here -are 3 random images from the train data. In The outputs of different layers will be fed to the relevant summary tensor. +are 3 random images from the train data. In the outputs of different layers will be fed to the relevant summary tensor. Finally, some scalar summaries are created in order to track the *training convergence* and *testing performance*. The collections argument in summary definitions is a supervisor which direct diff --git a/travis.sh b/travis.sh new file mode 100755 index 0000000..816a8dd --- /dev/null +++ b/travis.sh @@ -0,0 +1,13 @@ +# CHANGED_FILES=$(find codes/python/ -type f -name "*.py") + +CHANGED_FILES=($(git diff --name-only $TRAVIS_COMMIT_RANGE)) +echo "Changed files are \n $CHANGED_FILES" + +for file in $CHANGED_FILES; do + # Check if the last 3 characters are .py + if [ ${file: -3} == ".py" ]; then + python $file; + else + echo "$file is not a Python file, so, it won't be checked!" + fi +done