Skip to content

Instantly share code, notes, and snippets.

@dmitrysarov
Last active December 26, 2018 13:27
Show Gist options
  • Save dmitrysarov/7e3f227e586bbf409a4ad8fdbc95e1a0 to your computer and use it in GitHub Desktop.
Save dmitrysarov/7e3f227e586bbf409a4ad8fdbc95e1a0 to your computer and use it in GitHub Desktop.
How Keras BatchNorm should be set for transfer learning.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.5/dist-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
" from ._conv import register_converters as _register_converters\n"
]
}
],
"source": [
"import os \n",
"os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\" \n",
"os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"1\" \n",
"import tensorflow.keras as keras\n",
"import tensorflow as tf\n",
"import numpy as np\n",
"session_config=tf.ConfigProto(\n",
" gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.05, allow_growth=True), allow_soft_placement=True, log_device_placement=False)\n",
"sess = tf.Session(config=session_config)\n",
"import pprint\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def plot_hist(hist):\n",
" hist_df = pd.DataFrame(hist.history)\n",
" hist_df.index = np.arange(1, len(hist_df)+1)\n",
" fig, axs = plt.subplots(nrows=len(hist_df.columns)//2, sharex=True, figsize=(16, 10))\n",
" indx = 0\n",
" for col in hist_df.columns:\n",
" if 'val' in col:\n",
" continue \n",
" axs[indx].plot(hist_df['val_'+col], lw=5, label='val_'+col)\n",
" axs[indx].plot(hist_df[col], lw=5, label=col)\n",
" axs[indx].set_ylabel(col)\n",
" axs[indx].set_xlabel('Epoch')\n",
" axs[indx].grid()\n",
" axs[indx].legend(loc=0)\n",
" indx += 1\n",
" plt.show();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simple net"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"inpt = keras.layers.Input(shape=[100,1],)\n",
"layer = keras.layers.BatchNormalization(trainable=True, name='batchnorm_1')(inpt)\n",
"layer = keras.layers.Flatten()(layer)\n",
"layer = keras.layers.Dense(2, activation=keras.activations.tanh)(layer)\n",
"layer = keras.layers.BatchNormalization(trainable=True, name='batchnorm_2')(layer)\n",
"output = keras.layers.Dense(1, activation='sigmoid')(layer)\n",
"model = keras.Model(inputs=[inpt], outputs = [output])\n",
"model.compile(optimizer='sgd', loss=keras.losses.binary_crossentropy, metrics=[keras.metrics.binary_accuracy])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Initial values of batchnorm"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\t batchnorm_1\n",
"[('gamma', array([1.], dtype=float32)),\n",
" ('beta', array([0.], dtype=float32)),\n",
" ('running mean', array([0.], dtype=float32)),\n",
" ('running std', array([1.], dtype=float32))]\n",
"\t batchnorm_2\n",
"[('gamma', array([1., 1.], dtype=float32)),\n",
" ('beta', array([0., 0.], dtype=float32)),\n",
" ('running mean', array([0., 0.], dtype=float32)),\n",
" ('running std', array([1., 1.], dtype=float32))]\n"
]
}
],
"source": [
"for layer_name in 'batchnorm_1', 'batchnorm_2':\n",
" print('\\t', layer_name)\n",
" layer = model.get_layer(layer_name)\n",
" pprint.pprint(list(zip(['gamma', 'beta', 'running mean', 'running std'], layer.get_weights())))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# One learning step "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7oAAAJQCAYAAACgrBg9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3X2clXWd//HXxwHkHrlRZAEBExIFEQVR0RpNhF1Lt8ywTNNKdrek7W537eZXZlo+qt3KsjYqU1tTyXa9y/UGZTJDE1BRQeVGUMF7UGHQERi+vz/mwM7MOcgcnHPONYfX8/GYh+f6XDfzHviKfri+1/eKlBKSJEmSJFWLPSodQJIkSZKk9mSjK0mSJEmqKja6kiRJkqSqYqMrSZIkSaoqNrqSJEmSpKpioytJkiRJqio2upIkSZKkqmKjK0mSJEmqKja6kiRJkqSq0qnSAdrTgAED0vDhw0t2/Y0bN9KjR4+SXV/aFY5LZZHjUlnjmFQWOS6VRVkflwsXLnwlpbT3zo6rqkZ3+PDhLFiwoGTXr6uro7a2tmTXl3aF41JZ5LhU1jgmlUWOS2VR1sdlRDzdluOcuixJkiRJqio2upIkSZKkqmKjK0mSJEmqKlX1jG4hmzdvZvXq1TQ0NLzja/Xp04fHH3+8HVIpS7p27cqQIUPo3LlzpaNIkiRJagdV3+iuXr2aXr16MXz4cCLiHV1rw4YN9OrVq52SKQtSSqxdu5bVq1czYsSISseRJEmS1A6qfupyQ0MD/fv3f8dNrqpTRNC/f/92ueMvSZIkKRtKekc3Ii4H3g+8lFIaU2B/AD8G/g54Azg7pfRgbt8ngK/nDr0opXTlO8ixq6dqN+D4kFS1tjZCw+uVTpEJnTZvgDfWVTqG1ILjUlm0fVx23Qv26Lj3RUs9dfkK4KfAVTvY/7fAyNzXJODnwKSI6Ad8E5gAJGBhRNyUUnq1xHklSaoO9/4I7vkBbNpQ6SSZcAzAXyqdQmrJcaks2j4u/3UldO9X4TS7rqQtekrpHuDt/prqFOCq1OR+YK+IGARMBe5MKa3LNbd3AtNKmVWSpKrxzP0w55s2uZKk3ValF6MaDDzbbHt1rrajep6ImAHMABg4cCB1dXUt9vfp04cNG9rnP/SNjY3tdq23M2jQIJ5//vmC+/785z9z6aWX8vvf/z5v36mnnsqvf/1r9tprr1JHrDoNDQ15Y6ejqK+v77DZVb0cl5U1cunPC/9HU5KkNrr3L/eypXPvSsfYZZVudN+xlNIsYBbAhAkTUm1tbYv9jz/+eNOqy+f/seRZVl1yUrtda0erO3fv3p1OnToV3H/HHXe0y/fesmULnTplb2iklEgpsUcJnhXo2rUr48ePb/frlkNdXR2tx71UaY7LCkoJHvxMpVNIkjq4YyYf06GnLle6m1kDDG22PSRXWwPUtqrXlS1VOzv//PMZOnQon/3sZwG44IIL6NSpE3PnzuXVV19l8+bNXHTRRZxyyiltut769es56aSTWL58Occddxw/+9nP2GOPPRg+fDgLFiygvr6ev/3bv+WYY45h3rx5DB48mBtvvJFu3brxy1/+klmzZrFp0yYOOOAAfvvb39K9e3fOPvtsunbtykMPPcTkyZO5+eabmTdvHnvvvTdbt25l1KhR3Hfffey99955eW6++WYuuugiNm3aRP/+/bn66qsZOHAg9fX1zJw5kwULFhARfPOb3+TUU0/ltttu46tf/SqNjY0MGDCAu+66iwsuuICePXvy5S9/GYAxY8Zwyy23ADB16lQmTZrEwoULufXWW7nkkkuYP38+b775Jh/+8If51re+BcD8+fP553/+ZzZu3Miee+7JXXfdxUknncSll17KoYceCsAxxxzDZZddxrhx497x76skZdKLi2H9mvx61917ts/mLVvonMG/xNXuzXGpLKqWcVnpn+Am4LyIuJamxaheTyk9HxG3A9+JiL65404EvlKpkO/U9OnT+fznP7+90Z09eza33347n/vc5+jduzevvPIKRx55JCeffHKbVgB+4IEHWLJkCcOGDWPatGn893//Nx/+8IdbHLNs2TKuueYafvnLX/KRj3yEP/zhD3z84x/nQx/6EOeeey4AX//61/n1r3/NzJkzgaZ3Ds+bN4+amhr69OnD1Vdfzec//3nmzJnDuHHjCja50NQ83n///UQEv/rVr/je977Hv//7v/Ptb3+bPn368OijjwLw6quv8vLLL3Puuedyzz33MGLECNat2/lKg8uWLePKK6/kyCOPBODiiy+mX79+NDY28r73vY9HHnmEAw88kOnTp3PdddcxceJE1q9fT7du3fjUpz7FFVdcwY9+9COWLl1KQ0ODTa6k6rb0tvzaiPfAJ24uf5YM+YuzDJRBjktlUbWMy5IuRhUR1wD3Ae+OiNUR8amI+MeI+MfcIbcCTwHLgV8CnwFIKa0Dvg3Mz31dmKt1SOPHj+ell17iueeeY9GiRfTt25d9992Xr371qxxyyCGccMIJrFmzhhdffLFN1zviiCPYf//9qamp4aMf/Sj33ntv3jEjRozYfhfz8MMPZ9WqVQA89thjHHvssYwdO5arr76axYsXbz/ntNNOo6amBoBPfvKTXHVV02LZl19+Oeecc84O86xevZqpU6cyduxYvv/972+/5pw5c7Y39wB9+/bl/vvv5z3veQ8jRowAoF+/nU+HGDZs2PYmF5r+ouCwww5j/PjxLF68mCVLlvDkk08yaNAgJk6cCEDv3r3p1KkTp512GrfccgubN2/m8ssv5+yzz97p95OkDm1ZgcdYRrmeoyRp91LSO7oppY/uZH8CPruDfZcDl5ciVyWcdtppXH/99bzwwgtMnz6dq6++mpdffpmFCxfSuXNnhg8fTkNDQ5uu1fqub6G7wHvuuef2zzU1Nbz55psAnH322dxwww2MGzeOK664osViMT169Nj+eejQoQwcOJC7776bBx54gKuvvnqHeWbOnMkXv/hFTj75ZOrq6rjgggva9HM016lTJ7Zu3bp9u/mvRfNcK1eu5Ac/+AHz58+nb9++nH322W/769a9e3emTJnCjTfeyOzZs1m4cGHR2SSpw9i4Fp59IL8+cmr5s0iSVEGVnrpcNu2xUNSGDRt2uEjUzkyfPp1zzz2XV155hT/96U/Mnj2bffbZh86dOzN37lyefvrpNl/rgQceYOXKlQwbNozrrruOGTNmtPncDRs2MGjQIDZv3szVV1/N4ME7Xpfz05/+NB//+Mc588wzt9/pLeT111/ffp0rr7xye33KlClcdtll/OhHPwKapi4feeSRfOYzn2HlypXbpy7369eP4cOHb38m98EHH2TlypUFv9f69evp0aMHffr04cUXX+R///d/qa2t5d3vfjfPP/888+fPZ+LEiWzYsIFu3brRqVMnPv3pT/OBD3yAY489lr59+xa8riRVheVzaHr9fDP93gUDDqhIHEmSKqWkU5f1fw4++GA2bNjA4MGDGTRoEGeccQYLFixg7NixXHXVVRx44IFtvtbEiRM577zzGD16NCNGjOCDH/xgm8/99re/zaRJk5g8efJOv+fJJ59MfX39205bhqbFtU477TQOP/xwBgwYsL3+9a9/nVdffZUxY8Ywbtw45s6dy957782sWbP40Ic+xLhx45g+fTrQ9GqkdevWcfDBB/PTn/6UUaNGFfxe48aNY/z48Rx44IF87GMfY/LkyQB06dKF6667jpkzZzJu3DimTJmy/U7v4YcfTu/evXf6c0hSh1fo+dxR3s2VJO1+omn2cHWYMGFCWrBgQYva448/zujRo9vl+u/kjm5HtGDBAr7whS/w5z//udJR3pHnnnuO2tpannjiiR2+mqg9x0m5+RoXZZHjsgIaN8P33wUNr7esn3Uj7F9biUSZ4phUFjkulUVZH5cRsTClNGFnx3lHVwVdcsklnHrqqXz3u9+tdJR35KqrrmLSpElcfPHFJXn/riRlxrN/zW9yu/SC/Y6uTB5Jkipot3lGt6N59NFHOfPMM1vU9txzT/7617+W5fuff/75nH/++S1qF198Mb///e9b1E477TS+9rWvlSXTrjjrrLM466yzKh1Dkkpv6e35tXcdB526lD+LJEkVZqObUWPHjuXhhx+udIwWvva1r2W6qZWk3VqhRtfncyVJuynnckqS1NGtWwmvPJlfH3li+bNIkpQBNrqSJHV0y+7Ir/3NYdBzn/JnkSQpA2x0JUnq6Aq+Vmha+XNIkpQRNrqSJHVkb9XDqnvz66OctixJ2n3Z6JbBqlWrGDNmTF7905/+NEuWLKlAIklS1XiqDho3taz13Bf2HVeROJIkZcHus+ryBX3e8SV67fR7vL6zI1r41a9+tctZmtuyZQudOmXzt7KxsZGamppKx5Ck6rWswGrLI6eA7w6XJO3G/K9gmWzZsoUzzjiD0aNH8+EPf5g33niD2tpaFixYAEDPnj352te+xrhx4zjyyCN58cUXAbj55puZNGkS48eP54QTTthev+CCCzjzzDOZPHkyZ555Ju95z3tavI7omGOOYdGiRQWzPPDAAxx11FGMHz+eo48+miefbFqps7GxkS9/+cuMGTOGQw45hJ/85CcAzJ8/n6OPPppx48ZxxBFHsGHDBq644grOO++87dd8//vfT11d3faf5Utf+hLjxo3jvvvu48ILL2TixImMGTOGGTNmkFICYPny5ZxwwgmMGzeOww47jBUrVnDWWWdxww03bL/uGWecwY033tgevwWSVH1SgqUFFqLy+VxJ0m7ORrdMnnzyST7zmc/w+OOP07t3b372s5+12L9x40aOPPJIFi1axHve8x5++ctfAk0N6/33389DDz3E6aefzve+973t5yxZsoQ5c+ZwzTXX8KlPfYorrrgCgKVLl9LQ0MC4cYWnrR144IH8+c9/5qGHHuLCCy/kq1/9KgCzZs1i1apVPPzwwzzyyCOcccYZbNq0ienTp/PjH/+YRYsWMWfOHLp16/a2P+vGjRuZNGkSixYt4phjjuG8885j/vz5PPbYY7z55pvccsstQFMT+9nPfpZFixYxb948Bg0a1OLneP3115k3bx4nnXRS0b/ekrRbeH4R1L/QslbTBfavrUQaSZIyw0a3TIYOHcrkyZMB+PjHP86997ZcOKRLly68//3vB+Dwww9n1apVAKxevZqpU6cyduxYvv/977N48eLt55x88snbm87TTjuNW265hc2bN3P55Zdz9tln7zDL66+/zmmnncaYMWP4whe+sP2ac+bM4R/+4R+2T4Pu168fTz75JIMGDWLixIkA9O7de6fTpGtqajj11FO3b8+dO5dJkyYxduxY7r77bhYvXsyGDRtYs2YNH/zgBwHo2rUr3bt3573vfS/Lli3j5Zdf5pprruHUU0/N7LRsSaq4pQWmLQ8/BvbsWf4skiRliI1umUTE22537tx5e62mpoYtW7YAMHPmTM477zweffRRfvGLX9DQ0LD9nB49emz/3L17d6ZMmcKNN97I7NmzOeOMM3aY5f/9v//Hcccdx2OPPcbNN9/c4ppt1alTJ7Zu3bp9u/k1unbtuv253IaGBj7zmc9w/fXX8+ijj3Luuefu9PudddZZ/Nd//Re/+c1v+OQnP1l0NknabRR8Pndq+XNIkpQxu8+tsiIXiipkw4YN9Oq10yWpCnrmmWe47777OOqoo/jd737HMcccw80337zT815//XUGDx4MwJVXXvm2x37605/mAx/4AMceeyx9+/Zt0zW3TRMGmDJlCr/4xS847rjj6NSpE+vWrePd7343zz//PPPnz2fixIls2LCBbt26MXz4cH72s5+xdetW1qxZwwMPPFDwe21ragcMGEB9fT3XX389H/7wh+nVqxdDhgzhhhtu4O///u956623aGxspHv37px99tkcccQR7Lvvvhx00EE7/TWSpN1S/UuwZmF+3dcKSZLkHd1yefe7381ll13G6NGjefXVV/mn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\n",
"text/plain": [
"<Figure size 1152x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"num_sampels = 10\n",
"x = np.random.randn(num_sampels,100,1)\n",
"y = np.random.randint(0,2,num_sampels)\n",
"hist = model.fit(x,y, epochs=50, verbose=0, validation_data=(x,y))\n",
"plot_hist(hist)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Values of batchnorm after learning"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\t batchnorm_1\n",
"[('gamma', array([1.0290645], dtype=float32)),\n",
" ('beta', array([-0.00476876], dtype=float32)),\n",
" ('running mean', array([0.0010266], dtype=float32)),\n",
" ('running std', array([1.0008327], dtype=float32))]\n",
"\t batchnorm_2\n",
"[('gamma', array([0.9985659, 1.0694516], dtype=float32)),\n",
" ('beta', array([-0.10219583, 0.0675393 ], dtype=float32)),\n",
" ('running mean', array([ 0.15710019, -0.1304233 ], dtype=float32)),\n",
" ('running std', array([0.87748164, 0.74684024], dtype=float32))]\n"
]
}
],
"source": [
"for layer_name in 'batchnorm_1', 'batchnorm_2':\n",
" print('\\t', layer_name)\n",
" layer = model.get_layer(layer_name)\n",
" pprint.pprint(list(zip(['gamma', 'beta', 'running mean', 'running std'], layer.get_weights())))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Let pretend that we have a learned model\n",
"and we just wanna finetune it on our dataset (with biased statistics). So we freeze layers, and we not gonna ever learn new head. So expectedly nothing gonna changes "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10/10 [==============================] - 0s 8ms/step\n",
"model gives result before training: [0.9110303670167923, 0.6]\n"
]
},
{
"data": {
"image/png": "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WLp0KY888gj/9V//9bY5Dz30EOeddx5Llixhxx13bAmZH/7wh2lsbGTx4sUMGzaMH//4xy37NDU1cdttt/Hv//7vnHbaaVx++eUAzJ8/n9raWnbZZZcN1nPwwQdzxx13cPfdd3PKKafw9a9/HYCLLrqIHXbYgfvuu497772Xww8/nJUrVzJlyhR+9atfcdttt/HLX/5yk7/3oYce4txzz2XJkiXsvvvuXHzxxSxcuJB7772XW265hXvvvZfXX3+dCRMm8K1vfYvFixczf/58evXqxVlnncWll14KwPLly1mzZg21tbXt+ndur3KC7qsRsd/6jYgYBfylU6uRJEmSpM1g5MiRPPfcczz99NMsXryYvn378r73vY8vfelLjBgxgiOPPJKnnnqq5UropowePZoPfvCDdOvWjVNPPZU//OEPb5szZMgQ9t13XwBGjRrFihUrALj//vs55JBDqKmp4fLLL2fJkiUt+4wfP55u3boB8PGPf5zLLrsMgEsuuYQzzzxzo/U0NTVx9NFHU1NTwze+8Y2WY86fP5/zzjuvZV7fvn254447OPTQQxkyZAgAO+200yZ/7+67784BBxzQsj1nzhz2228/Ro4cyZIlS1i6dCnLli1jwIAB7L///gD06dOH7t27M378eK6//nreeOMNLrnkEiZPnrzJ85WrnEXefw/8MiKeBgJ4HzCh0yuSJEmSpM1g/PjxXH311fzpT39iwoQJXH755axcuZJFixbRo0cPBg8ezJo1a9p1rLbvfd3Qe2C32Wabls/dunVrWbo8efJkrrnmGmpra7n00ktpaGhombfddtu1fN5tt93o378/N998M3feeWfL1d0NOf/88/nsZz/LiSeeSENDAzNmzGjX72ite/fuLUuwgbf8W7Su67HHHuOb3/wmjY2N9O3bl8mTJ7/jv9u2227LuHHjuPbaa5kzZw6LFi0qu7ZN1t7eiZnZGBF7AXuWhpZl5hudXpEkSZKk94yufFDUhAkTmDJlCs8//zy33HILc+bMYdddd6VHjx4sWLCAxx9/vN3HuvPOO3nsscfYfffdueqqq5g6dWq79121ahUDBgzgjTfe4PLLL2fgwIEbnXv22Wdz2mmncfrpp7dc6d2Ql19+ueU4P/3pT1vGx40bx6xZs/iP//gPAF566SUOOOAAzj33XB577DH69evHiy++yE477cTgwYO5/vrrAbjrrrt47LHHNniuV155he22244ddtiBZ599lv/+7/+mvr6ePffck2eeeYbGxkb2339/Vq1aRa9evejevTtnn302J5xwAocccgh9+/Zt979Ve7V76XJEnAdsl5n3Z+b9wPYRcW6nVyRJkiRJm8E+++zDqlWrGDhwIAMGDGDixIksXLiQmpoaLrvsMvbaa692H2v//fdn2rRpDBs2jCFDhvChD32o3ftedNFFjBkzhrFjx27ynCeeeGLLA6XeyYwZMxg/fjyjRo2iX79+LeMXXnghL730EsOHD6e2tpYFCxawyy67MHv2bD784Q9z0EEHMWFC88Ldk08+mRdffJF99tmH7373u+yxxx4bPFdtbS0jR45kr7324mMf+xhjx44FYOutt+aqq67i/PPPp7a2lnHjxrVc6R01ahR9+vTZ5O/oqGjvzdURcU9m7ttm7O7MHFmRyjqgrq4uFy5c2KU1NDQ0UF9f36U1SOvZj6om9qOqif2oavJe7ccHHniAYcOGdXUZW5yFCxfymc98hltvvbUix1+1ahW9e/euyLFbe/rpp6mvr+fBBx/c6KuJNtQjEbEoM+s2dfxyHkbVLVotNI+IbsDWZewvSZIkSeqgr33ta5x88sn8y7/8S1eX8q5cdtlljBkzhosvvrhi798t52FUNwBXRcQPStufKI1JkiRJUuHdd999nH766W8Z22abbfif//mfzXL+6dOnM3369LeMXXzxxW97HdD48eP58pe/vFlq6ohJkyYxadKkip6jnKD7RZrD7Tml7ZuAH3V6RZIkSZJUhWpqarjnnnu6uoy3+PKXv1zVobarlPPU5TeB75f+JEmSJEmqSu0OuhExFPgXYG+g5/rxzPxgBeqSJEmSJKlDyrnz9yc0X81dCxwGXAb8vBJFSZIkSZLUUeUE3V6Z+TuaX0n0eGbOALru7c6SJEmSJG1AOUH3rxGxFfBQREyLiA8B21eoLkmSJEmqmBUrVjB8+PC3jZ999tksXbq0CypSZyrnqcufBrYFPgVcRPPy5TMqUZQkSZKk94gZO2yGc7zc7qk/+lHnvFhm7dq1dO9eTtzafNatW0e3bt26uoyKavcV3cxszMzVmdmUmWdm5smZecf67yPiO5UpUZIkSZI639q1a5k4cSLDhg3jIx/5CK+99hr19fUsXLgQgO23354vf/nL1NbWcsABB/Dss88CcN111zFmzBhGjhzJkUce2TI+Y8YMTj/9dMaOHcvpp5/OoYce+pbXER188MEsXrx4g7XceeedHHjggYwcOZKDDjqIZcuWAc2h9B/+4R8YPnw4I0aM4DvfaY5djY2NHHTQQdTW1jJ69GhWrVrFpZdeyrRp01qOefzxx9PQ0NDyWz73uc9RW1vL7bffzsyZM9l///0ZPnw4U6dOJTMBeOSRRzjyyCOpra1lv/3245FHHmHSpElcc801LcedOHEi1157bWf8T1Ax5Sxd3pSxnXgsSZIkSaqoZcuWce655/LAAw/Qp08fvve9773l+1dffZUDDjiAxYsXc+ihh/LDH/4QaA6sd9xxB3fffTennHIKX//611v2Wbp0KfPnz+cXv/gFZ511FpdeeikAy5cvZ82aNdTW1m6wlr322otbb72Vu+++m5kzZ/KlL30JgNmzZ7NixQruuece7r33XiZOnMjrr7/OhAkT+Na3vsXixYuZP38+vXr1esff+uqrrzJmzBgWL17MwQcfzLRp02hsbOT+++/nL3/5C9dffz3QvHT7vPPOY/Hixdx2220MGDDgLb/j5Zdf5rbbbuO446r7cU2dGXQlSZIkaYux2267MXZs8/W60047jT/84Q9v+X7rrbfm+OOPB2DUqFGsWLECgKamJo4++mhqamr4xje+wZIlS1r2OfHEE1tC5/jx47n++ut54403uOSSS5g8efJGa3n55ZcZP348w4cP5zOf+UzLMefPn88nPvGJlmXQO+20E8uWLWPAgAHsv//+APTp02eTy6S7devGySef3LK9YMECxowZQ01NDTfffDNLlixh1apVPPPMM3zoQx8CoGfPnmy77bb87d/+LQ899BArV67kF7/4BSeffHLVLstez6ArSZIk6T0pIt5xu0ePHi1j3bp1Y+3atQCcf/75TJs2jfvuu48f/OAHrFmzpmWf7bbbruXztttuy7hx47j22muZM2cOEydO3Ggt//iP/8hhhx3G/fffz3XXXfeWY7ZX9+7defPNN1u2Wx+jZ8+eLfflrlmzhnPPPZerr76a++67jylTpmzyfJMmTeLnP/85P/nJT/j4xz9edm2bW2fG8Nj0FEmSJElqpYwHRXW2J554gttvv50DDzyQK664goMPPpjrrrtuk/u9/PLLDBw4EICf/vSn7zj37LPP5oQTTuCQQw6h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ARARw2gOuitL806JiG0iYggwFLizwvVKkiRJUkUZcjft3f4bVXTpcmaujYhpwI1AN+CSzFwSETOBhZk5F/gc8MOI+AzND6aanM0LsZdExBxgKbAWOM8nLkuSJEmSNqXi9+hm5jyaXxnUeuwrrT4vBcZuZN+LgYsrWqAkSZIkqVAqvXRZkiRJkrSF2n777Tf63YoVKxg+vN3PEd6squGpy5IkSZL0njJ4+m8qfo4VXzuu4ueoVl7RlSRJkqT3iOnTpzNr1qyW7RkzZvDVr36VI444gv32248DDjiAa6+9tuzjrlmzhjPPPJOamhpGjhzJggULAFiyZAmjR49m3333ZcSIETz00EO8+uqrHHfccdTW1jJ8+HCuuuqqTvt963lFV5IkSZLeIyZMmMDf//3fc9555wEwZ84cbrzxRj71qU/Rp08fVqxYwZFHHsmJJ55Y1pOPZ82aRURw33338eCDD3LUUUexfPly/vM//5NPf/rTTJw4kddff51169Yxb9483v/+9/Ob3zRf1X755Zc7/Xe2+4puRHw6IvpEsx9HxF0RcVSnVyRJkiRJqoiRI0fy3HPP8fTTT7N48WL69u3L+973Pr70pS8xYsQITjzxRJ566imeffbZso77hz/8gdNOOw2Avfbai913353ly5dz4IEH8s///M/867/+K48//ji9evWipqaGm266iS9+8Yvceuut7LDDDp3+O8tZuvzxzHwFOAroC5wOfK3TK5IkSZIkVcz48eO5+uqrueqqq5gwYQKXX345K1euZNGiRfzxj3+kf//+rFmzplPO9bGPfYy5c+fSq1cvjj32WG6++Wb22GMP7rrrLmpqarjwwguZOXNmp5yrtXKWLq+/bn0s8LPS+3B907EkSZIklakrHxQ1YcIEpkyZwvPPP88tt9zCnDlz2HXXXenRowe//e1vefzxx8s+5iGHHMLll1/O4YcfzvLly3niiSfYc889efTRR/ngBz/Ipz71KZ544gnuvfde9tprL3baaSdOO+00dtxxR370ox91+m8sJ+guiojfAkOACyKiN/Bmp1ckSZIkSaqYffbZh1WrVjFw4EAGDBjAxIkTOeGEE6ipqaG2tpa99tqr7GOee+65nHPOOdTU1NC9e3cuvfRSttlmG+bMmcPPfvYzevTo0bJEurGxkc9//vNstdVW9OjRg+9///ud/hvLCbpn/f/27j7o0rq8D/j3ygKuCY6uIX0mZQkvE1JrS3lxsUarPmMrEHWKjqnAJBZ5kZmMUktS7VodQ60drWRqamUwVDEyY8UOIXang1oreUqshIC4yIvV4EbC7mBYUF62vgDL1T/OWXN82AV22fOcs/d+PjNnnvv+3fd99jo71/x2v8/9cpIcl2RTd/+gqp6b5Ky9XhEAAABTdcstt/xk+ZBDDsl1112XJHnooYfyrGc96yfbtm3btsv3OOKII3LrrbcmSVavXp1PfOITj9tn/fr1Wb9+/U+NnXzyyTn55JOfVv1PZnfu0f3VJN/s7vur6jeTvDvJ3n88FgAAADwNu3NG95Ikx1bVsUl+J8nHklye5OXTKAwAAIDZu+WWW/LGN77xp8ae8Yxn5Prrr59RRU9ud4Luo93dVXVqko9098er6pxpFQYAAMDsHXPMMdm4ceOsy9gtuxN0H6qqd2b0tUIvraqfSXLgdMoCAACAPbM79+ieluTHGX2f7neTrE1y0VSqAgAAgD30lIPuONx+Ksmzq+o1SX7U3ZdPrTIAAADYA0856FbVG5L8eZJ/luQNSa6vql+fVmEAAADsfQcffPCsS5i63blH911JTuzue5Kkqn4hyf9KcuU0CgMAAIA9sTtB92d2hNyx+7J79/gCAACQJBc+ewX+jAeecHN35x3veEc+97nPpary7ne/O6961aty991357TTTsuDDz6YRx99NJdcckle/OIX55xzzsmNN96YqsrZZ5+dCy64YPqfYQ/tTtD9fFV9Icmnx+unJbl675cEAADAtF111VXZuHFjbr755tx777058cQTc8IJJ2TDhg05+eST8653vSvbt2/PD37wg2zcuDFbtmzJrbfemiS5//77Z1z9E3vKQbe7315Vr0/ykvHQpd39x9MpCwAAgGn68pe/nDPOOCOrVq3KwsJCXv7yl+emm27KiSeemLPPPjuPPPJIXvva1+a4447LUUcdlU2bNuX888/Pq1/96px00kmzLv8J7dalx939R9392+OXkAsAADAwL3vZy3Lttdfm0EMPzZve9KZcfvnlWbNmTW6++eYsLi7mox/9aM4999xZl/mEnjToVtVDVfXgTl4PVdWDK1EkAAAAe9dLX/rSfOYzn8n27duzdevWXHvttXnBC16QO++8MwsLC3nzm9+cc889NzfddFPuvffePPbYY3n9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\n",
"text/plain": [
"<Figure size 1152x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"10/10 [==============================] - 0s 3ms/step\n",
"model gives result after training: [0.9110303670167923, 0.6]\n"
]
}
],
"source": [
"for layer in model.layers:\n",
" layer.trainable = False\n",
" \n",
"model.compile(optimizer='sgd', loss=keras.losses.binary_crossentropy, metrics=[keras.metrics.binary_accuracy])\n",
"\n",
"x = x*100 - 100\n",
"y = y\n",
"\n",
"print('model gives result before training: ', model.evaluate(x,y,batch_size=1))\n",
"hist = model.fit(x,y, epochs=100, verbose=0, validation_data=(x,y),batch_size=1)\n",
"plot_hist(hist)\n",
"print('model gives result after training: ', model.evaluate(x,y,batch_size=1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Now will try to freeze network again. But set to batchnorm \"stateful\" atribut to True."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10/10 [==============================] - 0s 9ms/step\n",
"model gives result before training: [0.9110303670167923, 0.6]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7oAAAJQCAYAAACgrBg9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xuc1nWd///Hi+F8FAHxADLjbz1gIKIoFtZOJelmaWWE50Mlu5vSecvMLTLd3Nr9blm0G5apLank7iqam3matNQVUFHBVIRBBzxwEhlgOMy8f3/MBV0zcyFzyVxzXVzzuN9uc/P6vD+H6zX6jhvP3u/P+x0pJSRJkiRJKhfdil2AJEmSJEkdyaArSZIkSSorBl1JkiRJUlkx6EqSJEmSyopBV5IkSZJUVgy6kiRJkqSyYtCVJEmSJJUVg64kSZIkqawYdCVJkiRJZaV7sQvoSEOHDk2VlZVFrWHjxo3069evqDVIO9gfVUrsjyol9keVEvujSkmp98cFCxasTikN2911ZRV0KysrmT9/flFrqKmpobq6uqg1SDvYH1VK7I8qJfZHlRL7o0pJqffHiFjenuucuixJkiRJKisGXUmSJElSWTHoSpIkSZLKSlm9o5vLtm3bqKuro6GhoVO+b9CgQTz33HOd8l3qGL1792bEiBH06NGj2KVIkiRJ6gBlH3Tr6uoYMGAAlZWVRETBv2/Dhg0MGDCg4N+jjpFSYs2aNdTV1VFVVVXsciRJkiR1gLKfutzQ0MCQIUM6JeRq7xMRDBkypNNG/CVJkiQVXkFHdCPieuAjwBsppTE5zgfwI+DDwCbgwpTSE5lzFwBXZC69KqV04x7U8U5vVRdg/3jn1m/eRkqp2GVoL1G/NfHmpq3FLkMC7I8qLfZHlZId/XFg7x5067b3/j250FOXbwB+Aty0i/N/Axya+ZkI/DswMSL2Bb4NTAASsCAi5qaU1hW4Xknt8MhLq/nabU9Tt25zsUvR3uaBe4tdgfQX9keVEvujSskD9/LkP05mcL+exa7kHSvo1OWU0kPA2re55HTgptTsMWCfiDgAOBm4N6W0NhNu7wVOKWStktpny/ZGLpn9hCFXkiRJJavYi1EdBLySdVyXadtVexsRMQ2YBjB8+HBqampanB80aBAbNmzouIp3o7GxcY+/74ADDuDVV1/Nee7hhx/m2muv5Te/+U2bc2eccQa/+MUv2Gefffbo+7uihoaGNn2nHNTX13f47/X82kbWbdrWoc+UJElSafnTn/5E/55OXS6alNIsYBbAhAkTUnV1dYvzzz33XPOqy5f9tuC11F5zaoeturyrZ/Tt25fu3bvnPP/73/9+j78XYPv27XTvXnpdI6VESolu3Tp+IkLv3r0ZP358hz+32Gpqamj9v4k99ca8V+Dxpzv0mZIkSSotkyZN2qunLhc7zawARmYdj8i0rQCqW7XXdFpVHeyyyy5j5MiRXHLJJQDMmDGD7t278+CDD7Ju3Tq2bdvGVVddxemnn96u57311luceuqpLFmyhPe///389Kc/pVu3blRWVjJ//nzq6+v5m7/5G0488UQeeeQRDjroIO644w769OnDddddx6xZs9i6dSt/9Vd/xa9+9Sv69u3LhRdeSO/evXnyySeZNGkSd955J4888gjDhg2jqamJww47jEcffZRhw4a1qefOO+/kqquuYuvWrQwZMoTZs2czfPhw6uvrmT59OvPnzyci+Pa3v80ZZ5zB7373Oy6//HIaGxsZOnQo999/PzNmzKB///589atfBWDMmDHcddddAJx88slMnDiRBQsWcPfdd3PNNdcwb948Nm/ezCc/+Um+853vADBv3jy+8IUvsHHjRnr16sX999/PqaeeyrXXXsvRRx8NwIknnsjMmTMZN27cHv937aqWrt7Ypq1X92707lFRhGq0N9m+fRvdu7tftUqD/VGlxP6oUrKjP+7t67UWO+jOBS6NiFtoXoxqfUrp1Yi4B/iniBicue5DwDeKVeSemjp1Kl/84hd3Bt05c+Zwzz338PnPf56BAweyevVqTjjhBE477bR2rQD8+OOPs3jxYkaNGsUpp5zCf//3f/PJT36yxTUvvvgiN998M9dddx2f+tSn+K//+i/OPfdcPvGJT3DxxRcDcMUVV/CLX/yC6dOnA817Dj/yyCNUVFQwaNAgZs+ezRe/+EXuu+8+xo0blzPkQnN4fOyxx4gIfv7zn/P973+ff/3Xf+W73/0ugwYN4plnngFg3bp1rFq1iosvvpiHHnqIqqoq1q59u1e4//K73HjjjZxwwgkAXH311ey77740NjbywQ9+kKeffpojjjiCqVOncuutt3Lcccfx1ltv0adPHz7zmc9www038MMf/pAXXniB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XUmSJJUgg24nef755/nc5z7Hc889x8CBA/npT3/a4vzGjRs54YQTWLhwIe973/u47rrrgObA+thjj/Hkk09y5pln8v3vf3/nPYsXL+a+++7j5ptv5jOf+Qw33HADAC+88AINDQ2MGzcuZy1HHHEEDz/8ME8++SRXXnkll19+OQCzZs2itraWp556iqeffppzzjmHrVu3MnXqVH70ox+xcOFC7rvvPvr06fO2v+vGjRuZOHEiCxcu5MQTT+TSSy9l3rx5PPvss2zevJm77roLaA6xl1xyCQsXLuSRRx7hgAMOaPF7rF+/nkceeYRTTz0173/f6lhbtzexYt3mNu0uRiVJkqRSZNDtJCNHjmTSpEkAnHvuufzxj39scb5nz5585CMfAeDYY4+ltrYWgLq6Ok4++WTGjh3LD37wAxYtWrTzntNOO21n6JwyZQp33XUX27Zt4/rrr+fCCy/cZS3r169nypQpjBkzhi996Us7n3nffffxt3/7tzunQe+77748//zzHHDAARx33HEADBw4cLfTpCsqKjjjjDN2Hj/44INMnDiRsWPH8sADD7Bo0SI2bNjAihUr+PjHPw5A79696du3L3/913/Niy++yKpVq7j55ps544wzSnZadlfy8tpNNLXcWYj9BvSiXy//20iSJKn0GHQ7SUS87XGPHj12tlVUVLB9+3YApk+fzqWXXsozzzzDz372MxoaGnbe06/fX0bT+vbty+TJk7njjjuYM2cO55xzzi5r+cd//Efe//738+yzz3LnnXe2eGZ7de/enaampp3H2c/o3bv3zvdyGxoa+NznPsdtt93GM888w8UXX7zb7zv//PP5z//8T375y1/y6U9/Ou/a1PFccVmSJEl7k64zHJPnQlEd7eWXX+bRRx/l3e9+N7/+9a858cQTufPOO3d73/r16znooIMAuPHGG9/22s9+9rN89KMf5b3vfS+DBw9u1zN3TBMGmDx5Mj/72c94//vfT/fu3Vm7di2HH344r776KvPmzeO4445jw4YN9OnTh8rKSn7605/S1NTEihUrePzxx3N+145QO3ToUOrr67ntttv45Cc/yYABAxgxYgS33347H/vYx9iyZQuNjY307duXCy+8kOOPP57999+fI488crf/jlR4uVZcPsSgK0mSpBLliG4nOfzww5k5cyajR49m3bp1/P3f/3277psxYwZTpkzh2GOPZejQoW977bHHHsvAgQO56KKL3va6r33ta3zjG99g/PjxO0eOoTkoH3zwwRx11FGMGzeOX//61/Ts2ZNbb72V6dOnM27cOCZPnkxDQwOTJk2iqqqKI488ks9//vMcc8wxOb9rn3324eKLL2bMmDGcfPLJO6dAA/zqV7/i2muv5aijjuI973kPr732GgDDhw9n9OjRu/091HmWOqIrSZKkvUjsWAG3HEyYMCHtWMV4h+eee47Ro0d3Wg0bNmxgwIABnfZ92VauXEl1dTV//vOf6dZt7/3/MDZt2sTYsWN54oknGDSoE7aFovP7SWepqamhurp6j59z1qzHeHTpmhZt/3HusZwyZv89fra6jo7qj1JHsD+qlNgfVUpKvT9GxIKU0oTdXVfwNBQRp0TE8xGxJCIuy3F+VETcHxFPR0RNRIzIOtcYEU9lfuYWuta92U033cTEiRO5+uqr9+qQe9999zF69GimT5/eaSFXu1e7JsfUZffQlSRJUokq6Du6EVEBzAQmA3XAvIiYm1JanHXZvwA3pZRujIgPAN8Dzsuc25xSOrqQNZaL888/n/PPP79F2y9/+Ut+9KMftWibNGkSM2fO7MzS8nLSSSexfPnyYpehLJu3NvLq+pYLiEXAwfv2LVJFkiRJ0tsr9GJUxwNLUkpLASLiFuB0IDvoHgl8OfP5QeD2ji4ipdRmleOu4KKLLvI913Yop+n7hZBrNPfAQX3o3aOiCNVIkiRJu1foOa4HAa9kHddl2rItBD6R+fxxYEBEDMkc946I+RHxWER87J0U0Lt3b9asWWOYUU4pJdasWUPv3r2LXUrJyrXicpULUUmSJKmElcL2Ql8FfhIRFwIPASuAxsy5USmlFRFxCPBARDyTUnop++aImAZMg+bVemtqamh1nn79+vHKK6/QGbrq6PHerLGxkY0bN5bllOn6+vo2/5vI1/0vbW3T1nPLm3v8XHU9HdEfpY5if1QpsT+qlJRLfyx00F0BjMw6HpFp2ymltJLMiG5E9AfOSCm9mTm3IvPPpRFRA4wHXmp1/yxgFjSvulzsFcJKfZUydS0d0R9/u2ohzZMx/mLSuMOoPrFqj56rrsc/H1VK7I8qJfZHlZJy6Y+Fnro8Dzg0IqoioidwJtBi9eSIGBoRO+r4BnB9pn1wRPTacQ0wiZbv9krqBMtyTl12ISpJkiSVroIG3ZTSduBS4B7gOWBOSmlRRFwZEadlLqsGno+IF4DhwNWZ9tHA/IhYSPMiVde0Wq1ZUifItRhV5RDf0ZUkSVLpKvg7uimlu4G7W7V9K+vzbcBtOe57BBhb6Pok7dpbDdtYXd/yHd2KbsFItxaSJElSCSv01GVJe7FcKy6PHNyHHhX+0SFJkqTS5d9WJe1S7vdznbYsSZKk0mbQlbRLtas3tWmrNOhKkiSpxBl0Je3SstX1bdoc0ZUkSVKpM+hK2qVla9qO6Bp0JUmSVOoMupJySimxbFXbEV23FpIkSVKpM+hKymndpm281bC9RVvPim4cuE+fIlUkSZIktY9BV1JOuVZcHjWkLxXdogjVSJIkSe1n0JWUU66g64rLkiRJ2hsYdCXlVJsj6B5i0JUkSdJewKArKadlaxzRlSRJ0t7JoCspp2WrcgRdV1yWJEnSXsCgK6mNlBK1OUZ0Dxlm0JUkSVLpM+hKauONDVvYtLWxRVvfnhXsN6BXkSqSJEmS2s+gK6mN3FsL9SPCrYUkSZJU+gy6ktpwxWVJkiTtzQy6ktrIvYdu3yJUIkmSJOXPoCupjVxBt2po/yJUIkmSJOXPoCupjVwrLlc5oitJkqS9RMGDbkScEhHPR8SSiLgsx/lREXF/RDwdETURMSLr3AUR8WLm54JC1yoJmpoStWs2tWl3D11JkiTtLboX8uERUQHMBCYDdcC8iJibUlqcddm/ADellG6MiA8A3wPOi4h9gW8DE4AELMjcu66QNUtdwS2Pv8yNjy5n1YaGNueaEmzd3tSibWDv7uzbr2dnlSdJkiTtkYIGXeB4YElKaSlARNwCnA5kB90jgS9nPj8I3J75fDJwb0ppbebee4FTgJsLXLNU1h56YRWX/fczed1TNdSthSRJkrT3KPTU5YOAV7KO6zJt2RYCn8h8/jgwICKGtPNeSXm6+5lX876n0q2FJEmStBcp9Ihue3wV+ElEXAg8BKwAGtt7c0RMA6YBDB8+nJqamgKU2H719fVFr0HaIVd/fGLJ5ryfM7xpjf1ae8w/H1VK7I8qJfZHlZJy6Y+FDrorgJFZxyMybTullFaSGdGNiP7AGSmlNyNiBVDd6t6a1l+QUpoFzAKYMGFCqq6ubn1Jp6qpqaHYNUg75OqPX/3jfcCWdt3fs3s3zjpuJF/7yJF0r3CRdu0Z/3xUKbE/qpTYH1VKyqU/FjrozgMOjYgqmgPumcDZ2RdExFBgbUqpCfgGcH3m1D3AP0XE4MzxhzLnJb1DGxq2sbq+Zcit6Bb86esfoKJb23dwB/bpTq/uFZ1VniRJktQhChp0U0rbI+JSmkNrBXB9SmlRRFwJzE8pzaV51PZ7EZFonrp8SebetRHxXZrDMsCVOxamkvTOLM+xbdCIwX3Yf1DvIlQjSZIkFUbB39FNKd0N3N2q7VtZn28DbtvFvdfzlxFeSXto6eqNbdrcH1eSJEnlxpfupC6kNkfQrXJFZUmSJJUZg67UhSwz6EqSJKkLMOhKXUiuoOseuZIkSSo3Bl2pC6ld0zboHmLQlSRJUpkx6EpdxLqNW3lz07YWbT0runHgPn2KVJEkSZJUGAZdqYtYlmM09+AhfXPunytJkiTtzQy6UheRa8VltxaSJElSOTLoSl1E7hWX+xahEkmSJKmwDLpSF5E76PYvQiWSJElSYRl0pS4i14rLlY7oSpIkqQwZdKUuIKXEslW5RnR9R1eSJEnlx6ArdQGr6rewcWtji7Y+PSoYPqB3kSqSJEmSCqfdQTciPhoRBmNpL1S7elObtlFD+tLNrYUkSZJUhvIJrlOBFyPi+xFxRKEKktTxlq2ub9N2yDCnLUuSJKk8tTvoppTOBcYDLwE3RMSjETEtIgYUrDpJHWJZjhFd99CVJElSucprKnJK6S3gNuAW4ADg48ATETG9ALVJ6iC5RnQrXYhKkiRJZSqfd3RPi4j/AWqAHsDxKaW/AcYBXylMeZI6Qq53dA8x6EqSJKlMdc/j2jOAf0spPZTdmFLaFBGf6diyJHWUpqa0iz10DbqSJEkqT/kE3RnAqzsOIqIPMDylVJtSur+jC5PUMV59q4Et25tatA3o1Z0h/XoWqSJJkiSpsPJ5R/c3QPbflhszbW8rIk6JiOcjYklEXJbj/MER8WBEPBkRT0fEhzPtlRGxOSKeyvz8Rx61SsqoXd12NLdqWD8i3FpIkiRJ5SmfEd3uKaWtOw5SSlsj4m2HhCKiApgJTAbqgHkRMTeltDjrsiuAOSmlf4+II4G7gcrMuZdSSkfnUaOkVpblCLquuCxJkqRyls+I7qqIOG3HQUScDqzezT3HA0tSSkszIfkW4PRW1yRgYObzIGBlHjVJ2o1cQbfK93MlSZJUxvIZ0f07YHZE/AQI4BXg/N3cc1Dmuh3qgImtrpkB/D6zRVE/4KSsc1UR8STwFnBFSunhPOqVxC6mLht0JUmSVMbaHXRTSi8BJ0RE/8xx240535mzgBtSSv8aEe8GfhURY2he+OrglNKaiDgWuD0i3pXZy3eniJgGTAMYPnw4NTU1HVTWO1NfX1/0GqQd6uvrWfRK262F1i7/MzXrXyxCRerK/PNRpcT+qFJif1QpKZf+mM+ILhFxKvAuoPeOhWxSSle+zS0rgJFZxyMybdk+A5ySedajEdEbGJpSegPYkmlfEBEvAYcB87NvTinNAmYBTJgwIVVXV+fzK3W4mpoail2DtMP9DzzI6s2b27Sf8aH3MahvjyJUpK7MPx9VSuyPKiX2R5WScumP7X5HN7Pq8VRgOs1Tl6cAo3Zz2zzg0IioyixcdSYwt9U1LwMfzHzHaKA3ze8DD8ssZkVEHAIcCixtb72SYE1DYntTatG2b7+ehlxJkiSVtXwWo3pPSul8YF1K6TvAu2keYd2llNJ24FLgHuA5mldXXhQRV2YtbPUV4OKIWAjcDFyYUkrA+4CnI+Ip4Dbg71JKa/P55aSu7rWNTW3aKof0LUIlkiRJUufJZ+pyQ+afmyLiQGANcMDubkop3U3zlkHZbd/K+rwYmJTjvv8C/iuP+iS18vrG1Katamj/IlQiSZIkdZ58gu6dEbEP8APgCZq3BbquIFVJ6hCvbWo7ols11BFdSZIklbd2Bd2I6Abcn1J6E/iviLgL6J1SWl/Q6iTtEUd0JUmS1BW16x3dlFITMDPreIshVyp9r+cY0a10RFeSJEllLp/FqO6PiDNix75Ckkralu2NrN7cdkS3cki/IlQjSZIkdZ58gu7fAr8BtkTEWxGxISLeKlBdkvbQK2s30TrmDh/Yi3698to+W5IkSdrrtPtvvCmlAYUsRFLHWrZ6U5s2R3MlSZLUFbQ76EbE+3K1p5Qe6rhyJHWU2tUb27QdMsygK0mSpPKXzxzGf8j63Bs4HlgAfKBDK5LUIZbmCLqO6EqSJKkryGfq8kezjyNiJPDDDq9IUofINaJbOdSgK0mSpPKXz2JUrdUBozuqEEkdq3ZNjqnLBl1JkiR1Afm8o/tj2LmIazfgaOCJQhQlac9s3trIq+sbWrRFwMh93UNXkiRJ5S+fd3TnZ33eDtycUvpTB9cjqQPkGs09cFAfeveoKEI1kiRJUufKJ+jeBjSklBoBIqIiIvqmlNruYSKpqFxxWZIkSV1ZPu/o3g/0yTruA9zXseVI6giuuCxJkqSuLJ+g2zulVL/jIPPZF/6kEpRrRLfKhagkSZLUReQTdDdGxDE7DiLiWGBzx5ckaU8tM+hKkiSpC8vnHd0vAr+JiJVAAPsDUwtSlaQ9kmsxKvfQlSRJUlfR7qCbUpoXEUcAh2eank8pbStMWZLeqbcatrG6fmuLtu7dghGD++ziDkmSJKm8tHvqckRcAvRLKT2bUnoW6B8RnytcaZLeiVzv547cty89KvJ5U0GSJEnae+XzN9+LU0pv7jjkIt1pAAAgAElEQVRIKa0DLt7dTRFxSkQ8HxFLIuKyHOcPjogHI+LJiHg6Ij6cde4bmfuej4iT86hV6rJyvZ9bOcR14yRJktR15POObkVEREopQfM+ukDPt7shc81MYDJQB8yLiLkppcVZl10BzEkp/XtEHAncDVRmPp8JvAs4ELgvIg7bsY+v1FVta2xi1kNLeWzpGrZsb2pz/rX1DW3aqob274zSJEmSpJKQT9D9HXBrRPwsc/y3mba3czywJKW0FCAibgFOB7KDbgIGZj4PAlZmPp8O3JJS2gIsi4glmec9mkfNUtm58s7F/Oqx5XndUzXUEV1JkiR1HfkE3a/THG7/PnN8L/Dz3dxzEPBK1nEdMLHVNTOA30fEdKAfcFLWvY+1uvegPOqVyk5jU+K2BXV53+eIriRJkrqSfFZdbgL+PfPTkc4Cbkgp/WtEvBv4VUSMae/NETENmAYwfPhwampqOri8/NTX1xe9BpWvNzY1sXlbfrP3e3aD9bXPULMiClSV1D7++ahSYn9UKbE/qpSUS39sd9CNiEOB7wFHAr13tKeUDnmb21YAI7OOR2Tasn0GOCXzrEcjojcwtJ33klKaBcwCmDBhQqqurm7fL1QgNTU1FLsGla8/vLAKHnq83dd3C/jOx8Zy6vEHF7AqqX3881GlxP6oUmJ/VCkpl/6Yz9TlXwLfBv4NeD9wEbtftXkecGhEVNEcUs8Ezm51zcvAB4EbImI0zSF6FTAX+HVE/D+aF6M6FGj/3/ClMpRr66D3Hz6Mv/3r/69Ne7cIVi1ZaMiVJElSl5NP0O2TUro/s/LycmBGRCwAvrWrG1JK2yPiUuAeoAK4PqW0KCKuBOanlOYCXwGui4gv0bww1YWZlZ0XRcQcmheu2g5c4orL6upybR10zMGDOeGQITmvr1nudGVJkiR1PfkE3S0R0Q14MRNeVwC7XeEmpXQ3zVsGZbd9K+vzYmDSLu69Grg6jxqlspZzj9yh/YpQiSRJklS6djf1ONsXgL7A54FjgXOBCwpRlKTcate0DbpVBl1JkiSphXxWXZ6X+VhP8/u5LUTEj1NK0zuqMEktbd3exCtrN7Vpd0RXkiRJaimfEd3dyTn9WFLHeGXdJppSy7ZhA3rRv1c+byBIkiRJ5a8jg66kAlq2ymnLkiRJUnsYdKW9RM73c4cYdCVJkqTWOjLouo+JVEC5VlyuGmbQlSRJklprd9CNiLG7ueRHe1iLpLeRc2shR3QlSZKkNvIZ0f1pRDweEZ+LiEGtT6aUbui4siS1VptrRNd3dCVJkqQ22h10U0rvBc4BRgILIuLXETG5YJVJ2qlhWyMr1ze0aIuAUUP6FqkiSZIkqXTl9Y5uSulF4Arg68BfA9dGxJ8j4hOFKE5Ss1wLUR04qA+9e1QUoRpJkiSptOXzju5REfFvwHPAB4CPppRGZz7/W4Hqk0TuacuVQx3NlSRJknLpnse1PwZ+DlyeUtq8ozGltDIirujwyiTttNT3cyVJkqR2a1fQjYgKYEVK6Ve5zu+qXVLHyDmi64rLkiRJUk7tmrqcUmoERkZEzwLXIymH2tWb2rQ5oitJkiTlls/U5WXAnyJiLrBzeCml9P86vCpJLTh1WZIkSWq/fILuS5mfbsCAwpQjqbUNDdtYXb+lRVtFt2Dkvi5GJUmSJOXS7qCbUvpOIQuRlNvyNW2nLY8Y3IceFXntDiZJkiR1Ge0OuhExDPga8C6g9472lNIHClCXpAynLUuSJEn5yWdIaDbwZ6AK+A5QC8wrQE2SsrjisiRJkpSffILukJTSL4BtKaU/pJQ+Dex2NDciTomI5yNiSURcluP8v0XEU5mfFyLizaxzjVnn5uZRq1Q2luUIuocMM+hKkiRJu5LPYlTbMv98NSJOBVYC+77dDZn9d2cCk4E6YF5EzE0pLd5xTUrpS1nXTwfGZz1ic0rp6DxqlMpOrqDriK4kSZK0a/kE3asiYhDwFeDHwEDgS29/C8cDS1JKSwEi4hbgdGDxLq4/C/h2HjVJZa92je/oSpIkSfnIZ9XluzIf1wPvb+dtBwGvZB3XARNzXRgRo2h+//eBrObeETEf2A5ck1K6vb31SuVg3catvLlpW4u2nhXdOHCfPkWqSJIkSSp9+a66fDFQmX1f5l3djnAmcFtKqTGrbVRKaUVEHAI8EBHPpJRealXXNGAawPDhw6mpqemgct6Z+vr6oteg8rHkzcY2bUN7Jx5+6A/tut/+qFJif1QpsT+qlNgfVUrKpT/mM3X5DuBh4D6g7d++c1sBjMw6HpFpy+VM4JLshpTSisw/l0ZEDc3v777U6ppZwCyACRMmpOrq6naWVhg1NTUUuwaVj7VP1MFjC1u0HXnwflRXT2jX/fZHlRL7o0qJ/VGlxP6oUlIu/TGfoNs3pfT1PJ8/Dzg0IqpoDrhnAme3vigijgAGA49mtQ0GNqWUtkTEUGAS8P08v1/aq7nisiRJkpS/fLYXuisiPpzPw1NK24FLgXuA54A5KaVFEXFlRJyWdemZwC0ppZTVNhqYHxELgQdpfkd3V4tYSWXJFZclSZKk/OUzovsF4PKI2ELzVkMBpJTSwLe7KaV0N3B3q7ZvtTqekeO+R4CxedQnlZ2cQXdo3yJUIkmSJO098ll1eUAhC5HUUkqJ2lxTl4f2L0I1kiRJ0t5jt0E3Io5IKf05Io7JdT6l9ETHlyVpVf0WNm5tue5bnx4VDB/Yq0gVSZIkSXuH9ozofpnm7Xv+Fch+hzYyxx8oQF1Sl7dsVa5py/2IiCJUI0mSJO09drsYVUppWubjh4HfAuuBN4G5mTZJBVC7pm3QrfL9XEmSJGm38lmM6kbgLeDazPHZwE3Apzq6KEmwbPWmNm2uuCxJkiTtXj5Bd0xK6cis4wcjwu1+pAJZtrq+TVvVUIOuJEmStDv57KP7REScsOMgIiYC8zu+JEkAtTlGdA26kiRJ0u61Z9XlZ2hedKoH8EhEvJw5HgX8ubDlSV1TU1PK+Y5upUFXkiRJ2q32TF3+SMGrkNTCq281sGV7U4u2Ab27M6RfzyJVJEmSJO09dht0U0rLO6MQSX9RuzrXistuLSRJkiS1Rz7v6ErqJEtzBF1XXJYkSZLax6ArlaBdjehKkiRJ2j2DrlSCDLqSJEnSO2fQlUrQslxTlw26kiRJUrsYdKUSs72xiZfX5thD13d0JUmSpHYx6Eolpm7dZrY3pRZt+/bryaC+PYpUkSRJkrR3MehKJWbZGt/PlSRJkvaEQVcqMbkWonJrIUmSJKn9DLpSicm1EFXV0L5FqESSJEnaOxU86EbEKRHxfEQsiYjLcpz/t4h4KvPzQkS8mXXugoh4MfNzQaFrlUpB7qDbvwiVSJIkSXun7oV8eERUADOByUAdMC8i5qaUFu+4JqX0pazrpwPjM5/3Bb4NTAASsCBz77pC1qzytq2xidsW1LFo5Xoam4pdTW5P161v01bpiK4kSZLUbgUNusDxwJKU0lKAiLgFOB1YvIvrz6I53AKcDNybUlqbufde4BTg5oJWXCgzBhW7AgE9aO5kpex7AL1bNc56Z8+qBqjZg2KkDlQN9keVjGqwP6pkVIP9USWjGv7SH2e0HYDZWxR66vJBwCtZx3WZtjYiYhRQBTyQ772SJEmSJO1Q6BHdfJwJ3JZSasznpoiYBkwDGD58ODU1NQUorf3q6+tz1lDd6ZVIkiRJ0jtX7Gy1JwoddFcAI7OOR2TacjkTuKTVvdWt7q1pfVNKaRaZiZ0TJkxI1dXVrS/pVDU1NeSsoaazK5EkSZKkd67Y2WpPFHrq8jzg0IioioieNIfZua0viogjgMHAo1nN9wAfiojBETEY+FCmTZIkSZKkXSroiG5KaXtEXEpzQK0Ark8pLYqIK4H5KaUdofdM4JaUUsq6d21EfJfmsAxw5Y6FqfZKe/GL3OXi7Ose45GX1rRo+49zj+GUMQcUqaLC2+UMA6kI7I8qJfZHlRL7o0pJufTHgr+jm1K6G7i7Vdu3Wh3P2MW91wPXF6w4dSm17k8rSZIkdQmFnroslYSGbY2sXN/Qpn3UEPenlSRJksqNQVddQu2atqO5Bw7qTe8eFUWoRpIkSVIhGXTVJeSctjysXxEqkSRJklRoBl11CUtzBN3KIQZdSZIkqRwZdNUl5F6IyqArSZIklSODrrqE2tWb2rQZdCVJkqTyZNBVl5Bz6rJBV5IkSSpLBl2VvQ0N21hdv6VFW0W3YORgtxaSJEmSypFBV2Vv+Zq205ZHDO5Dz+52f0mSJKkc+Td9lT1XXJYkSZK6FoOuyp4rLkuSJEldi0FXZW+ZQVeSJEnqUgy6Knu5gq4rLkuSJEnly6Crsle7pm3QPcSgK0mSJJUtg67K2rqNW3lz07YWbT0runHgPn2KVJEkSZKkQjPoqqwtyzGae/CQvlR0iyJUI0mSJKkzGHRV1patcmshSZIkqasx6Kqs5Xo/t2po3yJUIkmSJKmzGHRV1nJvLdS/CJVIkiRJ6iwFD7oRcUpEPB8RSyLisl1c86mIWBwRiyLi11ntjRHxVOZnbqFrVfnJvbWQI7qSJElSOeteyIdHRAUwE5gM1AHzImJuSmlx1jWHAt8AJqWU1kXEflmP2JxSOrqQNap8pZSozTmi6zu6kiRJUjkr9Iju8cCSlNLSlNJW4Bbg9FbXXAzMTCmtA0gpvVHgmtRFrKrfwsatjS3a+vSoYPiA3kWqSJIkSVJnKHTQPQh4Jeu4LtOW7TDgsIj4U0Q8FhGnZJ3rHRHzM+0fK3CtKjO5VlweNaQv3dxaSJIkSSprBZ263E7dgUOBamAE8FBEjE0pvQmMSimtiIhDgAci4pmU0kvZN0fENGAawPDhw6mpqenU4lurr68veg1q9oe6bW3a+qdNXeq/j/1RpcT+qFJif1QpsT+qlJRLfyx00F0BjMw6HpFpy1YH/F9KaRuwLCJeoDn4zksprQBIKS2NiBpgPNAi6KaUZgGzACZMmJCqq6sL8Gu0X01NDcWuQc0e/d/ngKUt2o4fXUl19RHFKagI7I8qJfZHlRL7o0qJ/VGlpFz6Y6GnLs8DDo2IqojoCZwJtF49+XaaR3OJiKE0T2VeGhGDI6JXVvskYDFSO+VaiKrShagkSZKkslfQEd2U0vaIuBS4B6gArk8pLYqIK4H5KaW5mXMfiojFQCPwDymlNRHxHuBnEdFEcyC/Jnu1Zml3aldvatN2iEFXkiRJKnsFf0c3pXQ3cHertm9lfU7AlzM/2dc8AowtdH0qT01Nido1juhKkiRJXVGhpy5LRfHqWw1s2d7Uom1Ar+4M6dezSBVJkiRJ6iwGXZWlXO/nVg3rR4RbC0mSJEnlzqCrsrQ010JUQ5y2LEmSJHUFBl2VpZwjur6fK0mSJHUJBl2VpWUGXUmSJKnLMuiqLLmHriRJktR1GXRVdrY3NvHy2rZ76Fb5jq4kSZLUJRh0VXbq1m1me1Nq0bZvv54M6tujSBVJkiRJ6kwGXZWdZWtyrbjctwiVSJIkSSoGg67KTu4Vl/sXoRJJkiRJxWDQVdnJveKyI7qSJElSV2HQVdnJHXQd0ZUkSZK6CoOuyk6uoFvpiK4kSZLUZRh0VVa2bG9k5Zub27RXurWQJEmS1GUYdFVWXlm7iVY7CzF8YC/69epenIIkSZIkdTqDrsrK0lW5thZyNFeSJEnqSgy6Kiu1OfbQrRpq0JUkSZK6EoOuysqy1ZvatBl0JUmSpK7FoKuysmx1fZu2SoOuJEmS1KUYdFVWanOM6B5i0JUkSZK6lIIvRRsRpwA/AiqAn6eUrslxzaeAGUACFqaUzs60XwBckbnsqpTSjYWutxAefWkNi1auL3YZZS8leO2thhZtETByX/fQlSRJkrqSggbdiKgAZgKTgTpgXkTMTSktzrrmUOAbwKSU0rqI2C/Tvi/wbWACzQF4QebedYWsuRB+v/g1fvmn2mKX0SUdOKgPvXtUFLsMSZIkSZ2o0FOXjweWpJSWppS2ArcAp7e65mJg5o4Am1J6I9N+MnBvSmlt5ty9wCkFrldl5pBhTluWJEmSuppCT10+CHgl67gOmNjqmsMAIuJPNE9vnpFS+t0u7j2o9RdExDRgGsDw4cOpqanpqNrfkfr6+jY11NVtKU4xov/29UXvE8WUqz9KxWJ/VCmxP6qU2B9VSsqlPxb8Hd126A4cClQDI4CHImJse29OKc0CZgFMmDAhVVdXF6DE9qupqaF1DX/YsAiW1xalnq5sn749+NoZk7r09kK5+qNULPZHlRL7o0qJ/VGlpFz6Y6GD7gpgZNbxiExbtjrg/1JK24BlEfECzcF3Bc3hN/vemoJVWkATq4YQRLHL6FKGDejFR446wIWoJEmSpC6o0EF3HnBoRFTRHFzPBM5udc3twFnALyNiKM1TmZcCLwH/FBGDM9d9iOZFq/Y6p4zZn1PG7F/sMiRJkiSpSyho0E0pbY+IS4F7aH7/9vqU0qKIuBKYn1Kamzn3oYhYDDQC/5BSWgMQEd+lOSwDXJlSWlvIeiVJkiRJe7+Cv6ObUrobuLtV27eyPifgy5mf1vdeD1xf6BolSZIkSeWj0NsLSZIkSZLUqQy6kiRJkqSyYtCVJEmSJJUVg64kSZIkqawYdCVJkiRJZSWaFz0uDxGxClhe5DKGAquLXIO0g/1RpcT+qFJif1QpsT+qlJR6fxyVUhq2u4vKKuiWgoiYn1KaUOw6JLA/qrTYH1VK7I8qJfZHlZJy6Y9OXZYkSZIklRWDriRJkiSprBh0O96sYhcgZbE/qpTYH1VK7I8qJfZHlZKy6I++oytJUgmIiEbgmaymW1JK13TQsyuBu1JKYzrieZIklbruxS5AkiQBsDmldHSxi5AkqRw4dVmSpBIWEbUR8f2IeCYiHo+Iv8q0V0bEAxHxdETcHxEHZ9qHR8T/RMTCzM97Mo+qiIjrImJRRPw+IvoU7ZeSJKnADLqSJJWGPhHxVNbP1Kxz61NKY4GfAD/MtP0YuDGldBQwG7g2034t8IeU0jjgGGBRpv1QYGZK6V3Am8AZBf59JEkqGt/RlSSpBEREfUqpf472WuADKaWlEdEDeC2lNCQiVgMHpJS2ZdpfTSkNjYhVwIiU0pasZ1QC96aUDs0cfx3okVK6qvC/mSRJnc8RXUmSSl/axed8bMn63IjrdEiSyphBV5Kk0jc165+PZj4/ApyZ+XwO8HDm8/3A3wNEREVEDOqsIiVJKhX+v7mSJJWGPhHxVNbx71JKl2U+D46Ip2kelT0r0zYd+GVE/AOwCrgo0/4FYFZEfIbmkdu/B14tePWSJJUQ39GVJKmEZd7RnZBSWl3sWiRJ2ls4dVmSJEmSVFYc0ZUkSZIklRVHdCVJkiRJZcWgK0mSJEkqKwZdSZIkSVJZMehKkiRJksqKQVeSJEmSVFYMupIkSZKksmLQlSRJkiSVFYOuJEmSJKmsGHQlSZIkSWXFoCtJkiRJKisGXUmSJElSWTHoSpIkSZLKikFXkiRJklRWDLqSJEmSpLJi0JUkSZIklRWDriRJkiSprBh0JUmSJEllxaArSZIkSSorBl1JkiRJUlkx6EqSJEmSyopBV5IkSZJUVgy6kiRJkqSyYtCVJEmSJJUVg64kSZIkqawYdCVJkiRJZcWgK0mSJEkqKwZdSZIkSVJZMehKkiRJksqKQVeSJEmSVFYMupIkSZKksmLQlSRJkiSVlaIF3Yg4JSKej4glEXFZjvOjIuL+iHg6ImoiYkQx6pQkSZIk7V0ipdT5XxpRAbwATAbqgHnAWSmlxVnX/Aa4K6V0Y0R8ALgopXRepxcrSZIkSdqrFGtE93hgSUppaUppK3ALcHqra44EHsh8fjDHeUmSJEmS2uhepO89CHgl67gOmNjqmoXAJ4AfAR8HBkTEkJTSmuyLImIaMA2gT58+x44cObJgRbdHU1MT3br56rNKg/1RpcT+qFJif1QpsT+qlJR6f3zhhRdWp5SG7e66YgXd9vgq8JOIuBB4CFgBNLa+KKU0C5gFMGHChDR//vzOrLGNmpoaqquri1qDtIP9UaXE/qhSYn9UKbE/qpSUen+MiOXtua5YQXcFkD30OiLTtlNKaSXNI7pERH/gjJTSm51WoSRJkiRpr1SsMel5wKERURURPYEzgbnZF0TE0IjYUd83gOs7uUZJkiRJ0l6oKEE3pbQduBS4B3gOmJNSWhQRV0bEaZnLqoHnI+IFYDhwdTFqlSRJkiTtXYr2jm5K6W7g7lZt38r6fBtwW2fXJUmSJEmFsm3bNurq6mhoaCh2KTkNGjSI5557rthl0Lt3b0aMGEGPHj3e0f2lvBiVJEmSJJWVuro6BgwYQGVlJRFR7HLa2LBhAwMGDChqDSkl1qxZQ11dHVVVVe/oGaW7bnSZamxKrNqwpdhlSJIkSSqChoYGhgwZUpIht1REBEOGDNmjUW9HdDtBSomFdeuZ+9RK7np6JX+1X39+ffEJxS5LkiRJUhEYcndvT/8dGXQL7I23Gpjys0dZvmbTzrZV9Vt4460G9hvYu4iVSZIkSVJ5cupygQ0b0KtNW0pw19OvFqEaSZIkSWq//v377/JcbW0tY8aM6cRq2s8R3QKLCD561IH85MElLdrvfHolnz7xnb1YLUmSJGnvVnnZbwv+HbXXnFrw7yhVjuh2gtOOPrBN25Mvv8krazfluFqSJEmSCuOyyy5j5syZO49nzJjBVVddxQc/+EGOOeYYTjjhBO644468n9vQ0MBFF13E2LFjGT9+PA8++CAAixYt4vjjj+foo4/mqKOO4sUXX2Tjxo2ceuqpjBs3jjFjxnDrrbd22O+3g0G3Exw2fACHD2+7RPfchSuLUI0kSZKkrmrq1KnMmTNn5/GcOXO44IIL+J//+R+eeOIJfvvb3/KVr3yFlFJez505cyYRwTPPPMPNN9/MBRdcQENDA//xH//BF77wBZ566inmz5/PiBEj+N3vfseBBx7IwoULefbZZznllFM6+tc06HaWXKO6dxp0JUmSJHWi8ePH88Ybb7By5UoWLlzI4MGD2X///bn88ss56qijOO2001ixYgWvv/56Xs/94x//yLnnngvAEUccwahRo3jhhRd497vfzT/90z/xz//8zyxfvpw+ffowduxY7r33Xr7+9a/z8MMPM2jQoA7/PQ26neSjR7UNun9+bQMvvL6hCNVIkiRJ6qqmTJnCbbfdxq233srUqVOZPXs2q1atYsGCBfzpT39i+PDhe7SHbbazzz6buXPn0qdPHz784Q/zwAMPcNhhh/HEE08wduxYrrjiCq688soO+a5sLkbVSQ4e0pejR+7DU6+82aJ97lMr+erJhxepKkmSJEnFUMyFoqZOncrFF1/M6tWr+cMf/sCcOXPYb7/96NGjB7///e9Zvnx53s9873vfy+zZs/nABz7ACy+8wMsvv8zhhx/O0qVLOeSQQ/j/2bvz+Lirev/j7zNb9j1N2ibdF0ppaQuBQhFIAaEoAiqy4wbivVBA8Xp/+JPrRfSqP7mKqIjw4wrqT6jARa1Q4QoSBCnQ0n2he5s2XbIvk0ky2/n9MdM0bdKkSzLfSfJ6PpjHd+Z8z0w+gUPaT845n3P33XersrJSa9as0bRp05Sfn6+bb75Zubm5evLJJ/v9e2RGN4GunNV9Vnfx6r3Hvf4dAAAAAE7UaaedppaWFpWUlGjUqFG66aabtHz5cs2cOVPPPvuspk2bdtyfeccddygajWrmzJm67rrr9PTTTyslJUXPPfecZsyYodmzZ2vdunX67Gc/q7Vr13YWqPr2t7+t+++/v9+/R2Z0E+iK00fpOy9vUNe8trI+oNV7mjR7TK5zgQEAAAAYVtauXdv5vLCwUEuXLpUktbS0KCvrUCFdv99/1M8YP3681q1bJ0lKTU3VU0891a3Pfffdp/vuu++wtssuu0yXXXbZScXfF2Z0E6goO1XnTCjo1k5RKgAAAADoPyS6CdZT9eWX1uxVJMryZQAAAADJZ+3atZo9e/Zhj7lz5zodVq9Yupxgl88YqW/9aZ1CkUOJ7YHmDr2/o17nTuo+2wsAAAAATpo5c6ZWrVrldBjHhRndBMtN9+mCKSO6tS9m+TIAAAAA9AsSXQf0tHz5L+v2KRiOOhANAAAAAAwtJLoOuOTUYqV6D/9X3xgI6e2tNQ5FBAAAAABDB4muAzJSPLr41OJu7YtXsXwZAAAAwMDKzMx0OoQB51iia4xZYIzZZIzZaoy5r4f7Y40xbxhjVhpj1hhjPuZEnAPlylndly//z4YDagtGHIgGAAAAAIYOR6ouG2Pckh6V9FFJeyQtM8YsttZu6NLtfknPWWsfM8ZMl7RE0viEBztAyk8ZoaxUj1raw51tgWBEf/uwWh8/fZSDkQEAAAAYcA/kJOBrNPV621qrf/3Xf9Vf/vIXGWN0//3362Mf+5j27dun6667Ts3NzQqHw3rsscc0b9483XrrrVq+fLmMMfriF7+or371qwP/PZwgp44XOlvSVmvtdkkyxiySdJWkromulZQdf54jaUit603xuLXgtJF6/oM9h7UvXl1FogsAAABgwL344otatWqVVq9erdraWp111lk644wztHjxYl122WX65je/qUgkokAgoFWrVqmqqkrr1q2TJDU2Njocfe+cWrpcIml3l9d74m1dPSDpZmPMHsVmc+9KTGiJ01P15Tc21ai5PeRANAAAAACGk7fffls33HCD3G63iouLdeGFF2rFihU666yz9NRTT+mBBx7Q2rVrlZWVpYkTJ2r79u2666679Morryg7O7vvL+Agp2Z0j8UNkp621v7IGHOupN8aY2ZYaw87g8cYc7uk2yWpuLhYFRUViY+0C7/ff8wxRKJW2T6pOXioLRiO6pEXKnR+qXdgAsSwcjzjERhojEckE8YjkgnjcXjJyclRS0uLshLwtVpaWnq9FwwG1d7e3tkvFAopEolozpw5WrJkiaZh77sAACAASURBVF599VV99rOf1Z133qkbb7xRb7/9tl5//XX9/Oc/1+9+9zv94he/GND429vbT/j/DacS3SpJY7q8Lo23dXWrpAWSZK1daoxJlVQoqbprJ2vtE5KekKSysjJbXl4+QCEfm4qKCh1PDFe3rNNvlu46rG1zR7b+rXxuP0eG4eh4xyMwkBiPSCaMRyQTxuPwsnHjRmVlJSLNVa9fJysrSxdffLEef/xxffnLX1Z9fb2WLl2q7373u6qvr9ekSZN01113yRijjRs3qqOjQxkZGbr55ps1e/Zs3XzzzQP+faSmpmrOnDkn9F6nEt1lkqYYYyYoluBeL+nGI/pUSrpY0tPGmFMlpUoacgfNXjlrdLdE951tdar1d6gwM8WhqAAAAAAMqD4KRSXCJz/5SS1dulSzZs2SMUY//OEPVVxcrBdffFEPPfSQvF6vMjMz9Zvf/EZVVVX6whe+oGg0tsD2+9//vsPR986RRNdaGzbGLJT0qiS3pF9Za9cbYx6UtNxau1jS1yT9X2PMVxUrTPV5a611It6BdMbYPJXkpqmqsa2zLRK1ennNPn1u3njnAgMAAAAwJPn9fkmSMUYPPfSQHnrooc57LS0t+tznPqfPfe5z3d63YsWKhMV4shzbo2utXaJYkamubd/q8nyDpPMSHVeiuVxGV8wapcff3H5Y+++X7dZnzx0nY4xDkQEAAADA4ORU1WV0cfXsIwtOSxv2NWv1HueX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\n",
"text/plain": [
"<Figure size 1152x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"10/10 [==============================] - 0s 1ms/step\n",
"model gives result after training: [0.16426325348417592, 1.0]\n"
]
}
],
"source": [
"for layer in model.layers:\n",
" layer.trainable = False\n",
" if 'batchnorm' in layer.name:\n",
" layer.stateful = True\n",
"model.compile(optimizer='sgd', loss=keras.losses.binary_crossentropy, metrics=[keras.metrics.binary_accuracy])\n",
"\n",
"x = x*100 - 100\n",
"y = y\n",
"\n",
"print('model gives result before training: ', model.evaluate(x,y,batch_size=1))\n",
"hist = model.fit(x,y, epochs=100, verbose=0, validation_data=(x,y),batch_size=1)\n",
"plot_hist(hist)\n",
"print('model gives result after training: ', model.evaluate(x,y,batch_size=1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How values of batchnorms changes"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\t batchnorm_1\n",
"[('gamma', array([1.0290645], dtype=float32)),\n",
" ('beta', array([-0.00476876], dtype=float32)),\n",
" ('running mean', array([-10068.96], dtype=float32)),\n",
" ('running std', array([98934104.], dtype=float32))]\n",
"\t batchnorm_2\n",
"[('gamma', array([0.9985659, 1.0694516], dtype=float32)),\n",
" ('beta', array([-0.10219583, 0.0675393 ], dtype=float32)),\n",
" ('running mean', array([ 0.4247778 , -0.29185054], dtype=float32)),\n",
" ('running std', array([3.7881953e-05, 3.2242035e-05], dtype=float32))]\n"
]
}
],
"source": [
"for layer_name in 'batchnorm_1', 'batchnorm_2':\n",
" print('\\t', layer_name)\n",
" layer = model.get_layer(layer_name)\n",
" pprint.pprint(list(zip(['gamma', 'beta', 'running mean', 'running std'], layer.get_weights())))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Conclusion\n",
"We can see that while validation statistics had been changing inspite trainable=False. \n",
"And final batchnorm statistic differe from previos (mean and std largely changed). \n",
"During transfere learning it is desirable to keep batch statistic close to mean = 0 and std = 1, while if we simply freez batchnorm it not gonna happlen ."
]
}
],
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment