Keras mnist dataset으로 변경
This commit is contained in:
@@ -2038,8 +2038,8 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"X_valid = mnist.validation.images\n",
|
"# X_valid = mnist.validation.images\n",
|
||||||
"y_valid = mnist.validation.labels"
|
"# y_valid = mnist.validation.labels"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -717,6 +717,42 @@
|
|||||||
" saver = tf.train.Saver()"
|
" saver = tf.train.Saver()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"주의: `tf.examples.tutorials.mnist`은 삭제될 예정이므로 대신 `tf.keras.datasets.mnist`를 사용하겠습니다."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()\n",
|
||||||
|
"X_train = X_train.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"X_test = X_test.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"y_train = y_train.astype(np.int32)\n",
|
||||||
|
"y_test = y_test.astype(np.int32)\n",
|
||||||
|
"X_valid, X_train = X_train[:5000], X_train[5000:]\n",
|
||||||
|
"y_valid, y_train = y_train[:5000], y_train[5000:]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"def shuffle_batch(X, y, batch_size):\n",
|
||||||
|
" rnd_idx = np.random.permutation(len(X))\n",
|
||||||
|
" n_batches = len(X) // batch_size\n",
|
||||||
|
" for batch_idx in np.array_split(rnd_idx, n_batches):\n",
|
||||||
|
" X_batch, y_batch = X[batch_idx], y[batch_idx]\n",
|
||||||
|
" yield X_batch, y_batch"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 23,
|
"execution_count": 23,
|
||||||
@@ -734,10 +770,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from tensorflow.examples.tutorials.mnist import input_data\n",
|
"# from tensorflow.examples.tutorials.mnist import input_data\n",
|
||||||
"tf.logging.set_verbosity(tf.logging.ERROR) # deprecated 경고 메세지를 출력하지 않기 위해 \n",
|
"# mnist = input_data.read_data_sets(\"/tmp/data/\")"
|
||||||
"mnist = input_data.read_data_sets(\"/tmp/data/\")\n",
|
|
||||||
"tf.logging.set_verbosity(tf.logging.INFO)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -772,15 +806,14 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" for iteration in range(mnist.train.num_examples // batch_size):\n",
|
" for X_batch, y_batch in shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" acc_batch = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_val = accuracy.eval(feed_dict={X: mnist.validation.images, y: mnist.validation.labels})\n",
|
" acc_val = accuracy.eval(feed_dict={X: X_valid, y: y_valid})\n",
|
||||||
" print(epoch, \"훈련 정확도:\", acc_train, \"검증 세트 정확도:\", acc_val)\n",
|
" print(epoch, \"배치 데이터 정확도:\", acc_batch, \"검증 세트 정확도:\", acc_val)\n",
|
||||||
"\n",
|
"\n",
|
||||||
" acc_test = accuracy.eval(feed_dict={X: mnist.test.images,\n",
|
" acc_test = accuracy.eval(feed_dict={X: X_test,\n",
|
||||||
" y: mnist.test.labels})\n",
|
" y: y_test})\n",
|
||||||
" print(\"테스트 세트에서 최종 정확도:\", acc_test)\n",
|
" print(\"테스트 세트에서 최종 정확도:\", acc_test)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" save_path = saver.save(sess, \"./my_mnist_model\")"
|
" save_path = saver.save(sess, \"./my_mnist_model\")"
|
||||||
@@ -922,8 +955,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from tensorflow.examples.tutorials.mnist import input_data\n",
|
"# from tensorflow.examples.tutorials.mnist import input_data\n",
|
||||||
"mnist = input_data.read_data_sets(\"/tmp/data/\")"
|
"# mnist = input_data.read_data_sets(\"/tmp/data/\")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1005,23 +1038,20 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" for iteration in range(mnist.train.num_examples // batch_size):\n",
|
" for X_batch, y_batch in shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch, training: True})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch, training: True})\n",
|
||||||
" if iteration % check_interval == 0:\n",
|
" if iteration % check_interval == 0:\n",
|
||||||
" loss_val = loss.eval(feed_dict={X: mnist.validation.images,\n",
|
" loss_val = loss.eval(feed_dict={X: X_valid, y: y_valid})\n",
|
||||||
" y: mnist.validation.labels})\n",
|
|
||||||
" if loss_val < best_loss_val:\n",
|
" if loss_val < best_loss_val:\n",
|
||||||
" best_loss_val = loss_val\n",
|
" best_loss_val = loss_val\n",
|
||||||
" checks_since_last_progress = 0\n",
|
" checks_since_last_progress = 0\n",
|
||||||
" best_model_params = get_model_params()\n",
|
" best_model_params = get_model_params()\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" checks_since_last_progress += 1\n",
|
" checks_since_last_progress += 1\n",
|
||||||
" acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" acc_batch = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_val = accuracy.eval(feed_dict={X: mnist.validation.images,\n",
|
" acc_val = accuracy.eval(feed_dict={X: X_valid, y: y_valid})\n",
|
||||||
" y: mnist.validation.labels})\n",
|
" print(\"에포크 {}, 배치 데이터 정확도: {:.4f}%, 검증 세트 정확도: {:.4f}%, 검증 세트에서 최선의 손실: {:.6f}\".format(\n",
|
||||||
" print(\"에포크 {}, 훈련 정확도: {:.4f}%, 검증 세트 정확도: {:.4f}%, 검증 세트에서 최선의 손실: {:.6f}\".format(\n",
|
" epoch, acc_batch * 100, acc_val * 100, best_loss_val))\n",
|
||||||
" epoch, acc_train * 100, acc_val * 100, best_loss_val))\n",
|
|
||||||
" if checks_since_last_progress > max_checks_without_progress:\n",
|
" if checks_since_last_progress > max_checks_without_progress:\n",
|
||||||
" print(\"조기 종료!\")\n",
|
" print(\"조기 종료!\")\n",
|
||||||
" break\n",
|
" break\n",
|
||||||
@@ -1029,8 +1059,8 @@
|
|||||||
" if best_model_params:\n",
|
" if best_model_params:\n",
|
||||||
" restore_model_params(best_model_params)\n",
|
" restore_model_params(best_model_params)\n",
|
||||||
" # GPU 메모리가 부족해서 5000개만 평가했습니다. CPU를 사용하거나 GPU 메모리가 크다면 테스트 세트 전체를 평가해 보세요.\n",
|
" # GPU 메모리가 부족해서 5000개만 평가했습니다. CPU를 사용하거나 GPU 메모리가 크다면 테스트 세트 전체를 평가해 보세요.\n",
|
||||||
" acc_test = accuracy.eval(feed_dict={X: mnist.test.images[:5000],\n",
|
" acc_test = accuracy.eval(feed_dict={X: X_test[:5000],\n",
|
||||||
" y: mnist.test.labels[:5000]})\n",
|
" y: y_test[:5000]})\n",
|
||||||
" print(\"테스트 세트에서 최종 정확도:\", acc_test)\n",
|
" print(\"테스트 세트에서 최종 정확도:\", acc_test)\n",
|
||||||
" save_path = saver.save(sess, \"./my_mnist_model\")"
|
" save_path = saver.save(sess, \"./my_mnist_model\")"
|
||||||
]
|
]
|
||||||
@@ -2607,7 +2637,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.5.5"
|
"version": "3.6.5"
|
||||||
},
|
},
|
||||||
"nav_menu": {},
|
"nav_menu": {},
|
||||||
"toc": {
|
"toc": {
|
||||||
|
|||||||
@@ -741,6 +741,43 @@
|
|||||||
"init = tf.global_variables_initializer()"
|
"init = tf.global_variables_initializer()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"주의: `tf.examples.tutorials.mnist`은 삭제될 예정이므로 대신 `tf.keras.datasets.mnist`를 사용하겠습니다."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()\n",
|
||||||
|
"X_train = X_train.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"X_test = X_test.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"y_train = y_train.astype(np.int32)\n",
|
||||||
|
"X_test = mnist.test.images.reshape((-1, n_steps, n_inputs))\n",
|
||||||
|
"y_test = y_test.astype(np.int32)\n",
|
||||||
|
"X_valid, X_train = X_train[:5000], X_train[5000:]\n",
|
||||||
|
"y_valid, y_train = y_train[:5000], y_train[5000:]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"def shuffle_batch(X, y, batch_size):\n",
|
||||||
|
" rnd_idx = np.random.permutation(len(X))\n",
|
||||||
|
" n_batches = len(X) // batch_size\n",
|
||||||
|
" for batch_idx in np.array_split(rnd_idx, n_batches):\n",
|
||||||
|
" X_batch, y_batch = X[batch_idx], y[batch_idx]\n",
|
||||||
|
" yield X_batch, y_batch"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 36,
|
"execution_count": 36,
|
||||||
@@ -773,10 +810,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from tensorflow.examples.tutorials.mnist import input_data\n",
|
"# from tensorflow.examples.tutorials.mnist import input_data\n",
|
||||||
"mnist = input_data.read_data_sets(\"/tmp/data/\")\n",
|
"# mnist = input_data.read_data_sets(\"/tmp/data/\")\n",
|
||||||
"X_test = mnist.test.images.reshape((-1, n_steps, n_inputs))\n",
|
"# X_test = mnist.test.images.reshape((-1, n_steps, n_inputs))\n",
|
||||||
"y_test = mnist.test.labels"
|
"# y_test = mnist.test.labels"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -898,13 +935,12 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" for iteration in range(mnist.train.num_examples // batch_size):\n",
|
" for X_batch, y_batch in shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
|
||||||
" X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
|
" X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" acc_batch = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
||||||
" print(epoch, \"훈련 정확도:\", acc_train, \"테스트 정확도:\", acc_test)"
|
" print(epoch, \"배치 데이터 정확도:\", acc_batch, \"테스트 정확도:\", acc_test)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -995,13 +1031,12 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" for iteration in range(mnist.train.num_examples // batch_size):\n",
|
" for X_batch, y_batch in shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
|
||||||
" X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
|
" X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" acc_batch = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
||||||
" print(epoch, \"훈련 정확도:\", acc_train, \"테스트 정확도:\", acc_test)"
|
" print(epoch, \"배치 데이터 정확도:\", acc_batch, \"테스트 정확도:\", acc_test)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2190,13 +2225,12 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" for iteration in range(mnist.train.num_examples // batch_size):\n",
|
" for X_batch, y_batch in shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
|
||||||
" X_batch = X_batch.reshape((batch_size, n_steps, n_inputs))\n",
|
" X_batch = X_batch.reshape((batch_size, n_steps, n_inputs))\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" acc_batch = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
" acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
||||||
" print(\"에포크\", epoch, \"훈련 정확도 =\", acc_train, \"테스트 정확도 =\", acc_test)"
|
" print(\"에포크\", epoch, \"배치 데이터 정확도 =\", acc_batch, \"테스트 정확도 =\", acc_test)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -274,6 +274,42 @@
|
|||||||
"MNIST 데이터셋을 사용합니다:"
|
"MNIST 데이터셋을 사용합니다:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"주의: `tf.examples.tutorials.mnist`은 삭제될 예정이므로 대신 `tf.keras.datasets.mnist`를 사용하겠습니다."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()\n",
|
||||||
|
"X_train = X_train.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"X_test = X_test.astype(np.float32).reshape(-1, 28*28) / 255.0\n",
|
||||||
|
"y_train = y_train.astype(np.int32)\n",
|
||||||
|
"y_test = y_test.astype(np.int32)\n",
|
||||||
|
"X_valid, X_train = X_train[:5000], X_train[5000:]\n",
|
||||||
|
"y_valid, y_train = y_train[:5000], y_train[5000:]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"def shuffle_batch(X, y, batch_size):\n",
|
||||||
|
" rnd_idx = np.random.permutation(len(X))\n",
|
||||||
|
" n_batches = len(X) // batch_size\n",
|
||||||
|
" for batch_idx in np.array_split(rnd_idx, n_batches):\n",
|
||||||
|
" X_batch, y_batch = X[batch_idx], y[batch_idx]\n",
|
||||||
|
" yield X_batch, y_batch"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 10,
|
"execution_count": 10,
|
||||||
@@ -291,10 +327,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"tf.logging.set_verbosity(tf.logging.ERROR) # deprecated 경고 메세지를 출력하지 않기 위해 \n",
|
"# from tensorflow.examples.tutorials.mnist import input_data\n",
|
||||||
"from tensorflow.examples.tutorials.mnist import input_data\n",
|
"# mnist = input_data.read_data_sets(\"/tmp/data/\")"
|
||||||
"mnist = input_data.read_data_sets(\"/tmp/data/\")\n",
|
|
||||||
"tf.logging.set_verbosity(tf.logging.INFO)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -389,11 +423,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\") # 책에는 없음\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\") # 책에는 없음\n",
|
||||||
" sys.stdout.flush() # 책에는 없음\n",
|
" sys.stdout.flush() # 책에는 없음\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch}) # 책에는 없음\n",
|
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch}) # 책에는 없음\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train) # 책에는 없음\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train) # 책에는 없음\n",
|
||||||
@@ -417,8 +451,8 @@
|
|||||||
" with tf.Session() as sess:\n",
|
" with tf.Session() as sess:\n",
|
||||||
" if model_path:\n",
|
" if model_path:\n",
|
||||||
" saver.restore(sess, model_path)\n",
|
" saver.restore(sess, model_path)\n",
|
||||||
" X_test = mnist.test.images[:n_test_digits]\n",
|
"# X_test = mnist.test.images[:n_test_digits]\n",
|
||||||
" outputs_val = outputs.eval(feed_dict={X: X_test})\n",
|
" outputs_val = outputs.eval(feed_dict={X: X_test[:n_test_digits]})\n",
|
||||||
"\n",
|
"\n",
|
||||||
" fig = plt.figure(figsize=(8, 3 * n_test_digits))\n",
|
" fig = plt.figure(figsize=(8, 3 * n_test_digits))\n",
|
||||||
" for digit_index in range(n_test_digits):\n",
|
" for digit_index in range(n_test_digits):\n",
|
||||||
@@ -432,7 +466,7 @@
|
|||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 14,
|
"execution_count": 14,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"scrolled": true
|
"scrolled": false
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@@ -563,11 +597,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):s\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
||||||
@@ -707,7 +741,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"hidden_output, W1, b1, W4, b4 = train_autoencoder(mnist.train.images, n_neurons=300, n_epochs=4, batch_size=150,\n",
|
"hidden_output, W1, b1, W4, b4 = train_autoencoder(X_train, n_neurons=300, n_epochs=4, batch_size=150,\n",
|
||||||
" output_activation=None)\n",
|
" output_activation=None)\n",
|
||||||
"_, W2, b2, W3, b3 = train_autoencoder(hidden_output, n_neurons=150, n_epochs=4, batch_size=150)"
|
"_, W2, b2, W3, b3 = train_autoencoder(hidden_output, n_neurons=150, n_epochs=4, batch_size=150)"
|
||||||
]
|
]
|
||||||
@@ -883,16 +917,16 @@
|
|||||||
" for phase in range(2):\n",
|
" for phase in range(2):\n",
|
||||||
" print(\"훈련 단계 #{}\".format(phase + 1))\n",
|
" print(\"훈련 단계 #{}\".format(phase + 1))\n",
|
||||||
" for epoch in range(n_epochs[phase]):\n",
|
" for epoch in range(n_epochs[phase]):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_sizes[phase]\n",
|
" n_batches = len(X_train) // batch_sizes[phase]\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_sizes[phase])\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_sizes[phase]):\n",
|
||||||
" sess.run(training_ops[phase], feed_dict={X: X_batch})\n",
|
" sess.run(training_ops[phase], feed_dict={X: X_batch})\n",
|
||||||
" loss_train = reconstruction_losses[phase].eval(feed_dict={X: X_batch})\n",
|
" loss_train = reconstruction_losses[phase].eval(feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
||||||
" saver.save(sess, \"./my_model_one_at_a_time.ckpt\")\n",
|
" saver.save(sess, \"./my_model_one_at_a_time.ckpt\")\n",
|
||||||
" loss_test = reconstruction_loss.eval(feed_dict={X: mnist.test.images})\n",
|
" loss_test = reconstruction_loss.eval(feed_dict={X: X_test})\n",
|
||||||
" print(\"테스트 MSE:\", loss_test)"
|
" print(\"테스트 MSE:\", loss_test)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -939,25 +973,25 @@
|
|||||||
" for phase in range(2):\n",
|
" for phase in range(2):\n",
|
||||||
" print(\"훈련 단계 #{}\".format(phase + 1))\n",
|
" print(\"훈련 단계 #{}\".format(phase + 1))\n",
|
||||||
" if phase == 1:\n",
|
" if phase == 1:\n",
|
||||||
" hidden1_cache = hidden1.eval(feed_dict={X: mnist.train.images})\n",
|
" hidden1_cache = hidden1.eval(feed_dict={X: X_train})\n",
|
||||||
" for epoch in range(n_epochs[phase]):\n",
|
" for epoch in range(n_epochs[phase]):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_sizes[phase]\n",
|
" n_batches = len(X_train) // batch_sizes[phase]\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" if phase == 1:\n",
|
" if phase == 1:\n",
|
||||||
" indices = rnd.permutation(mnist.train.num_examples)\n",
|
" indices = rnd.permutation(len(X_train))\n",
|
||||||
" hidden1_batch = hidden1_cache[indices[:batch_sizes[phase]]]\n",
|
" hidden1_batch = hidden1_cache[indices[:batch_sizes[phase]]]\n",
|
||||||
" feed_dict = {hidden1: hidden1_batch}\n",
|
" feed_dict = {hidden1: hidden1_batch}\n",
|
||||||
" sess.run(training_ops[phase], feed_dict=feed_dict)\n",
|
" sess.run(training_ops[phase], feed_dict=feed_dict)\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_sizes[phase])\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_sizes[phase]):\n",
|
||||||
" feed_dict = {X: X_batch}\n",
|
" feed_dict = {X: X_batch}\n",
|
||||||
" sess.run(training_ops[phase], feed_dict=feed_dict)\n",
|
" sess.run(training_ops[phase], feed_dict=feed_dict)\n",
|
||||||
" loss_train = reconstruction_losses[phase].eval(feed_dict=feed_dict)\n",
|
" loss_train = reconstruction_losses[phase].eval(feed_dict=feed_dict)\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
||||||
" saver.save(sess, \"./my_model_cache_frozen.ckpt\")\n",
|
" saver.save(sess, \"./my_model_cache_frozen.ckpt\")\n",
|
||||||
" loss_test = reconstruction_loss.eval(feed_dict={X: mnist.test.images})\n",
|
" loss_test = reconstruction_loss.eval(feed_dict={X: X_test})\n",
|
||||||
" print(\"테스트 MSE:\", loss_test)"
|
" print(\"테스트 MSE:\", loss_test)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -993,11 +1027,11 @@
|
|||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"n_test_digits = 2\n",
|
"n_test_digits = 2\n",
|
||||||
"X_test = mnist.test.images[:n_test_digits]\n",
|
"# X_test = mnist.test.images[:n_test_digits]\n",
|
||||||
"\n",
|
"\n",
|
||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" saver.restore(sess, \"./my_model_one_at_a_time.ckpt\") # not shown in the book\n",
|
" saver.restore(sess, \"./my_model_one_at_a_time.ckpt\") # not shown in the book\n",
|
||||||
" outputs_val = outputs.eval(feed_dict={X: X_test})\n",
|
" outputs_val = outputs.eval(feed_dict={X: X_test[:n_test_digits]})\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def plot_image(image, shape=[28, 28]):\n",
|
"def plot_image(image, shape=[28, 28]):\n",
|
||||||
" plt.imshow(image.reshape(shape), cmap=\"Greys\", interpolation=\"nearest\")\n",
|
" plt.imshow(image.reshape(shape), cmap=\"Greys\", interpolation=\"nearest\")\n",
|
||||||
@@ -1156,13 +1190,13 @@
|
|||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" indices = rnd.permutation(n_labeled_instances)[:batch_size]\n",
|
" indices = rnd.permutation(n_labeled_instances)[:batch_size]\n",
|
||||||
" X_batch, y_batch = mnist.train.images[indices], mnist.train.labels[indices]\n",
|
" X_batch, y_batch = X_train[indices], y_train[indices]\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" accuracy_val = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" accuracy_val = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 정확도:\", accuracy_val, end=\" \")\n",
|
" print(\"\\r{}\".format(epoch), \"검증 세트 정확도:\", accuracy_val, end=\" \")\n",
|
||||||
" saver.save(sess, \"./my_model_supervised.ckpt\")\n",
|
" saver.save(sess, \"./my_model_supervised.ckpt\")\n",
|
||||||
" accuracy_val = accuracy.eval(feed_dict={X: mnist.test.images, y: mnist.test.labels})\n",
|
" test_val = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
||||||
" print(\"테스트 정확도:\", accuracy_val)"
|
" print(\"테스트 정확도:\", test_val)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1205,13 +1239,13 @@
|
|||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" indices = rnd.permutation(n_labeled_instances)[:batch_size]\n",
|
" indices = rnd.permutation(n_labeled_instances)[:batch_size]\n",
|
||||||
" X_batch, y_batch = mnist.train.images[indices], mnist.train.labels[indices]\n",
|
" X_batch, y_batch = X_train[indices], y_train[indices]\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" accuracy_val = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
" accuracy_val = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 정확도:\", accuracy_val, end=\"\\t\")\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 정확도:\", accuracy_val, end=\"\\t\")\n",
|
||||||
" saver.save(sess, \"./my_model_supervised_pretrained.ckpt\")\n",
|
" saver.save(sess, \"./my_model_supervised_pretrained.ckpt\")\n",
|
||||||
" accuracy_val = accuracy.eval(feed_dict={X: mnist.test.images, y: mnist.test.labels})\n",
|
" test_val = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
|
||||||
" print(\"테스트 정확도:\", accuracy_val)"
|
" print(\"테스트 정확도:\", test_val)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1309,11 +1343,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
||||||
@@ -1410,11 +1444,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch, training: True})\n",
|
" sess.run(training_op, feed_dict={X: X_batch, training: True})\n",
|
||||||
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
" loss_train = reconstruction_loss.eval(feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", loss_train)\n",
|
||||||
@@ -1657,11 +1691,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" reconstruction_loss_val, sparsity_loss_val, loss_val = sess.run([reconstruction_loss, sparsity_loss, loss], feed_dict={X: X_batch})\n",
|
" reconstruction_loss_val, sparsity_loss_val, loss_val = sess.run([reconstruction_loss, sparsity_loss, loss], feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", reconstruction_loss_val, \"\\t희소 손실:\", sparsity_loss_val, \"\\t전체 손실:\", loss_val)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 MSE:\", reconstruction_loss_val, \"\\t희소 손실:\", sparsity_loss_val, \"\\t전체 손실:\", loss_val)\n",
|
||||||
@@ -1876,11 +1910,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\")\n",
|
||||||
" sys.stdout.flush()\n",
|
" sys.stdout.flush()\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" loss_val, reconstruction_loss_val, latent_loss_val = sess.run([loss, reconstruction_loss, latent_loss], feed_dict={X: X_batch})\n",
|
" loss_val, reconstruction_loss_val, latent_loss_val = sess.run([loss, reconstruction_loss, latent_loss], feed_dict={X: X_batch})\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 전체 손실:\", loss_val, \"\\t재구성 손실:\", reconstruction_loss_val, \"\\t잠재 손실:\", latent_loss_val)\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 전체 손실:\", loss_val, \"\\t재구성 손실:\", reconstruction_loss_val, \"\\t잠재 손실:\", latent_loss_val)\n",
|
||||||
@@ -2023,11 +2057,11 @@
|
|||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" init.run()\n",
|
" init.run()\n",
|
||||||
" for epoch in range(n_epochs):\n",
|
" for epoch in range(n_epochs):\n",
|
||||||
" n_batches = mnist.train.num_examples // batch_size\n",
|
" n_batches = len(X_train) // batch_size\n",
|
||||||
" for iteration in range(n_batches):\n",
|
" for iteration in range(n_batches):\n",
|
||||||
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\") # not shown in the book\n",
|
" print(\"\\r{}%\".format(100 * iteration // n_batches), end=\"\") # not shown in the book\n",
|
||||||
" sys.stdout.flush() # not shown\n",
|
" sys.stdout.flush() # not shown\n",
|
||||||
" X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
|
" X_batch, y_batch = shuffle_batch(X_train, y_train, batch_size):\n",
|
||||||
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
" sess.run(training_op, feed_dict={X: X_batch})\n",
|
||||||
" loss_val, reconstruction_loss_val, latent_loss_val = sess.run([loss, reconstruction_loss, latent_loss], feed_dict={X: X_batch}) # not shown\n",
|
" loss_val, reconstruction_loss_val, latent_loss_val = sess.run([loss, reconstruction_loss, latent_loss], feed_dict={X: X_batch}) # not shown\n",
|
||||||
" print(\"\\r{}\".format(epoch), \"훈련 전체 손실:\", loss_val, \"\\t재구성 손실:\", reconstruction_loss_val, \"\\t잠재 손실:\", latent_loss_val) # not shown\n",
|
" print(\"\\r{}\".format(epoch), \"훈련 전체 손실:\", loss_val, \"\\t재구성 손실:\", reconstruction_loss_val, \"\\t잠재 손실:\", latent_loss_val) # not shown\n",
|
||||||
@@ -2130,12 +2164,13 @@
|
|||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"n_digits = 3\n",
|
"n_digits = 3\n",
|
||||||
"X_test, y_test = mnist.test.next_batch(batch_size)\n",
|
"# X_test, y_test = mnist.test.next_batch(batch_size)\n",
|
||||||
|
"X_test_batch, y_test_batch = shuffle_batch(X_test, y_test, batch_size):\n",
|
||||||
"codings = hidden3\n",
|
"codings = hidden3\n",
|
||||||
"\n",
|
"\n",
|
||||||
"with tf.Session() as sess:\n",
|
"with tf.Session() as sess:\n",
|
||||||
" saver.restore(sess, \"./my_model_variational.ckpt\")\n",
|
" saver.restore(sess, \"./my_model_variational.ckpt\")\n",
|
||||||
" codings_val = codings.eval(feed_dict={X: X_test})"
|
" codings_val = codings.eval(feed_dict={X: X_test_batch})"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2191,7 +2226,7 @@
|
|||||||
"fig = plt.figure(figsize=(8, 2.5 * n_digits))\n",
|
"fig = plt.figure(figsize=(8, 2.5 * n_digits))\n",
|
||||||
"for iteration in range(n_digits):\n",
|
"for iteration in range(n_digits):\n",
|
||||||
" plt.subplot(n_digits, 2, 1 + 2 * iteration)\n",
|
" plt.subplot(n_digits, 2, 1 + 2 * iteration)\n",
|
||||||
" plot_image(X_test[iteration])\n",
|
" plot_image(X_test_batch[iteration])\n",
|
||||||
" plt.subplot(n_digits, 2, 2 + 2 * iteration)\n",
|
" plt.subplot(n_digits, 2, 2 + 2 * iteration)\n",
|
||||||
" plot_image(outputs_val[iteration])"
|
" plot_image(outputs_val[iteration])"
|
||||||
]
|
]
|
||||||
@@ -2307,7 +2342,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.5.5"
|
"version": "3.6.5"
|
||||||
},
|
},
|
||||||
"nav_menu": {
|
"nav_menu": {
|
||||||
"height": "381px",
|
"height": "381px",
|
||||||
|
|||||||
Reference in New Issue
Block a user