{ "cells": [ { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "from tensorflow.python import keras\n", "\n", "from tensorflow.python.keras.models import Sequential\n", "from tensorflow.python.keras.layers import Dense,Activation" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "x_train.shape = (60000, 28 * 28)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x_train = x_train / 255" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "y_train = keras.utils.to_categorical(y_train)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "model = Sequential()\n", "model.add(Dense(786, input_dim = 28*28))\n", "model.add(Activation('relu'))\n", "model.add(Dense(256))\n", "model.add(Activation('relu'))\n", "model.add(Dense(160))\n", "model.add(Activation('relu'))\n", "model.add(Dense(10))\n", "model.add(Activation('softmax'))" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "model.compile(optimizer=keras.optimizers.SGD(lr=0.0001, momentum=0.9),\n", " loss='categorical_crossentropy',\n", " metric='accuracy')" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Using the Keras model provided.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Using the Keras model provided.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Using default config.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Using default config.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:Using temporary folder as model directory: /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:Using temporary folder as model directory: /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Using config: {'_train_distribute': None, '_save_checkpoints_secs': 600, '_num_worker_replicas': 1, '_global_id_in_cluster': 0, '_save_summary_steps': 100, '_keep_checkpoint_every_n_hours': 10000, '_master': '', '_evaluation_master': '', '_keep_checkpoint_max': 5, '_session_config': None, '_save_checkpoints_steps': None, '_cluster_spec': , '_task_id': 0, '_service': None, '_task_type': 'worker', '_tf_random_seed': None, '_log_step_count_steps': 100, '_model_dir': '/var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp', '_is_chief': True, '_num_ps_replicas': 0}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Using config: {'_train_distribute': None, '_save_checkpoints_secs': 600, '_num_worker_replicas': 1, '_global_id_in_cluster': 0, '_save_summary_steps': 100, '_keep_checkpoint_every_n_hours': 10000, '_master': '', '_evaluation_master': '', '_keep_checkpoint_max': 5, '_session_config': None, '_save_checkpoints_steps': None, '_cluster_spec': , '_task_id': 0, '_service': None, '_task_type': 'worker', '_tf_random_seed': None, '_log_step_count_steps': 100, '_model_dir': '/var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp', '_is_chief': True, '_num_ps_replicas': 0}\n" ] } ], "source": [ "estimator = keras.estimator.model_to_estimator(keras_model=model)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['dense_9_input']" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.input_names" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "train_input_fn = tf.estimator.inputs.numpy_input_fn(\n", " x={'dense_9_input': x_train},\n", " y=y_train,\n", " num_epochs=1,\n", " shuffle=False)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Calling model_fn.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Calling model_fn.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Done calling model_fn.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Done calling model_fn.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Create CheckpointSaverHook.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Create CheckpointSaverHook.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Graph was finalized.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Graph was finalized.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Restoring parameters from /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/keras_model.ckpt\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Restoring parameters from /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/keras_model.ckpt\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Running local_init_op.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Running local_init_op.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Done running local_init_op.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Done running local_init_op.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Saving checkpoints for 1 into /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/model.ckpt.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Saving checkpoints for 1 into /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/model.ckpt.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:step = 1, loss = 14.745756\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:step = 1, loss = 14.745756\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 72.6573\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 72.6573\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:step = 101, loss = 10.383348 (1.379 sec)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:step = 101, loss = 10.383348 (1.379 sec)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 94.0097\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 94.0097\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:step = 201, loss = 8.26259 (1.063 sec)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:step = 201, loss = 8.26259 (1.063 sec)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 92.2613\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 92.2613\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:step = 301, loss = 8.038471 (1.085 sec)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:step = 301, loss = 8.038471 (1.085 sec)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 85.0706\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:global_step/sec: 85.0706\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:step = 401, loss = 6.6674304 (1.174 sec)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:step = 401, loss = 6.6674304 (1.174 sec)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Saving checkpoints for 470 into /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/model.ckpt.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Saving checkpoints for 470 into /var/folders/46/293cpt8x5gq61f_5rjb2msrc0000gn/T/tmp7dn4eogp/model.ckpt.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Loss for final step: 6.4350104.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Loss for final step: 6.4350104.\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "estimator.train(input_fn=train_input_fn, steps=2000)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_1 (Dense) (None, 786) 1717410 \n", "_________________________________________________________________\n", "activation_95 (Activation) (None, 786) 0 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 256) 201472 \n", "_________________________________________________________________\n", "activation_96 (Activation) (None, 256) 0 \n", "_________________________________________________________________\n", "dense_3 (Dense) (None, 160) 41120 \n", "_________________________________________________________________\n", "activation_97 (Activation) (None, 160) 0 \n", "_________________________________________________________________\n", "dense_4 (Dense) (None, 10) 1610 \n", "_________________________________________________________________\n", "activation_98 (Activation) (None, 10) 0 \n", "=================================================================\n", "Total params: 1,961,612\n", "Trainable params: 1,961,612\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(None, 2184)" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.input_shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }