Skip to content

Instantly share code, notes, and snippets.

@justincosentino
Created October 21, 2020 00:39
Show Gist options
  • Save justincosentino/f7f63642cb04f18ac7b896d3381db058 to your computer and use it in GitHub Desktop.
Save justincosentino/f7f63642cb04f18ac7b896d3381db058 to your computer and use it in GitHub Desktop.
input_features_estimator_demo.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "input_features_estimator_demo.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyMWjcbZasKlz0c4FXfHuQL0",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/justincosentino/f7f63642cb04f18ac7b896d3381db058/input_features_estimator_demo.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "FIBIQKu5jk9i",
"outputId": "eb14991a-197d-4dcf-9679-67a8b8317ee7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import tensorflow as tf\n",
"import matplotlib as mpl\n",
"import numpy as np\n",
"import sklearn\n",
"import pandas as pd\n",
"import os\n",
"import sys\n",
"from tensorflow import keras\n",
"\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'\n",
"\n",
"print(sys.version_info)\n",
"for module in mpl, np, pd, sklearn, tf, keras:\n",
" print(module.__name__, module.__version__)\n",
"\n",
"# Load dataset.\n",
"train_df = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')\n",
"eval_df = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')\n",
"\n",
"train_y = train_df.pop('survived')\n",
"eval_y = eval_df.pop('survived')\n",
"\n",
"categorical_columns = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']\n",
"numeric_columns = ['age', 'fare']\n",
"\n",
"feature_columns = []\n",
"\n",
"for categorical_column in categorical_columns:\n",
" vocab = train_df[categorical_column].unique()\n",
" feature_columns.append(\n",
" tf.feature_column.indicator_column(\n",
" tf.feature_column.categorical_column_with_vocabulary_list(categorical_column, vocab)\n",
" )\n",
" )\n",
"\n",
"for numeric_column in numeric_columns:\n",
" feature_columns.append(tf.feature_column.numeric_column(numeric_column))\n",
"\n",
"\n",
"def make_dataset(data_df, label_df, epochs=10, shuffle=True, batch_size=32):\n",
" dataset = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))\n",
" if shuffle:\n",
" dataset = dataset.shuffle(10000)\n",
" dataset = dataset.repeat(epochs).batch(batch_size)\n",
" return dataset\n",
"\n",
"\n",
"train_dataset = make_dataset(train_df, train_y, epochs=100, batch_size=5)\n",
"for x, y in train_dataset.take(1):\n",
" print(keras.layers.DenseFeatures(feature_columns, dtype=tf.float32)(x).numpy())\n",
"\n",
"# build an input map for all features\n",
"input_features = {}\n",
"for f in categorical_columns:\n",
" if f == 'n_siblings_spouses' or f == 'parch':\n",
" input_features[f] = tf.keras.layers.Input(\n",
" name=f, shape=(1,), dtype=tf.int64)\n",
" else:\n",
" input_features[f] = tf.keras.layers.Input(\n",
" name=f, shape=(1,), dtype=tf.string)\n",
"for f in numeric_columns:\n",
" input_features[f] = tf.keras.layers.Input(\n",
" name=f, shape=(1,), dtype=tf.float32)\n",
"\n",
"# use the functional api to build the model\n",
"dense_features = tf.keras.layers.DenseFeatures(feature_columns)(input_features)\n",
"hid = keras.layers.Dense(100, activation='relu', dtype=tf.float64)(dense_features)\n",
"hid = keras.layers.Dense(100, activation='relu', dtype=tf.float64)(hid)\n",
"output_layer = keras.layers.Dense(2, activation='softmax', dtype=tf.float64)(hid)\n",
"model = keras.Model(inputs=input_features, outputs=output_layer)\n",
"model.compile(loss='sparse_categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy'])\n",
"\n",
"batch_size = 32\n",
"train_dataset = make_dataset(train_df, train_y, epochs=100, batch_size=batch_size)\n",
"eval_dataset = make_dataset(eval_df, eval_y, epochs=1, shuffle=False, batch_size=batch_size)\n",
"\n",
"# 1. model.fit()\n",
"history = model.fit(\n",
" train_dataset,\n",
" validation_data=eval_dataset,\n",
" steps_per_epoch=627 // batch_size,\n",
" validation_steps=264 // batch_size,\n",
" epochs=100\n",
")\n",
"\n",
"# 2. model -> estimator -> train\n",
"estimator = keras.estimator.model_to_estimator(model)\n",
"estimator.train(input_fn=lambda: make_dataset(train_df, train_y, epochs=100))"
],
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": [
"sys.version_info(major=3, minor=6, micro=9, releaselevel='final', serial=0)\n",
"matplotlib 3.2.2\n",
"numpy 1.18.5\n",
"pandas 1.1.2\n",
"sklearn 0.22.2.post1\n",
"tensorflow 2.3.0\n",
"tensorflow.keras 2.4.0\n",
"[[28. 0. 1. 0. 1. 0. 0. 1. 0.\n",
" 0. 0. 0. 0. 0. 1. 0. 0. 0.\n",
" 30.5 0. 1. 0. 0. 0. 0. 0. 1.\n",
" 0. 0. 0. 0. 0. 1. 0. ]\n",
" [28. 0. 1. 1. 0. 0. 1. 0. 0.\n",
" 0. 0. 0. 0. 0. 0. 1. 0. 0.\n",
" 7.225 0. 1. 0. 0. 0. 0. 0. 1.\n",
" 0. 0. 0. 0. 0. 1. 0. ]\n",
" [50. 0. 1. 0. 0. 1. 1. 0. 0.\n",
" 0. 0. 0. 0. 0. 1. 0. 0. 0.\n",
" 10.5 0. 1. 0. 0. 0. 0. 0. 1.\n",
" 0. 0. 0. 0. 0. 0. 1. ]\n",
" [18. 1. 0. 1. 0. 0. 1. 0. 0.\n",
" 0. 0. 0. 0. 0. 1. 0. 0. 0.\n",
" 9.35 0. 1. 0. 0. 0. 0. 0. 0.\n",
" 1. 0. 0. 0. 0. 0. 1. ]\n",
" [19. 0. 1. 1. 0. 0. 1. 0. 0.\n",
" 0. 0. 0. 0. 0. 1. 0. 0. 0.\n",
" 10.1708 0. 1. 0. 0. 0. 0. 0. 1.\n",
" 0. 0. 0. 0. 0. 1. 0. ]]\n",
"{'sex': <tf.Tensor 'sex_6:0' shape=(None, 1) dtype=string>, 'n_siblings_spouses': <tf.Tensor 'n_siblings_spouses_6:0' shape=(None, 1) dtype=int64>, 'parch': <tf.Tensor 'parch_6:0' shape=(None, 1) dtype=int64>, 'class': <tf.Tensor 'class_6:0' shape=(None, 1) dtype=string>, 'deck': <tf.Tensor 'deck_6:0' shape=(None, 1) dtype=string>, 'embark_town': <tf.Tensor 'embark_town_6:0' shape=(None, 1) dtype=string>, 'alone': <tf.Tensor 'alone_6:0' shape=(None, 1) dtype=string>, 'age': <tf.Tensor 'age_4:0' shape=(None, 1) dtype=float32>, 'fare': <tf.Tensor 'fare_4:0' shape=(None, 1) dtype=float32>}\n",
"Epoch 1/100\n",
"19/19 [==============================] - 0s 14ms/step - loss: 1.4353 - accuracy: 0.5822 - val_loss: 0.7573 - val_accuracy: 0.6914\n",
"Epoch 2/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.6990 - accuracy: 0.6645 - val_loss: 0.6539 - val_accuracy: 0.6641\n",
"Epoch 3/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.6334 - accuracy: 0.7105 - val_loss: 0.5992 - val_accuracy: 0.6680\n",
"Epoch 4/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5710 - accuracy: 0.7253 - val_loss: 0.5652 - val_accuracy: 0.6992\n",
"Epoch 5/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.5378 - accuracy: 0.7418 - val_loss: 0.5407 - val_accuracy: 0.7148\n",
"Epoch 6/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5325 - accuracy: 0.7615 - val_loss: 0.5497 - val_accuracy: 0.7109\n",
"Epoch 7/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5255 - accuracy: 0.7467 - val_loss: 0.5346 - val_accuracy: 0.7422\n",
"Epoch 8/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5160 - accuracy: 0.7582 - val_loss: 0.5027 - val_accuracy: 0.7422\n",
"Epoch 9/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4887 - accuracy: 0.7780 - val_loss: 0.5021 - val_accuracy: 0.7422\n",
"Epoch 10/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4730 - accuracy: 0.7812 - val_loss: 0.4800 - val_accuracy: 0.7578\n",
"Epoch 11/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5594 - accuracy: 0.7681 - val_loss: 0.5902 - val_accuracy: 0.7305\n",
"Epoch 12/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4761 - accuracy: 0.7697 - val_loss: 0.5296 - val_accuracy: 0.7422\n",
"Epoch 13/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5034 - accuracy: 0.7796 - val_loss: 0.5366 - val_accuracy: 0.7812\n",
"Epoch 14/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.5039 - accuracy: 0.7763 - val_loss: 0.4936 - val_accuracy: 0.7500\n",
"Epoch 15/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4517 - accuracy: 0.8224 - val_loss: 0.5217 - val_accuracy: 0.7578\n",
"Epoch 16/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4517 - accuracy: 0.8026 - val_loss: 0.4954 - val_accuracy: 0.7617\n",
"Epoch 17/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4308 - accuracy: 0.8174 - val_loss: 0.4979 - val_accuracy: 0.7539\n",
"Epoch 18/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4171 - accuracy: 0.8207 - val_loss: 0.4788 - val_accuracy: 0.7578\n",
"Epoch 19/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4207 - accuracy: 0.8207 - val_loss: 0.4753 - val_accuracy: 0.7773\n",
"Epoch 20/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.6102 - accuracy: 0.7582 - val_loss: 0.7882 - val_accuracy: 0.7109\n",
"Epoch 21/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.6327 - accuracy: 0.7434 - val_loss: 0.6440 - val_accuracy: 0.6719\n",
"Epoch 22/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4411 - accuracy: 0.8191 - val_loss: 0.4724 - val_accuracy: 0.7617\n",
"Epoch 23/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4023 - accuracy: 0.8273 - val_loss: 0.4594 - val_accuracy: 0.7812\n",
"Epoch 24/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4224 - accuracy: 0.8273 - val_loss: 0.4695 - val_accuracy: 0.7617\n",
"Epoch 25/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4281 - accuracy: 0.8191 - val_loss: 0.5023 - val_accuracy: 0.7500\n",
"Epoch 26/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4621 - accuracy: 0.8026 - val_loss: 0.5223 - val_accuracy: 0.7773\n",
"Epoch 27/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4389 - accuracy: 0.8076 - val_loss: 0.4687 - val_accuracy: 0.7852\n",
"Epoch 28/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4747 - accuracy: 0.7928 - val_loss: 0.4594 - val_accuracy: 0.7773\n",
"Epoch 29/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3936 - accuracy: 0.8421 - val_loss: 0.4654 - val_accuracy: 0.7656\n",
"Epoch 30/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4084 - accuracy: 0.8174 - val_loss: 0.4747 - val_accuracy: 0.7695\n",
"Epoch 31/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3943 - accuracy: 0.8372 - val_loss: 0.4765 - val_accuracy: 0.7656\n",
"Epoch 32/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4045 - accuracy: 0.8224 - val_loss: 0.4612 - val_accuracy: 0.7734\n",
"Epoch 33/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3939 - accuracy: 0.8306 - val_loss: 0.4677 - val_accuracy: 0.7578\n",
"Epoch 34/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4384 - accuracy: 0.8092 - val_loss: 0.4585 - val_accuracy: 0.7812\n",
"Epoch 35/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4250 - accuracy: 0.8174 - val_loss: 0.4604 - val_accuracy: 0.7969\n",
"Epoch 36/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4041 - accuracy: 0.8306 - val_loss: 0.4844 - val_accuracy: 0.7617\n",
"Epoch 37/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4052 - accuracy: 0.8289 - val_loss: 0.4823 - val_accuracy: 0.7734\n",
"Epoch 38/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3858 - accuracy: 0.8470 - val_loss: 0.4721 - val_accuracy: 0.7656\n",
"Epoch 39/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4116 - accuracy: 0.8240 - val_loss: 0.4586 - val_accuracy: 0.7852\n",
"Epoch 40/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4081 - accuracy: 0.8355 - val_loss: 0.4757 - val_accuracy: 0.7930\n",
"Epoch 41/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3893 - accuracy: 0.8438 - val_loss: 0.4967 - val_accuracy: 0.7852\n",
"Epoch 42/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4260 - accuracy: 0.8125 - val_loss: 0.4769 - val_accuracy: 0.7773\n",
"Epoch 43/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3776 - accuracy: 0.8355 - val_loss: 0.4722 - val_accuracy: 0.7812\n",
"Epoch 44/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4217 - accuracy: 0.8141 - val_loss: 0.4588 - val_accuracy: 0.7930\n",
"Epoch 45/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3967 - accuracy: 0.8306 - val_loss: 0.5010 - val_accuracy: 0.7695\n",
"Epoch 46/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3787 - accuracy: 0.8438 - val_loss: 0.5353 - val_accuracy: 0.7500\n",
"Epoch 47/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4558 - accuracy: 0.7977 - val_loss: 0.4765 - val_accuracy: 0.7969\n",
"Epoch 48/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4319 - accuracy: 0.8273 - val_loss: 0.4720 - val_accuracy: 0.8047\n",
"Epoch 49/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4087 - accuracy: 0.8339 - val_loss: 0.5286 - val_accuracy: 0.7734\n",
"Epoch 50/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4541 - accuracy: 0.7944 - val_loss: 0.4752 - val_accuracy: 0.7930\n",
"Epoch 51/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4034 - accuracy: 0.8224 - val_loss: 0.4775 - val_accuracy: 0.7930\n",
"Epoch 52/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4134 - accuracy: 0.8372 - val_loss: 0.5448 - val_accuracy: 0.7578\n",
"Epoch 53/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4205 - accuracy: 0.8010 - val_loss: 0.5111 - val_accuracy: 0.7656\n",
"Epoch 54/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3715 - accuracy: 0.8503 - val_loss: 0.4779 - val_accuracy: 0.7969\n",
"Epoch 55/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4143 - accuracy: 0.8289 - val_loss: 0.4757 - val_accuracy: 0.7930\n",
"Epoch 56/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4531 - accuracy: 0.8043 - val_loss: 0.5235 - val_accuracy: 0.7656\n",
"Epoch 57/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3821 - accuracy: 0.8487 - val_loss: 0.5345 - val_accuracy: 0.7656\n",
"Epoch 58/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.3972 - accuracy: 0.8207 - val_loss: 0.4721 - val_accuracy: 0.8008\n",
"Epoch 59/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3727 - accuracy: 0.8372 - val_loss: 0.4853 - val_accuracy: 0.7969\n",
"Epoch 60/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.3635 - accuracy: 0.8454 - val_loss: 0.5006 - val_accuracy: 0.7734\n",
"Epoch 61/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3976 - accuracy: 0.8174 - val_loss: 0.4981 - val_accuracy: 0.7812\n",
"Epoch 62/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.4260 - accuracy: 0.8125 - val_loss: 0.5111 - val_accuracy: 0.7734\n",
"Epoch 63/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.3904 - accuracy: 0.8306 - val_loss: 0.5294 - val_accuracy: 0.7969\n",
"Epoch 64/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3713 - accuracy: 0.8536 - val_loss: 0.5044 - val_accuracy: 0.7734\n",
"Epoch 65/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3974 - accuracy: 0.8273 - val_loss: 0.5242 - val_accuracy: 0.7734\n",
"Epoch 66/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3912 - accuracy: 0.8388 - val_loss: 0.4889 - val_accuracy: 0.7852\n",
"Epoch 67/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3929 - accuracy: 0.8405 - val_loss: 0.4847 - val_accuracy: 0.7930\n",
"Epoch 68/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.3709 - accuracy: 0.8405 - val_loss: 0.4811 - val_accuracy: 0.8008\n",
"Epoch 69/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3727 - accuracy: 0.8520 - val_loss: 0.4871 - val_accuracy: 0.7930\n",
"Epoch 70/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4709 - accuracy: 0.8059 - val_loss: 0.6006 - val_accuracy: 0.7461\n",
"Epoch 71/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4272 - accuracy: 0.8273 - val_loss: 0.4973 - val_accuracy: 0.7969\n",
"Epoch 72/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3699 - accuracy: 0.8388 - val_loss: 0.4815 - val_accuracy: 0.8008\n",
"Epoch 73/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3618 - accuracy: 0.8487 - val_loss: 0.4935 - val_accuracy: 0.7930\n",
"Epoch 74/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3830 - accuracy: 0.8372 - val_loss: 0.4821 - val_accuracy: 0.7969\n",
"Epoch 75/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3479 - accuracy: 0.8553 - val_loss: 0.4895 - val_accuracy: 0.7930\n",
"Epoch 76/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4006 - accuracy: 0.8339 - val_loss: 0.5584 - val_accuracy: 0.7656\n",
"Epoch 77/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3825 - accuracy: 0.8257 - val_loss: 0.4937 - val_accuracy: 0.8008\n",
"Epoch 78/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3823 - accuracy: 0.8355 - val_loss: 0.5305 - val_accuracy: 0.7734\n",
"Epoch 79/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3625 - accuracy: 0.8503 - val_loss: 0.5008 - val_accuracy: 0.7930\n",
"Epoch 80/100\n",
"19/19 [==============================] - 0s 2ms/step - loss: 0.3797 - accuracy: 0.8355 - val_loss: 0.4916 - val_accuracy: 0.7930\n",
"Epoch 81/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3617 - accuracy: 0.8470 - val_loss: 0.5047 - val_accuracy: 0.7930\n",
"Epoch 82/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3367 - accuracy: 0.8684 - val_loss: 0.5147 - val_accuracy: 0.7930\n",
"Epoch 83/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3655 - accuracy: 0.8421 - val_loss: 0.5242 - val_accuracy: 0.7812\n",
"Epoch 84/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3763 - accuracy: 0.8388 - val_loss: 0.5060 - val_accuracy: 0.7891\n",
"Epoch 85/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3884 - accuracy: 0.8339 - val_loss: 0.5157 - val_accuracy: 0.7930\n",
"Epoch 86/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3742 - accuracy: 0.8372 - val_loss: 0.5257 - val_accuracy: 0.7773\n",
"Epoch 87/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3708 - accuracy: 0.8372 - val_loss: 0.5074 - val_accuracy: 0.7891\n",
"Epoch 88/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3603 - accuracy: 0.8602 - val_loss: 0.5155 - val_accuracy: 0.7773\n",
"Epoch 89/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3920 - accuracy: 0.8224 - val_loss: 0.5002 - val_accuracy: 0.7969\n",
"Epoch 90/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4439 - accuracy: 0.8339 - val_loss: 0.6011 - val_accuracy: 0.7656\n",
"Epoch 91/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.4652 - accuracy: 0.7763 - val_loss: 0.5378 - val_accuracy: 0.7812\n",
"Epoch 92/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3601 - accuracy: 0.8355 - val_loss: 0.5055 - val_accuracy: 0.7734\n",
"Epoch 93/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3657 - accuracy: 0.8355 - val_loss: 0.5407 - val_accuracy: 0.7734\n",
"Epoch 94/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3511 - accuracy: 0.8438 - val_loss: 0.5436 - val_accuracy: 0.7930\n",
"Epoch 95/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3674 - accuracy: 0.8355 - val_loss: 0.5045 - val_accuracy: 0.8008\n",
"Epoch 96/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3333 - accuracy: 0.8536 - val_loss: 0.5117 - val_accuracy: 0.7891\n",
"Epoch 97/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3758 - accuracy: 0.8289 - val_loss: 0.5456 - val_accuracy: 0.7734\n",
"Epoch 98/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3933 - accuracy: 0.8322 - val_loss: 0.5440 - val_accuracy: 0.7891\n",
"Epoch 99/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3602 - accuracy: 0.8470 - val_loss: 0.5668 - val_accuracy: 0.7695\n",
"Epoch 100/100\n",
"19/19 [==============================] - 0s 3ms/step - loss: 0.3704 - accuracy: 0.8388 - val_loss: 0.5833 - val_accuracy: 0.7695\n",
"INFO:tensorflow:Using default config.\n",
"WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmpevumo5j8\n",
"INFO:tensorflow:Using the Keras model provided.\n",
"INFO:tensorflow:Using config: {'_model_dir': '/tmp/tmpevumo5j8', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true\n",
"graph_options {\n",
" rewrite_options {\n",
" meta_optimizer_iterations: ONE\n",
" }\n",
"}\n",
", '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_service': None, '_cluster_spec': ClusterSpec({}), '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}\n",
"INFO:tensorflow:Calling model_fn.\n",
"INFO:tensorflow:Done calling model_fn.\n",
"INFO:tensorflow:Warm-starting with WarmStartSettings: WarmStartSettings(ckpt_to_initialize_from='/tmp/tmpevumo5j8/keras/keras_model.ckpt', vars_to_warm_start='.*', var_name_to_vocab_info={}, var_name_to_prev_var_name={})\n",
"INFO:tensorflow:Warm-starting from: /tmp/tmpevumo5j8/keras/keras_model.ckpt\n",
"INFO:tensorflow:Warm-starting variables only in TRAINABLE_VARIABLES.\n",
"INFO:tensorflow:Warm-started 6 variables.\n",
"INFO:tensorflow:Create CheckpointSaverHook.\n",
"INFO:tensorflow:Graph was finalized.\n",
"INFO:tensorflow:Running local_init_op.\n",
"INFO:tensorflow:Done running local_init_op.\n",
"INFO:tensorflow:Calling checkpoint listeners before saving checkpoint 0...\n",
"INFO:tensorflow:Saving checkpoints for 0 into /tmp/tmpevumo5j8/model.ckpt.\n",
"INFO:tensorflow:Calling checkpoint listeners after saving checkpoint 0...\n",
"INFO:tensorflow:loss = 0.22045884455360465, step = 0\n",
"INFO:tensorflow:global_step/sec: 497.808\n",
"INFO:tensorflow:loss = 0.39396757359640855, step = 100 (0.202 sec)\n",
"INFO:tensorflow:global_step/sec: 629.551\n",
"INFO:tensorflow:loss = 0.4651438314904226, step = 200 (0.159 sec)\n",
"INFO:tensorflow:global_step/sec: 670.438\n",
"INFO:tensorflow:loss = 0.3310382162748624, step = 300 (0.149 sec)\n",
"INFO:tensorflow:global_step/sec: 628.074\n",
"INFO:tensorflow:loss = 0.3554056767934526, step = 400 (0.160 sec)\n",
"INFO:tensorflow:global_step/sec: 649.955\n",
"INFO:tensorflow:loss = 0.20120931138808373, step = 500 (0.153 sec)\n",
"INFO:tensorflow:global_step/sec: 660.843\n",
"INFO:tensorflow:loss = 0.3079627313018136, step = 600 (0.151 sec)\n",
"INFO:tensorflow:global_step/sec: 673.56\n",
"INFO:tensorflow:loss = 0.3931187124035205, step = 700 (0.148 sec)\n",
"INFO:tensorflow:global_step/sec: 669.549\n",
"INFO:tensorflow:loss = 0.3988775402374358, step = 800 (0.149 sec)\n",
"INFO:tensorflow:global_step/sec: 590.702\n",
"INFO:tensorflow:loss = 0.30356038931495277, step = 900 (0.170 sec)\n",
"INFO:tensorflow:global_step/sec: 658.024\n",
"INFO:tensorflow:loss = 0.4139062537855045, step = 1000 (0.151 sec)\n",
"INFO:tensorflow:global_step/sec: 661.364\n",
"INFO:tensorflow:loss = 0.39935327593045633, step = 1100 (0.152 sec)\n",
"INFO:tensorflow:global_step/sec: 659.311\n",
"INFO:tensorflow:loss = 0.3521440472377435, step = 1200 (0.151 sec)\n",
"INFO:tensorflow:global_step/sec: 675.087\n",
"INFO:tensorflow:loss = 0.31621408023056574, step = 1300 (0.149 sec)\n",
"INFO:tensorflow:global_step/sec: 622.009\n",
"INFO:tensorflow:loss = 0.29848663869779557, step = 1400 (0.160 sec)\n",
"INFO:tensorflow:global_step/sec: 611.909\n",
"INFO:tensorflow:loss = 0.3254593999154167, step = 1500 (0.167 sec)\n",
"INFO:tensorflow:global_step/sec: 683.177\n",
"INFO:tensorflow:loss = 0.19411982369501857, step = 1600 (0.143 sec)\n",
"INFO:tensorflow:global_step/sec: 680.19\n",
"INFO:tensorflow:loss = 0.2619774575010059, step = 1700 (0.147 sec)\n",
"INFO:tensorflow:global_step/sec: 645.56\n",
"INFO:tensorflow:loss = 0.49989703113285344, step = 1800 (0.155 sec)\n",
"INFO:tensorflow:global_step/sec: 674.074\n",
"INFO:tensorflow:loss = 0.4144136135395655, step = 1900 (0.148 sec)\n",
"INFO:tensorflow:Calling checkpoint listeners before saving checkpoint 1960...\n",
"INFO:tensorflow:Saving checkpoints for 1960 into /tmp/tmpevumo5j8/model.ckpt.\n",
"INFO:tensorflow:Calling checkpoint listeners after saving checkpoint 1960...\n",
"INFO:tensorflow:Loss for final step: 0.10542060632906214.\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<tensorflow_estimator.python.estimator.estimator.EstimatorV2 at 0x7f96a6dc8e10>"
]
},
"metadata": {
"tags": []
},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "MHo2DzFNjoYt"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment