Showing preview only (7,627K chars total). Download the full file or copy to clipboard to get everything.
Repository: mzaradzki/neuralnets
Branch: master
Commit: 84921f770a04
Files: 41
Total size: 7.3 MB
Directory structure:
gitextract_99vjczwo/
├── .gitignore
├── LICENSE.txt
├── README.md
├── autoencoder_keras/
│ ├── finance_autoencoder.ipynb
│ ├── mnist_autoencoder.ipynb
│ ├── mnist_conv_autoencoder.ipynb
│ ├── mnist_pca_autoencoder.ipynb
│ ├── mnist_vae.ipynb
│ ├── mnist_vae_mixture.ipynb
│ ├── natural_images_autoencoder.ipynb
│ ├── nonlinear2d_vae.ipynb
│ └── vae_theory_mardown_only.ipynb
├── dogsandcats_keras/
│ ├── README.md
│ ├── dogsandcats.ipynb
│ ├── dogsandcats_v2.ipynb
│ ├── dogsandcats_v3.ipynb
│ ├── dogsandcats_v4.ipynb
│ ├── dogsandcats_v5.ipynb
│ ├── gpu_check.py
│ ├── utils.py
│ ├── vgg16.py
│ └── vgg16bn.py
├── image_style_transfer/
│ └── image_style_transfer.ipynb
├── insurance_scikit/
│ ├── metrics.py
│ └── prudential.ipynb
├── timeserie/
│ ├── timeserie.ipynb
│ ├── timeserie2.ipynb
│ ├── timeserie_garch.ipynb
│ └── utils_modified.py
├── vgg_faces_keras/
│ ├── README.md
│ ├── haarcascade_frontalface_default.xml
│ └── vgg_faces_demo.ipynb
└── vgg_segmentation_keras/
├── README.md
├── drawio_diagrams/
│ ├── fcn16s_diagram_drawio.xml
│ └── fcn8s_diagram_drawio.xml
├── fcn16s_segmentation.ipynb
├── fcn16s_segmentation_keras2.ipynb
├── fcn8s_tvg_for_rnncrf.ipynb
├── fcn_keras2.py
├── test_several_image_sizes_on_fcn8s.ipynb
└── utils.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
**/.ipynb_checkpoints
/data
*.pyc
*.jpg
*.png
*.jpeg
================================================
FILE: LICENSE.txt
================================================
MIT License
Copyright (c) 2017 m.zaradzki
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# neuralnets
Experiments with **Theano**, **TensorFlow** and **Keras**
## Main sub-projects
* **autoencoder_keras** : implements auto-encoder (de-noising, variational, mixture)
* **dogsandcats_keras** : implements several models and training procedure for Kaggle "dogs and cats" competition
* **vgg_faces_keras** : implements face identification using VGG model
* **vgg_segmentation_keras** : implements pixel wise classification of images
## Setup instruction on AWS
These scripts are run on AWS EC2 GPU "g2.2x" instance based on AMI (Ireland) :
cs231n_caffe_torch7_keras_lasagne_v2 **ami-e8a1fe9b**
At EC2 configuration time, to setup Jupyter web I follow this tutorial :
http://efavdb.com/deep-learning-with-jupyter-on-aws/
To re-use the same folder across multiple EC2 launches I use AWS EFS :
```
($ sudo apt-get update ?)
$ sudo apt-get -y install nfs-common
($ sudo reboot ?)
$ cd caffe
$ mkdir neuralnets
$ cd ..
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).YOUR_EFS_HERE.efs.YOUR_ZONE_HERE.amazonaws.com:/ caffe/neuralnets
($ clone Git repo in neuralnets directory ?)
```
Note : the security group of the EFS folder and EC2 instace needs to be configured correctly :
http://docs.aws.amazon.com/efs/latest/ug/accessing-fs-create-security-groups.html
The EC2 AMI comes with Theano but TensorFlow needs to be installed :
```
($ easy_install --upgrade pip ?)
$ pip install tensorflow
```
WARNING : With this setup Theano makes use of the GPU but TensorFlow only runs on the CPU
To run Theano script with GPU :
```
$ cd caffe/neuralnets/nb_theano
$ THEANO_FLAGS='floatX=float32,device=gpu' python dA.py
```
To unmount the EFS folder before closing down the EC2 instance :
```
$ sudo umount caffe/neuralnets
```
================================================
FILE: autoencoder_keras/finance_autoencoder.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from keras.layers import Input, Dense, Convolution2D, MaxPooling2D, UpSampling2D\n",
"from keras.models import Model\n",
"from keras import regularizers"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Reference :\n",
"* Blog : building autoencoders in keras : https://blog.keras.io/building-autoencoders-in-keras.html"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load market data from Quandl"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import quandl # pip install quandl\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def qData(tick='XLU'):\n",
" # GOOG/NYSE_XLU.4\n",
" # WIKI/MSFT.4\n",
" qtck = \"GOOG/NYSE_\"+tick+\".4\"\n",
" return quandl.get(qtck,\n",
" start_date=\"2003-01-01\",\n",
" end_date=\"2016-12-31\",\n",
" collapse=\"daily\")"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"'''TICKERS = ['MSFT','JPM','INTC','DOW','KO',\n",
" 'MCD','CAT','WMT','MMM','AXP',\n",
" 'BA','GE','XOM','PG','JNJ']'''\n",
"TICKERS = ['XLU','XLF','XLK','XLY','XLV','XLB','XLE','XLP','XLI']"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"try:\n",
" D.keys()\n",
"except:\n",
" print('create empty Quandl cache')\n",
" D = {}\n",
"\n",
"for tckr in TICKERS:\n",
" if not(tckr in D.keys()):\n",
" print(tckr)\n",
" qdt = qData(tckr)\n",
" qdt.rename(columns={'Close': tckr}, inplace = True)\n",
" D[tckr] = qdt\n",
" \n",
"for tck in D.keys():\n",
" assert(D[tck].keys() == [tck])"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n",
"(3538, 1)\n"
]
}
],
"source": [
"for tck in D.keys():\n",
" print(D[tck].shape)"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"J = D[TICKERS[0]].join(D[TICKERS[1]])\n",
"for tck in TICKERS[2:]:\n",
" J = J.join(D[tck])"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>XLU</th>\n",
" <th>XLF</th>\n",
" <th>XLK</th>\n",
" <th>XLY</th>\n",
" <th>XLV</th>\n",
" <th>XLB</th>\n",
" <th>XLE</th>\n",
" <th>XLP</th>\n",
" <th>XLI</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2003-01-02</th>\n",
" <td>19.60</td>\n",
" <td>22.80</td>\n",
" <td>15.60</td>\n",
" <td>23.98</td>\n",
" <td>27.27</td>\n",
" <td>20.36</td>\n",
" <td>22.80</td>\n",
" <td>20.32</td>\n",
" <td>21.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-01-03</th>\n",
" <td>19.80</td>\n",
" <td>22.78</td>\n",
" <td>15.66</td>\n",
" <td>23.43</td>\n",
" <td>27.55</td>\n",
" <td>20.25</td>\n",
" <td>22.76</td>\n",
" <td>20.30</td>\n",
" <td>21.19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-01-06</th>\n",
" <td>20.69</td>\n",
" <td>23.55</td>\n",
" <td>16.35</td>\n",
" <td>23.86</td>\n",
" <td>27.85</td>\n",
" <td>20.64</td>\n",
" <td>22.95</td>\n",
" <td>20.45</td>\n",
" <td>21.38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-01-07</th>\n",
" <td>20.24</td>\n",
" <td>23.29</td>\n",
" <td>16.52</td>\n",
" <td>23.73</td>\n",
" <td>27.45</td>\n",
" <td>20.57</td>\n",
" <td>22.20</td>\n",
" <td>20.27</td>\n",
" <td>21.26</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-01-08</th>\n",
" <td>20.38</td>\n",
" <td>23.05</td>\n",
" <td>15.98</td>\n",
" <td>23.51</td>\n",
" <td>27.24</td>\n",
" <td>20.04</td>\n",
" <td>21.99</td>\n",
" <td>20.15</td>\n",
" <td>21.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" XLU XLF XLK XLY XLV XLB XLE XLP XLI\n",
"Date \n",
"2003-01-02 19.60 22.80 15.60 23.98 27.27 20.36 22.80 20.32 21.12\n",
"2003-01-03 19.80 22.78 15.66 23.43 27.55 20.25 22.76 20.30 21.19\n",
"2003-01-06 20.69 23.55 16.35 23.86 27.85 20.64 22.95 20.45 21.38\n",
"2003-01-07 20.24 23.29 16.52 23.73 27.45 20.57 22.20 20.27 21.26\n",
"2003-01-08 20.38 23.05 15.98 23.51 27.24 20.04 21.99 20.15 21.00"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"J.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"XLU 0\n",
"XLF 0\n",
"XLK 0\n",
"XLY 0\n",
"XLV 0\n",
"XLB 0\n",
"XLE 0\n",
"XLP 0\n",
"XLI 0\n",
"dtype: int64"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"J.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(3537, 9)\n",
"(3537, 9)\n"
]
}
],
"source": [
"J2 = J.fillna(method='ffill')\n",
"#J2[J['WMT'].isnull()]\n",
"\n",
"LogDiffJ = J2.apply(np.log).diff(periods=1, axis=0)\n",
"LogDiffJ.drop(LogDiffJ.index[0:1], inplace=True)\n",
"print LogDiffJ.shape\n",
"\n",
"MktData = LogDiffJ.as_matrix(columns=None) # as numpy.array\n",
"print MktData.shape"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"np.random.shuffle(MktData)\n",
"split_index = 3000\n",
"x_train = MktData[0:split_index,:]*100\n",
"x_test = MktData[split_index:,:]*100"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.0982247 , 2.03701577, 1.29596141, 1.32517727, 1.04548284,\n",
" 1.53840115, 1.77989192, 0.83855434, 1.3078465 ])"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.std(x_train, axis=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Linear auto-encoder : like PCA\n",
"### We get a linear model by removing activation functions"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"original_dim = 9\n",
"\n",
"# this is the size of our encoded representations\n",
"encoding_dim = 3\n",
"\n",
"# this is our input placeholder\n",
"input_data = Input(shape=(original_dim,))\n",
"\n",
"if True: # no sparsity constraint\n",
" encoded = Dense(encoding_dim, activation=None)(input_data)\n",
"else:\n",
" encoded = Dense(encoding_dim, activation=None,\n",
" activity_regularizer=regularizers.activity_l1(10e-5))(input_data)\n",
"\n",
"# \"decoded\" is the lossy reconstruction of the input\n",
"decoded = Dense(original_dim, activation=None)(encoded)\n",
"\n",
"# this model maps an input to its reconstruction\n",
"autoencoder = Model(inputs=input_data, outputs=decoded)\n",
"\n",
"# this model maps an input to its encoded representation\n",
"encoder = Model(inputs=input_data, outputs=encoded)\n",
"\n",
"# create a placeholder for an encoded (32-dimensional) input\n",
"encoded_input = Input(shape=(encoding_dim,))\n",
"# retrieve the last layer of the autoencoder model\n",
"decoder_layer = autoencoder.layers[-1]\n",
"# create the decoder model\n",
"decoder = Model(inputs=encoded_input, outputs=decoder_layer(encoded_input))"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# train autoencoder to reconstruct Stock returns\n",
"# use L2 loss\n",
"autoencoder.compile(optimizer='adadelta', loss='mean_squared_error')"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 3000 samples, validate on 537 samples\n",
"Epoch 1/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 2/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2279\n",
"Epoch 3/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 4/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 5/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2279\n",
"Epoch 6/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2279\n",
"Epoch 7/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2280\n",
"Epoch 8/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 9/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 10/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 11/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 12/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 13/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2279\n",
"Epoch 14/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 15/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 16/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 17/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2340 - val_loss: 0.2279\n",
"Epoch 18/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 19/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 20/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 21/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 22/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2280\n",
"Epoch 23/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 24/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 25/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 26/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 27/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 28/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 29/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 30/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 31/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 32/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 33/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 34/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 35/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 36/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 37/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2279\n",
"Epoch 38/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 39/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 40/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 41/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 42/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 43/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2277\n",
"Epoch 44/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 45/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 46/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 47/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 48/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n",
"Epoch 49/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2338 - val_loss: 0.2277\n",
"Epoch 50/50\n",
"3000/3000 [==============================] - 0s - loss: 0.2339 - val_loss: 0.2278\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7f17f8af4590>"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"autoencoder.fit(x_train, x_train,\n",
" epochs=50,\n",
" batch_size=128,\n",
" shuffle=True,\n",
" validation_data=(x_test, x_test))"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# encode and decode some digits\n",
"# note that we take them from the *test* set\n",
"encoded_data = encoder.predict(x_test)\n",
"decoded_data = decoder.predict(encoded_data)"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 0.769975033646\n",
"1 0.99518747652\n",
"2 0.901590510518\n",
"3 0.947480846807\n",
"4 0.82774934141\n",
"5 0.900718119215\n",
"6 0.989944764408\n",
"7 0.854005961685\n",
"8 0.930788316892\n"
]
}
],
"source": [
"for i in range(original_dim):\n",
" print i, np.corrcoef(x_test[:,i].T, decoded_data[:,i].T)[0,1]"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 0.11938556286\n",
"1 -0.115034789311\n",
"2 -0.0466444153257\n",
"3 0.241456431721\n",
"4 -0.140337077375\n",
"5 -0.100318098446\n",
"6 0.106878897453\n",
"7 0.0370390714887\n",
"8 -0.0743364310779\n"
]
}
],
"source": [
"decoding_error = x_test - decoded_data\n",
"for i in range(original_dim):\n",
" print i, np.corrcoef(decoded_data[:,i].T, decoding_error[:,i].T)[0,1]"
]
},
{
"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": 0
}
================================================
FILE: autoencoder_keras/mnist_autoencoder.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using Theano backend.\n",
"Using gpu device 0: Tesla K80 (CNMeM is disabled)\n"
]
}
],
"source": [
"from keras.layers import Input, Dense, Convolution2D, MaxPooling2D, UpSampling2D\n",
"from keras.models import Model\n",
"from keras import regularizers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Blog : building autoencoders in keras\n",
"https://blog.keras.io/building-autoencoders-in-keras.html"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(60000, 784)\n",
"(10000, 784)\n"
]
}
],
"source": [
"from keras.datasets import mnist\n",
"import numpy as np\n",
"(x_train, _), (x_test, _) = mnist.load_data()\n",
"\n",
"x_train = x_train.astype('float32') / 255.\n",
"x_test = x_test.astype('float32') / 255.\n",
"x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))\n",
"x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))\n",
"print x_train.shape\n",
"print x_test.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic dense layer auto-encoder"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# this is the size of our encoded representations\n",
"encoding_dim = 32 # 32 floats -> compression of factor 24.5, assuming the input is 784 floats\n",
"\n",
"# this is our input placeholder\n",
"input_img = Input(shape=(784,))\n",
"\n",
"if True: # no sparsity constraint\n",
" encoded = Dense(encoding_dim, activation='relu')(input_img)\n",
"else:\n",
" encoded = Dense(encoding_dim, activation='relu',\n",
" activity_regularizer=regularizers.activity_l1(10e-5))(input_img)\n",
"\n",
"# \"decoded\" is the lossy reconstruction of the input\n",
"decoded = Dense(784, activation='sigmoid')(encoded)\n",
"\n",
"# this model maps an input to its reconstruction\n",
"autoencoder = Model(input=input_img, output=decoded)\n",
"\n",
"# this model maps an input to its encoded representation\n",
"encoder = Model(input=input_img, output=encoded)\n",
"\n",
"# create a placeholder for an encoded (32-dimensional) input\n",
"encoded_input = Input(shape=(encoding_dim,))\n",
"# retrieve the last layer of the autoencoder model\n",
"decoder_layer = autoencoder.layers[-1]\n",
"# create the decoder model\n",
"decoder = Model(input=encoded_input, output=decoder_layer(encoded_input))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# train autoencoder to reconstruct MNIST digits\n",
"# use a per-pixel binary crossentropy loss\n",
"autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 60000 samples, validate on 10000 samples\n",
"Epoch 1/50\n",
"60000/60000 [==============================] - 0s - loss: 0.3740 - val_loss: 0.2704\n",
"Epoch 2/50\n",
"60000/60000 [==============================] - 0s - loss: 0.2611 - val_loss: 0.2485\n",
"Epoch 3/50\n",
"60000/60000 [==============================] - 0s - loss: 0.2394 - val_loss: 0.2282\n",
"Epoch 4/50\n",
"60000/60000 [==============================] - 0s - loss: 0.2211 - val_loss: 0.2113\n",
"Epoch 5/50\n",
"60000/60000 [==============================] - 0s - loss: 0.2062 - val_loss: 0.1987\n",
"Epoch 6/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1952 - val_loss: 0.1892\n",
"Epoch 7/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1868 - val_loss: 0.1818\n",
"Epoch 8/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1800 - val_loss: 0.1756\n",
"Epoch 9/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1743 - val_loss: 0.1703\n",
"Epoch 10/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1693 - val_loss: 0.1657\n",
"Epoch 11/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1648 - val_loss: 0.1616\n",
"Epoch 12/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1608 - val_loss: 0.1577\n",
"Epoch 13/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1572 - val_loss: 0.1541\n",
"Epoch 14/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1538 - val_loss: 0.1510\n",
"Epoch 15/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1507 - val_loss: 0.1479\n",
"Epoch 16/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1478 - val_loss: 0.1451\n",
"Epoch 17/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1451 - val_loss: 0.1425\n",
"Epoch 18/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1426 - val_loss: 0.1400\n",
"Epoch 19/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1403 - val_loss: 0.1378\n",
"Epoch 20/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1381 - val_loss: 0.1356\n",
"Epoch 21/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1360 - val_loss: 0.1335\n",
"Epoch 22/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1340 - val_loss: 0.1316\n",
"Epoch 23/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1321 - val_loss: 0.1298\n",
"Epoch 24/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1303 - val_loss: 0.1279\n",
"Epoch 25/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1285 - val_loss: 0.1262\n",
"Epoch 26/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1268 - val_loss: 0.1245\n",
"Epoch 27/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1252 - val_loss: 0.1228\n",
"Epoch 28/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1236 - val_loss: 0.1213\n",
"Epoch 29/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1221 - val_loss: 0.1198\n",
"Epoch 30/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1206 - val_loss: 0.1184\n",
"Epoch 31/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1193 - val_loss: 0.1170\n",
"Epoch 32/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1179 - val_loss: 0.1157\n",
"Epoch 33/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1167 - val_loss: 0.1145\n",
"Epoch 34/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1155 - val_loss: 0.1134\n",
"Epoch 35/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1144 - val_loss: 0.1123\n",
"Epoch 36/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1133 - val_loss: 0.1112\n",
"Epoch 37/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1124 - val_loss: 0.1103\n",
"Epoch 38/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1114 - val_loss: 0.1094\n",
"Epoch 39/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1106 - val_loss: 0.1086\n",
"Epoch 40/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1097 - val_loss: 0.1077\n",
"Epoch 41/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1090 - val_loss: 0.1070\n",
"Epoch 42/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1082 - val_loss: 0.1064\n",
"Epoch 43/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1076 - val_loss: 0.1057\n",
"Epoch 44/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1069 - val_loss: 0.1050\n",
"Epoch 45/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1063 - val_loss: 0.1045\n",
"Epoch 46/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1058 - val_loss: 0.1039\n",
"Epoch 47/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1053 - val_loss: 0.1034\n",
"Epoch 48/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1048 - val_loss: 0.1030\n",
"Epoch 49/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1043 - val_loss: 0.1026\n",
"Epoch 50/50\n",
"60000/60000 [==============================] - 0s - loss: 0.1039 - val_loss: 0.1021\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7f9da0e7e250>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"autoencoder.fit(x_train, x_train,\n",
" nb_epoch=50,\n",
" batch_size=256,\n",
" shuffle=True,\n",
" validation_data=(x_test, x_test))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# encode and decode some digits\n",
"# note that we take them from the *test* set\n",
"encoded_imgs = encoder.predict(x_test)\n",
"decoded_imgs = decoder.predict(encoded_imgs)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nO8H/A3UMY/tx6Z+nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9da0dfd450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = 10 # how many digits we will display\n",
"plt.figure(figsize=(20, 4))\n",
"for i in range(n):\n",
" # display original\n",
" ax = plt.subplot(2, n, i + 1)\n",
" plt.imshow(x_test[i].reshape(28, 28))\n",
" plt.gray()\n",
" ax.get_xaxis().set_visible(False)\n",
" ax.get_yaxis().set_visible(False)\n",
"\n",
" # display reconstruction\n",
" ax = plt.subplot(2, n, i + 1 + n)\n",
" plt.imshow(decoded_imgs[i].reshape(28, 28))\n",
" plt.gray()\n",
" ax.get_xaxis().set_visible(False)\n",
" ax.get_yaxis().set_visible(False)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adding noise to input data"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"noise_factor = 0.25\n",
"x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape) \n",
"x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape) \n",
"\n",
"x_train_noisy = np.clip(x_train_noisy, 0., 1.)\n",
"x_test_noisy = np.clip(x_test_noisy, 0., 1.)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"encoded_noisy_imgs = encoder.predict(x_test_noisy)\n",
"decoded_noisy_imgs = decoder.predict(encoded_noisy_imgs)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAADmCAYAAACNimO2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnddyY1lytROW8B4g6IrFttOtkWIuJN0oQg8p3ekp9BJ6\ngjGh7urpqi5DC08L/1/w/5Lr7AJZ1RpwZAIZcYJVJMw526RZuTJ3bLlc2kY2spGNbGQjG9nIRjay\nkY1sZCMb2chG/vsl/t99AxvZyEY2spGNbGQjG9nIRjaykY1sZCMbuZcNULORjWxkIxvZyEY2spGN\nbGQjG9nIRjbyP0Q2QM1GNrKRjWxkIxvZyEY2spGNbGQjG9nI/xDZADUb2chGNrKRjWxkIxvZyEY2\nspGNbGQj/0NkA9RsZCMb2chGNrKRjWxkIxvZyEY2spGN/A+R5FN/jMVimyOh/htluVzG1vE5m3n8\n75PNHP7fkM08/u+XzRz+35DNPP7vl80c/t+QzTz+75fNHP7fkM08/u+Xx+bwSaDGzGx3d9em06lN\nJhObTqe2XC4tk8lYNpu1bDZrs9nM5vO5zWYzWywWFovFLBa7/y7eN5lMbD6f22KxsOVyacvl0pLJ\npF+JRMLi8bglEgnLZDLWaDSsXq9bo9Gws7MzOzk5sZOTE7u8vORhzMwsl8tZNpu1XC5n1WrVms2m\ntVotKxQK1u/3rdvtWq/Xs9lsZsvl0haLhc3nc5tMJjYej20ymVgsFvPvn8/nNh6P7e7uziaTid9T\nIpH4aFz0ntPptG1tbdnW1pZlMhnL5XKWz+ctl8tZp9Ox8/NzOz8/t9vbW0un037p/WezWctkMpbJ\nZCydTtu///u//9dn+xHRMUomk3ZxcWGdTsc6nY7Py3K5tK2tLSsUCpbP5y2dTtv19bVdXV3Z9fW1\npVKpyH0mEglLJpOWSqVsf3/f9vb2bH9/3waDgf3444/2008/2cnJiWUyGR+ju7s7u729tZubG4vF\nYpbP561QKFgul4uskdls9tE1n89tPp9H1s9yubTxeGzj8dim06mlUqmVl5nZzc2NX/F43C/mmc/k\nGTOZjC0WC//+yWRid3d3vk7C8T04OLD9/X3b3t62f/u3f1vr/GWzWV/D8/nc9wGSSqVsa2vL0um0\nmZmv8+l0arFYzOLxuK93njWXy9nR0ZF98cUXdnR0ZL1ez16/fm1v3ryxi4sLWywWfuk8JBIJy+Vy\nlsvlLJPJ2O3trV/st+VyabFYLLI/ZrOZ7714PG61Ws3q9brVajUbDAbW6/Ws1+vZ7e2t65FYLOaf\nZ2Y+P1tbW5ZMJn0uxuOxxeNxn+9YLGaz2cym06lNp1O/j3Q6HfnbYrGwYrFoxWLRSqWSLZdLu7u7\ncz1wfHy81nksFArWarV8r6TTaTs/P7eLiwu7uLjwvXF7e2vz+fyzPlOfO5lM+jOjs9HLOpbh+ikW\ni7a7u2u7u7vWaDTs5OTEjo+P7fj4OLLWwzVUKBR87NB7uVzOUqmUnZ+f29nZmZ2dnVksFnM9F4/H\n7fLy0i4vL+3q6sr1fbPZtHg87nv09vbWv5d9zjqbTCb++7+21Go1t3uz2cxisZiv8a2tLbc3XLof\nWGvFYtGm06mNRiMbDod2c3Pj45pIJHyfz2YzM7OIDtV1jW3m51NjwvpIJu9NP/ememWxWJiZ+XqJ\nx+P+nlQqFbFbi8XC52k8HkfWln62mbmtTyaTkbGJx+MRu4jtKRQKdnNz4/ZzMBisfR7/8R//0W5v\nb93GLZdLn5tCoWC9Xs/6/b71ej1fb4jaj8PDQ/vyyy/tiy++sHg8bq9evbJXr17Z69evrdVq2fb2\ntrVaLbu7u/M9cXl56X4Uuh0bx3ilUilLJBKuMxlj5sfMfM4Wi4W/J5VK+X6ZTCY2m82sUCj4NZlM\n7Orqyq6urmw8Hkf8GexEPB635XK50r+LxWKWyWR8v6dSKff1JpOJz3MikbByuexjUKvV7F/+5V/W\nPo9PiT5XNpu1crlslUrF9x/7Bp1/e3trd3d3/tzz+dxqtZq1223b2dmxdDptp6enfrG+zczy+by1\n222fb7OHvTgcDl0X9nq9iK/M63itri3dK6EwTzxbqVSyUqlkW1tbNhwObTAY2HA4jNiRTCZj7Xbb\nL+YpkUjY1dWVffjwwT58+GBnZ2dWqVSsUqlYtVq15XLpevnu7s4uLi7WOk9/+7d/a+Vy2Wq1mlWr\nVZvP5/bLL7/YL7/8Ym/fvn3yvTpeqntDPaj7I5lMWjqddl9B577dbrsvl06nrd/v22AwsMFgYJeX\nlzYajezy8tLi8bjr5EQiYdPp1HVzoVCwUqlk5XLZFouFDYdDGw6HdnV1FfE59d7T6XRE/+AT9ft9\nu7u7i6wR9W3VHmBj2Ovs88vLS0smk/75uVzO/vCHP6x1Dv/5n//Zbm5u3LbP53Pfb+VyObLfrq+v\n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
gitextract_99vjczwo/
├── .gitignore
├── LICENSE.txt
├── README.md
├── autoencoder_keras/
│ ├── finance_autoencoder.ipynb
│ ├── mnist_autoencoder.ipynb
│ ├── mnist_conv_autoencoder.ipynb
│ ├── mnist_pca_autoencoder.ipynb
│ ├── mnist_vae.ipynb
│ ├── mnist_vae_mixture.ipynb
│ ├── natural_images_autoencoder.ipynb
│ ├── nonlinear2d_vae.ipynb
│ └── vae_theory_mardown_only.ipynb
├── dogsandcats_keras/
│ ├── README.md
│ ├── dogsandcats.ipynb
│ ├── dogsandcats_v2.ipynb
│ ├── dogsandcats_v3.ipynb
│ ├── dogsandcats_v4.ipynb
│ ├── dogsandcats_v5.ipynb
│ ├── gpu_check.py
│ ├── utils.py
│ ├── vgg16.py
│ └── vgg16bn.py
├── image_style_transfer/
│ └── image_style_transfer.ipynb
├── insurance_scikit/
│ ├── metrics.py
│ └── prudential.ipynb
├── timeserie/
│ ├── timeserie.ipynb
│ ├── timeserie2.ipynb
│ ├── timeserie_garch.ipynb
│ └── utils_modified.py
├── vgg_faces_keras/
│ ├── README.md
│ ├── haarcascade_frontalface_default.xml
│ └── vgg_faces_demo.ipynb
└── vgg_segmentation_keras/
├── README.md
├── drawio_diagrams/
│ ├── fcn16s_diagram_drawio.xml
│ └── fcn8s_diagram_drawio.xml
├── fcn16s_segmentation.ipynb
├── fcn16s_segmentation_keras2.ipynb
├── fcn8s_tvg_for_rnncrf.ipynb
├── fcn_keras2.py
├── test_several_image_sizes_on_fcn8s.ipynb
└── utils.py
SYMBOL INDEX (91 symbols across 8 files)
FILE: dogsandcats_keras/gpu_check.py
function test (line 13) | def test():
FILE: dogsandcats_keras/utils.py
function gray (line 57) | def gray(img):
function to_plot (line 59) | def to_plot(img):
function plot (line 61) | def plot(img):
function floor (line 65) | def floor(x):
function ceil (line 67) | def ceil(x):
function plots (line 70) | def plots(ims, figsize=(12,6), rows=1, interp=False, titles=None):
function do_clip (line 83) | def do_clip(arr, mx):
function get_batches (line 88) | def get_batches(dirname, gen=image.ImageDataGenerator(), shuffle=True, b...
function onehot (line 94) | def onehot(x):
function wrap_config (line 98) | def wrap_config(layer):
function copy_layer (line 102) | def copy_layer(layer): return layer_from_config(wrap_config(layer))
function copy_layers (line 105) | def copy_layers(layers): return [copy_layer(layer) for layer in layers]
function copy_weights (line 108) | def copy_weights(from_layers, to_layers):
function copy_model (line 113) | def copy_model(m):
function insert_layer (line 119) | def insert_layer(model, new_layer, index):
function adjust_dropout (line 129) | def adjust_dropout(weights, prev_p, new_p):
function get_data (line 134) | def get_data(path, target_size=(224,224)):
function plot_confusion_matrix (line 139) | def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion...
function save_array (line 165) | def save_array(fname, arr):
function load_array (line 170) | def load_array(fname):
function mk_size (line 174) | def mk_size(img, r2c):
function mk_square (line 189) | def mk_square(img):
function vgg_ft (line 199) | def vgg_ft(out_dim):
function vgg_ft_bn (line 205) | def vgg_ft_bn(out_dim):
function get_classes (line 212) | def get_classes(path):
function split_at (line 220) | def split_at(model, layer_type):
class MixIterator (line 227) | class MixIterator(object):
method __init__ (line 228) | def __init__(self, iters):
method reset (line 236) | def reset(self):
method __iter__ (line 239) | def __iter__(self):
method next (line 242) | def next(self, *args, **kwargs):
FILE: dogsandcats_keras/vgg16.py
function vgg_preprocess (line 22) | def vgg_preprocess(x):
class Vgg16 (line 27) | class Vgg16():
method __init__ (line 31) | def __init__(self):
method get_classes (line 37) | def get_classes(self):
method predict (line 44) | def predict(self, imgs, details=False):
method ConvBlock (line 52) | def ConvBlock(self, layers, filters):
method FCBlock (line 60) | def FCBlock(self):
method create (line 66) | def create(self):
method get_batches (line 85) | def get_batches(self, path, gen=image.ImageDataGenerator(), shuffle=Tr...
method ft (line 90) | def ft(self, num):
method finetune (line 97) | def finetune(self, batches):
method compile (line 105) | def compile(self, lr=0.001):
method fit_data (line 110) | def fit_data(self, trn, labels, val, val_labels, nb_epoch=1, batch_s...
method fit (line 115) | def fit(self, batches, val_batches, nb_epoch=1):
method test (line 120) | def test(self, path, batch_size=8):
FILE: dogsandcats_keras/vgg16bn.py
function vgg_preprocess (line 22) | def vgg_preprocess(x):
class Vgg16BN (line 27) | class Vgg16BN():
method __init__ (line 31) | def __init__(self, size=(224,224), include_top=True):
method get_classes (line 37) | def get_classes(self):
method predict (line 44) | def predict(self, imgs, details=False):
method ConvBlock (line 52) | def ConvBlock(self, layers, filters):
method FCBlock (line 60) | def FCBlock(self):
method create (line 67) | def create(self, size, include_top):
method get_batches (line 94) | def get_batches(self, path, gen=image.ImageDataGenerator(), shuffle=Tr...
method ft (line 99) | def ft(self, num):
method finetune (line 106) | def finetune(self, batches):
method compile (line 114) | def compile(self, lr=0.001):
method fit_data (line 119) | def fit_data(self, trn, labels, val, val_labels, nb_epoch=1, batch_s...
method fit (line 124) | def fit(self, batches, val_batches, nb_epoch=1):
method test (line 129) | def test(self, path, batch_size=8):
FILE: insurance_scikit/metrics.py
function confusion_matrix (line 6) | def confusion_matrix(rater_a, rater_b, min_rating=None, max_rating=None):
function histogram (line 23) | def histogram(ratings, min_rating=None, max_rating=None):
function quadratic_weighted_kappa (line 38) | def quadratic_weighted_kappa(rater_a, rater_b, min_rating=None, max_rati...
function linear_weighted_kappa (line 88) | def linear_weighted_kappa(rater_a, rater_b, min_rating=None, max_rating=...
function kappa (line 136) | def kappa(rater_a, rater_b, min_rating=None, max_rating=None):
function mean_quadratic_weighted_kappa (line 187) | def mean_quadratic_weighted_kappa(kappas, weights=None):
function weighted_mean_quadratic_weighted_kappa (line 218) | def weighted_mean_quadratic_weighted_kappa(solution, submission):
FILE: timeserie/utils_modified.py
function get_batches (line 54) | def get_batches(dirname, gen=image.ImageDataGenerator(), shuffle=True, b...
function onehot (line 60) | def onehot(x):
function wrap_config (line 64) | def wrap_config(layer):
function copy_layer (line 68) | def copy_layer(layer):
function copy_layers (line 72) | def copy_layers(layers):
function copy_weights (line 76) | def copy_weights(from_layers, to_layers):
function copy_model (line 81) | def copy_model(m):
function insert_layer (line 87) | def insert_layer(model, new_layer, index):
function get_data (line 102) | def get_data(path, target_size=(224,224)):
function save_array (line 133) | def save_array(fname, arr):
function load_array (line 138) | def load_array(fname):
function get_classes (line 142) | def get_classes(path):
function split_at (line 150) | def split_at(model, layer_type):
FILE: vgg_segmentation_keras/fcn_keras2.py
function convblock (line 9) | def convblock(cdim, nb, bits=3):
function fcn32_blank (line 26) | def fcn32_blank(image_size=512):
function fcn_32s_to_16s (line 89) | def fcn_32s_to_16s(fcn32model=None):
function prediction (line 130) | def prediction(kmodel, crpimg, transform=False):
FILE: vgg_segmentation_keras/utils.py
function convblock (line 10) | def convblock(cdim, nb, bits=3):
function fcn32_blank (line 27) | def fcn32_blank(image_size=512):
function fcn_32s_to_16s (line 94) | def fcn_32s_to_16s(fcn32model=None):
function fcn_32s_to_8s (line 139) | def fcn_32s_to_8s(fcn32model=None):
function prediction (line 210) | def prediction(kmodel, crpimg, transform=False):
Condensed preview — 41 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,796K chars).
[
{
"path": ".gitignore",
"chars": 55,
"preview": "**/.ipynb_checkpoints\n\n/data\n\n*.pyc\n*.jpg\n*.png\n*.jpeg\n"
},
{
"path": "LICENSE.txt",
"chars": 1067,
"preview": "MIT License\n\nCopyright (c) 2017 m.zaradzki\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
},
{
"path": "README.md",
"chars": 1875,
"preview": "# neuralnets\n\nExperiments with **Theano**, **TensorFlow** and **Keras**\n\n\n## Main sub-projects\n\n* **autoencoder_keras** "
},
{
"path": "autoencoder_keras/finance_autoencoder.ipynb",
"chars": 19655,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 86,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "autoencoder_keras/mnist_autoencoder.ipynb",
"chars": 279809,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/mnist_conv_autoencoder.ipynb",
"chars": 181261,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/mnist_pca_autoencoder.ipynb",
"chars": 141129,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/mnist_vae.ipynb",
"chars": 683583,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 8,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/mnist_vae_mixture.ipynb",
"chars": 316417,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/natural_images_autoencoder.ipynb",
"chars": 526308,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 116,\n \"metadata\": {\n \"collapsed\": true\n },\n \"ou"
},
{
"path": "autoencoder_keras/nonlinear2d_vae.ipynb",
"chars": 195067,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "autoencoder_keras/vae_theory_mardown_only.ipynb",
"chars": 5154,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# From Oliver Durr\"\n ]\n },\n {\n "
},
{
"path": "dogsandcats_keras/README.md",
"chars": 840,
"preview": "\n## Dogs and Cats : Kaggle image recognition\n\n\nhttps://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition\n\n\nThis folder"
},
{
"path": "dogsandcats_keras/dogsandcats.ipynb",
"chars": 13559,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "dogsandcats_keras/dogsandcats_v2.ipynb",
"chars": 17042,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "dogsandcats_keras/dogsandcats_v3.ipynb",
"chars": 21999,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "dogsandcats_keras/dogsandcats_v4.ipynb",
"chars": 34960,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "dogsandcats_keras/dogsandcats_v5.ipynb",
"chars": 273390,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "dogsandcats_keras/gpu_check.py",
"chars": 1044,
"preview": "from theano import function, config, shared, sandbox\nimport theano.tensor as T\nimport numpy\nimport time\n\n\n# See this pag"
},
{
"path": "dogsandcats_keras/utils.py",
"chars": 7644,
"preview": "from __future__ import division,print_function\nimport math, os, json, sys, re\nimport cPickle as pickle\nfrom glob import "
},
{
"path": "dogsandcats_keras/vgg16.py",
"chars": 4129,
"preview": "from __future__ import division, print_function\n\nimport os, json\nfrom glob import glob\nimport numpy as np\nfrom scipy imp"
},
{
"path": "dogsandcats_keras/vgg16bn.py",
"chars": 4529,
"preview": "from __future__ import division, print_function\n\nimport os, json\nfrom glob import glob\nimport numpy as np\nfrom scipy imp"
},
{
"path": "image_style_transfer/image_style_transfer.ipynb",
"chars": 113327,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "insurance_scikit/metrics.py",
"chars": 8664,
"preview": "#! /usr/bin/env python2.7\n\nimport numpy as np\n\n\ndef confusion_matrix(rater_a, rater_b, min_rating=None, max_rating=None)"
},
{
"path": "insurance_scikit/prudential.ipynb",
"chars": 122534,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"See : https://www.kaggle.com/c/prud"
},
{
"path": "timeserie/timeserie.ipynb",
"chars": 56243,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "timeserie/timeserie2.ipynb",
"chars": 92815,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "timeserie/timeserie_garch.ipynb",
"chars": 111287,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "timeserie/utils_modified.py",
"chars": 5105,
"preview": "from __future__ import division, print_function\nimport math, os, json, sys, re\nimport cPickle as pickle\nfrom glob import"
},
{
"path": "vgg_faces_keras/README.md",
"chars": 930,
"preview": "\n\nImplement the **VGG-Face** model using **Keras** a sequential model.\n\nMy post on Medium explaining this :\n* https://me"
},
{
"path": "vgg_faces_keras/haarcascade_frontalface_default.xml",
"chars": 930127,
"preview": "<?xml version=\"1.0\"?>\n<!--\n Stump-based 24x24 discrete(?) adaboost frontal face detector.\n Created by Rainer Lienh"
},
{
"path": "vgg_faces_keras/vgg_faces_demo.ipynb",
"chars": 348452,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 34,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "vgg_segmentation_keras/README.md",
"chars": 3000,
"preview": "\nImplements and tests the **FCN-16s** and **FCN-8s** models for image segmentation using **Keras** deep-learning library"
},
{
"path": "vgg_segmentation_keras/drawio_diagrams/fcn16s_diagram_drawio.xml",
"chars": 1638,
"preview": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.29"
},
{
"path": "vgg_segmentation_keras/drawio_diagrams/fcn8s_diagram_drawio.xml",
"chars": 1702,
"preview": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.29"
},
{
"path": "vgg_segmentation_keras/fcn16s_segmentation.ipynb",
"chars": 887743,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "vgg_segmentation_keras/fcn16s_segmentation_keras2.ipynb",
"chars": 726463,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 54,\n \"metadata\": {\n \"collapsed\": true\n },\n \"out"
},
{
"path": "vgg_segmentation_keras/fcn8s_tvg_for_rnncrf.ipynb",
"chars": 924302,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "vgg_segmentation_keras/fcn_keras2.py",
"chars": 5266,
"preview": "import copy\nimport numpy as np\n\nfrom keras.models import Sequential, Model\nfrom keras.layers import Input, Dropout, Perm"
},
{
"path": "vgg_segmentation_keras/test_several_image_sizes_on_fcn8s.ipynb",
"chars": 539595,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "vgg_segmentation_keras/utils.py",
"chars": 9631,
"preview": "import copy\nimport numpy as np\n\nfrom keras.models import Sequential, Model\nfrom keras.layers import Input, Dropout, Perm"
}
]
About this extraction
This page contains the full source code of the mzaradzki/neuralnets GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 41 files (7.3 MB), approximately 1.9M tokens, and a symbol index with 91 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.