mirror of
https://github.com/ArthurDanjou/handson-ml3.git
synced 2026-01-27 10:10:27 +01:00
Upgrade notebooks to TensorFlow 1.0.0
This commit is contained in:
@@ -2,28 +2,40 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"**Chapter 11 – Deep Learning**"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"_This notebook contains all the sample code and solutions to the exercices in chapter 11._"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"# Setup"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
|
||||
]
|
||||
@@ -32,7 +44,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -69,7 +83,10 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"# Activation functions"
|
||||
]
|
||||
@@ -78,7 +95,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -90,7 +109,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -117,7 +138,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -129,7 +152,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -150,7 +175,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -162,7 +189,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -183,7 +212,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -195,7 +226,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -207,7 +240,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -218,7 +253,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -264,7 +301,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -287,7 +326,7 @@
|
||||
" logits = fully_connected(hidden2, n_outputs, activation_fn=None, scope=\"outputs\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"loss\"):\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, y)\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
|
||||
" loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"train\"):\n",
|
||||
@@ -298,7 +337,7 @@
|
||||
" correct = tf.nn.in_top_k(logits, y, 1)\n",
|
||||
" accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
|
||||
" \n",
|
||||
"init = tf.initialize_all_variables()\n",
|
||||
"init = tf.global_variables_initializer()\n",
|
||||
"saver = tf.train.Saver()"
|
||||
]
|
||||
},
|
||||
@@ -306,7 +345,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -328,7 +369,10 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"# Batch Normalization"
|
||||
]
|
||||
@@ -337,7 +381,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -377,7 +423,7 @@
|
||||
" logits = fully_connected(hidden2, n_outputs, activation_fn=None, scope=\"outputs\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"loss\"):\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, y)\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
|
||||
" loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"train\"):\n",
|
||||
@@ -388,7 +434,7 @@
|
||||
" correct = tf.nn.in_top_k(logits, y, 1)\n",
|
||||
" accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
|
||||
" \n",
|
||||
"init = tf.initialize_all_variables()\n",
|
||||
"init = tf.global_variables_initializer()\n",
|
||||
"saver = tf.train.Saver()"
|
||||
]
|
||||
},
|
||||
@@ -396,7 +442,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -420,7 +468,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -451,7 +501,7 @@
|
||||
" logits = fully_connected(hidden2, n_outputs, activation_fn=None, scope=\"outputs\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"loss\"):\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, y)\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
|
||||
" reg_losses = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES)\n",
|
||||
" base_loss = tf.reduce_mean(xentropy, name=\"base_loss\")\n",
|
||||
" loss = tf.add(base_loss, reg_losses, name=\"loss\")\n",
|
||||
@@ -464,7 +514,7 @@
|
||||
" correct = tf.nn.in_top_k(logits, y, 1)\n",
|
||||
" accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
|
||||
" \n",
|
||||
"init = tf.initialize_all_variables()\n",
|
||||
"init = tf.global_variables_initializer()\n",
|
||||
"saver = tf.train.Saver()"
|
||||
]
|
||||
},
|
||||
@@ -472,7 +522,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -496,18 +548,22 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"[v.name for v in tf.all_variables()]"
|
||||
"[v.name for v in tf.global_variables()]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -521,7 +577,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 20,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -545,7 +603,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -556,7 +616,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -567,7 +629,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -578,7 +642,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -589,7 +655,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -600,7 +668,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -611,7 +681,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -639,7 +711,7 @@
|
||||
"clip_all_weights = tf.get_collection(\"max_norm\")\n",
|
||||
" \n",
|
||||
"with tf.name_scope(\"loss\"):\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, y)\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
|
||||
" loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"train\"):\n",
|
||||
@@ -654,7 +726,7 @@
|
||||
" correct = tf.nn.in_top_k(logits, y, 1)\n",
|
||||
" accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
|
||||
" \n",
|
||||
"init = tf.initialize_all_variables()\n",
|
||||
"init = tf.global_variables_initializer()\n",
|
||||
"saver = tf.train.Saver()"
|
||||
]
|
||||
},
|
||||
@@ -662,7 +734,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -686,7 +760,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 29,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -697,7 +773,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 30,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -732,7 +810,7 @@
|
||||
" logits = fully_connected(hidden2_drop, n_outputs, activation_fn=None, scope=\"outputs\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"loss\"):\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits, y)\n",
|
||||
" xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
|
||||
" loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
|
||||
"\n",
|
||||
"with tf.name_scope(\"train\"):\n",
|
||||
@@ -743,7 +821,7 @@
|
||||
" correct = tf.nn.in_top_k(logits, y, 1)\n",
|
||||
" accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
|
||||
" \n",
|
||||
"init = tf.initialize_all_variables()\n",
|
||||
"init = tf.global_variables_initializer()\n",
|
||||
"saver = tf.train.Saver()"
|
||||
]
|
||||
},
|
||||
@@ -751,7 +829,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 31,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -775,7 +855,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 32,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -787,7 +869,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 33,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -798,11 +882,13 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 34,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"for i in tf.all_variables():\n",
|
||||
"for i in tf.global_variables():\n",
|
||||
" print(i.name)"
|
||||
]
|
||||
},
|
||||
@@ -810,7 +896,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 35,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -822,7 +910,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": 36,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
"collapsed": false,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -830,48 +920,12 @@
|
||||
" print(i.name)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 37,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"X_train = mnist.train.images\n",
|
||||
"y_train = mnist.train.labels.astype(\"int\")\n",
|
||||
"X_val = mnist.test.images[8000:]\n",
|
||||
"y_val = mnist.test.labels[8000:].astype(\"int\")\n",
|
||||
"\n",
|
||||
"feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(X_train)\n",
|
||||
"dnn_clf = tf.contrib.learn.DNNClassifier(\n",
|
||||
" feature_columns = feature_columns,\n",
|
||||
" hidden_units=[300, 100],\n",
|
||||
" n_classes=10,\n",
|
||||
" model_dir=\"/tmp/my_model\",\n",
|
||||
" config=tf.contrib.learn.RunConfig(save_checkpoints_secs=60)\n",
|
||||
" )\n",
|
||||
"\n",
|
||||
"validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(\n",
|
||||
" X_val,\n",
|
||||
" y_val,\n",
|
||||
" every_n_steps=50,\n",
|
||||
" early_stopping_metric=\"loss\",\n",
|
||||
" early_stopping_metric_minimize=True,\n",
|
||||
" early_stopping_rounds=2000\n",
|
||||
" )\n",
|
||||
"\n",
|
||||
"dnn_clf.fit(x=X_train,\n",
|
||||
" y=y_train,\n",
|
||||
" steps=40000,\n",
|
||||
" monitors=[validation_monitor]\n",
|
||||
" )\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"# Exercise solutions"
|
||||
@@ -879,7 +933,10 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"source": [
|
||||
"**Coming soon**"
|
||||
]
|
||||
@@ -888,7 +945,9 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": true,
|
||||
"deletable": true,
|
||||
"editable": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
@@ -910,7 +969,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.5.2"
|
||||
"version": "3.5.2+"
|
||||
},
|
||||
"nav_menu": {
|
||||
"height": "360px",
|
||||
|
||||
Reference in New Issue
Block a user