Skip to content

Instantly share code, notes, and snippets.

@eblancoh
Created May 22, 2018 12:44
Show Gist options
  • Save eblancoh/f1e24056569106d28010554644e07f5e to your computer and use it in GitHub Desktop.
Save eblancoh/f1e24056569106d28010554644e07f5e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Regresión Lineal con TensorFlow para grandes datasets"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import tensorflow as tf"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'1.3.0'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.__version__"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Además de TensorFlow, importamos algunas librerías que pueden resultarnos de utilidad\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Generamos un buen número de datos aleatorios de los que hacer uso para realizar la regresión:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Elegimos el número de variables independientes\n",
"num_features = 1000000\n",
"# Generamos los valores de x \n",
"x_data = np.linspace(0.0, 10.0, num_features)\n",
"# Y les metemos algo de ruido\n",
"x_data += np.random.uniform(-0.5,0.5,num_features)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.48072575, -0.02424944, -0.32384839, ..., 10.17069357,\n",
" 10.23588842, 10.11950999])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_data"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Generamos las variables dependientes:\n",
"\n",
"`y_label = m · x_data + b + ruido`\n",
"\n",
"Elegimos `m = 2.0` y `b = 1.5`"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"y_label = 2.0 * x_data + 1.5 + np.random.normal(-2, 2, num_features)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Pandas nos permite ordenar en formato tabular todas nuestras variables para acceder de manera rápida a ellas\n",
"my_data = pd.concat([pd.DataFrame(data=x_data,columns=[\"x_data\"]),\n",
" pd.DataFrame(data=y_label,columns=[\"y_label\"])], \n",
" axis = 1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>x_data</th>\n",
" <th>y_label</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.480726</td>\n",
" <td>3.379555</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-0.024249</td>\n",
" <td>0.376482</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.323848</td>\n",
" <td>0.755134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.376311</td>\n",
" <td>3.218991</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.432602</td>\n",
" <td>-1.154043</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" x_data y_label\n",
"0 0.480726 3.379555\n",
"1 -0.024249 0.376482\n",
"2 -0.323848 0.755134\n",
"3 0.376311 3.218991\n",
"4 0.432602 -1.154043"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Una breve muestra de cómo la variable \"my_data\" recoge las variables sobre las que se realizará la regresión\n",
"my_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f59ad622710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Elegimos una muestra de 500 pares de datos para su representación. \n",
"sampling = my_data.sample(n = 500)\n",
"plt.scatter(sampling[\"x_data\"], sampling[\"y_label\"], s = 7)\n",
"plt.grid()\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"y\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dado el elevado número de variables que estamos manejando, debemos partir nuestro dataset en batches de un determinado tamaño para entrenar nuestro modelo.\n",
"Elegiremos un tamaño de batch de 10 puntos al azar cada vez."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"batch_size = 10"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Definimos las variables de la pendiente y la intersección:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Inicializamos con valores aleatorios como variables la pendiente y la intersección \n",
"# de nuestra recta a ajustar a los datos.\n",
"misc = np.random.rand(2)\n",
"\n",
"m = tf.Variable(misc[0], dtype = tf.float32, name = 'slope')\n",
"b = tf.Variable(misc[1], dtype = tf.float32, name = 'intercept')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Construimos los placeholders indicando el type del dato deseado y su shape."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"x = tf.placeholder(tf.float32, [batch_size], name = 'x')\n",
"y = tf.placeholder(tf.float32, [batch_size], name = 'y')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Se define el grafo de nuestro modelo, que en este caso es muy simple:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Se define la operación del ajuste lineal\n",
"y_model = m * x + b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La función de pérdida que vamos a usar se puede construir fácilmente con TensorFlow:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Elegimos como función de coste la RMS.\n",
"error = tf.reduce_sum(tf.square(y - y_model), name = 'loss_func')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"El optimizador vuelve a definirse. Indicamos una tasa de aprendizaje inicial."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Podemos escoger el optimizador que deseemos. En este caso recurrimos a tf.train.GradientDescentOptimizer\n",
"optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.0001, name = 'optim')\n",
"train = optimizer.minimize(error)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"¡Inicializamos las variables con tf.global_variables_initializer()!"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"init = tf.global_variables_initializer()"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Volvemos a crear y a ejecutar una sesión."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"with tf.Session() as sess:\n",
" \n",
" sess.run(init)\n",
" # Elegimos un número de batches \n",
" num_batches = 10000\n",
" \n",
" for i in range(num_batches):\n",
" \n",
" # Creamos conjuntos de índices aleatorios de tamaño batch_size para muestrear en el dataset\n",
" rand_ind = np.random.randint(num_features, size = batch_size)\n",
" \n",
" # Pasamos las variables en un feed dictionary: sess.run(operation, feed_dict={...})\n",
" # La operación es la dirigida a minimizar el error a través del optimizador elegido\n",
" sess.run(train, feed_dict= {x: x_data[rand_ind], y:y_label[rand_ind]})\n",
" \n",
" # Los resultados de la pendiente y el punto de intersección \n",
" final_m, final_b = sess.run([m, b])\n",
" \n",
" # sess.graph contiene la definición del grafo. Con esto habilitaremos el Graph Visualizer en tensorboard.\n",
" # Desde un terminal seremos capaces de lanzar tensorboard. Las instrucciones quedan indicadas después de \n",
" # este notebook.\n",
" file_writer = tf.summary.FileWriter(\"log/regresion_batches_tensorflow/\", sess.graph)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.98998 -0.503472\n"
]
}
],
"source": [
"# Los valores estimados para la pendiente \"m\" y el punto de intersección \"b\" son respectivamente:\n",
"print (final_m, final_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Evaluación del ajuste"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Elegimos un conjunto de variables independientes de prueba y obtenemos su predicción \n",
"x_test = np.linspace(-1, 12, 50)\n",
"y_test = final_m * x_test + final_b"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nDeHnaQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f59ad241cc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(sampling[\"x_data\"], sampling[\"y_label\"], s = 7)\n",
"plt.plot(x_test, y_test, 'r', linewidth = .75)\n",
"plt.grid()\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"y\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La línea roja estimada por nuestro modelo se ajusta adecuadamente a la nube de puntos. \n",
"El coeficiente de determinación r-squared para nuestro ajuste a toda la nube de puntos:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Suma de los cuadrados de los residuos:\n",
"SS_res = np.sum((y_label - (final_m * x_data + final_b))**2)\n",
"# La suma de los cuadrados totales se define como:\n",
"SS_tot = np.sum((y_label - np.mean(y_label))**2)\n",
"\n",
"# El coeficiente r**2 se define como:\n",
"r_squared = 1 - SS_res/SS_tot"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.89381264823729345"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r_squared"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"A pesar de la dispersión que presenta nuestro dataset, r**2 es > 0.8. Nuestro ajuste podría considerarse de nuevo correcto."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## tf.estimator API"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"En esta parte del notebook se proporciona una introducción al uso de los Estimadores en TensorFlow. Estos estimadores son\n",
"una API de TensorFlow que simplifican la programación de algortimos de Machine Learning. \n",
"Los Estimadores encapsulan el entrenamiento, evaluación y predicción.\n",
"Además, son capaces de construir el grafo, inicializar variables, crear checkpoints del modelo y guardar summaries para TensorBoard."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"feat_cols = [tf.feature_column.numeric_column(\"x\", shape=[1])]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Using default config.\n",
"WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmpt20_mtn9\n",
"INFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_log_step_count_steps': 100, '_keep_checkpoint_max': 5, '_tf_random_seed': 1, '_session_config': None, '_model_dir': '/tmp/tmpt20_mtn9', '_save_summary_steps': 100, '_keep_checkpoint_every_n_hours': 10000, '_save_checkpoints_steps': None}\n"
]
}
],
"source": [
"estimator = tf.estimator.LinearRegressor(feature_columns = feat_cols)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Partición del dataset en conjuntos de entrenamiento y evaluación"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Hacemos uso de la función train_test_split de sklearn\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Definimos los datos de entrenamiento y evaluación del modelo. Elegimos una razón 3:1\n",
"x_train, x_eval, y_train, y_eval = train_test_split(x_data, y_label, test_size=0.25)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(750000,) (750000,)\n",
"(250000,) (250000,)\n"
]
}
],
"source": [
"print(x_train.shape, y_train.shape)\n",
"print(x_eval.shape, y_eval.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generación de los inputs con los que alimentaremos al estimador"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Haciendo uso de \n",
"tf.estimator.inputs.numpy_input_fn(\n",
" x,\n",
" y,\n",
" batch_size,\n",
" num_epochs,\n",
" shuffle,\n",
" queue_capacity,\n",
" num_threads\n",
")\n",
"se nos devolverá una función que nos permitirá alimentar nuestro modelo como si fuera un feed dictionary con arrays de numpy.\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"input_func = tf.estimator.inputs.numpy_input_fn({\"x\": x_train}, y_train, batch_size=10, num_epochs=None, shuffle=True)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"train_input_func = tf.estimator.inputs.numpy_input_fn({\"x\": x_train}, y_train, batch_size=10, num_epochs=10000, shuffle=False)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"eval_input_func = tf.estimator.inputs.numpy_input_fn({\"x\": x_eval}, y_eval, batch_size=10, num_epochs=10000, shuffle=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Entrenamiento del estimador"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Entrenaremos el estimador, que creará primero un checkpoint, realizarálos pasos necesarios y guardará el modelo enese mismo checkpoint, a partir del cual se puede bien retomar el entrenamiento, bien obtener predicciones dadas nuevas variables independientes.\n",
"\n",
"Este paso tardará un poco en ejecutarse. Paciencia."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Create CheckpointSaverHook.\n",
"INFO:tensorflow:Saving checkpoints for 1 into /tmp/tmpt20_mtn9/model.ckpt.\n",
"INFO:tensorflow:step = 1, loss = 955.156\n",
"INFO:tensorflow:global_step/sec: 571.998\n",
"INFO:tensorflow:step = 101, loss = 40.9235 (0.181 sec)\n",
"INFO:tensorflow:global_step/sec: 613.515\n",
"INFO:tensorflow:step = 201, loss = 53.7345 (0.164 sec)\n",
"INFO:tensorflow:global_step/sec: 504.202\n",
"INFO:tensorflow:step = 301, loss = 46.6652 (0.193 sec)\n",
"INFO:tensorflow:global_step/sec: 614.667\n",
"INFO:tensorflow:step = 401, loss = 20.678 (0.167 sec)\n",
"INFO:tensorflow:global_step/sec: 461.453\n",
"INFO:tensorflow:step = 501, loss = 28.1145 (0.211 sec)\n",
"INFO:tensorflow:global_step/sec: 585.833\n",
"INFO:tensorflow:step = 601, loss = 61.9846 (0.170 sec)\n",
"INFO:tensorflow:global_step/sec: 626.145\n",
"INFO:tensorflow:step = 701, loss = 57.5413 (0.162 sec)\n",
"INFO:tensorflow:global_step/sec: 559.851\n",
"INFO:tensorflow:step = 801, loss = 64.4317 (0.176 sec)\n",
"INFO:tensorflow:global_step/sec: 706.753\n",
"INFO:tensorflow:step = 901, loss = 51.2241 (0.143 sec)\n",
"INFO:tensorflow:Saving checkpoints for 1000 into /tmp/tmpt20_mtn9/model.ckpt.\n",
"INFO:tensorflow:Loss for final step: 49.2191.\n"
]
},
{
"data": {
"text/plain": [
"<tensorflow.python.estimator.canned.linear.LinearRegressor at 0x7f59ad25a4a8>"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"estimator.train(input_fn = input_func, steps = 1000)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Starting evaluation at 2018-05-22-10:29:04\n",
"INFO:tensorflow:Restoring parameters from /tmp/tmpt20_mtn9/model.ckpt-1000\n",
"INFO:tensorflow:Evaluation [1/1000]\n",
"INFO:tensorflow:Evaluation [2/1000]\n",
"INFO:tensorflow:Evaluation [3/1000]\n",
"INFO:tensorflow:Evaluation [4/1000]\n",
"INFO:tensorflow:Evaluation [5/1000]\n",
"INFO:tensorflow:Evaluation [6/1000]\n",
"INFO:tensorflow:Evaluation [7/1000]\n",
"INFO:tensorflow:Evaluation [8/1000]\n",
"INFO:tensorflow:Evaluation [9/1000]\n",
"INFO:tensorflow:Evaluation [10/1000]\n",
"INFO:tensorflow:Evaluation [11/1000]\n",
"INFO:tensorflow:Evaluation [12/1000]\n",
"INFO:tensorflow:Evaluation [13/1000]\n",
"INFO:tensorflow:Evaluation [14/1000]\n",
"INFO:tensorflow:Evaluation [15/1000]\n",
"INFO:tensorflow:Evaluation [16/1000]\n",
"INFO:tensorflow:Evaluation [17/1000]\n",
"INFO:tensorflow:Evaluation [18/1000]\n",
"INFO:tensorflow:Evaluation [19/1000]\n",
"INFO:tensorflow:Evaluation [20/1000]\n",
"INFO:tensorflow:Evaluation [21/1000]\n",
"INFO:tensorflow:Evaluation [22/1000]\n",
"INFO:tensorflow:Evaluation [23/1000]\n",
"INFO:tensorflow:Evaluation [24/1000]\n",
"INFO:tensorflow:Evaluation [25/1000]\n",
"INFO:tensorflow:Evaluation [26/1000]\n",
"INFO:tensorflow:Evaluation [27/1000]\n",
"INFO:tensorflow:Evaluation [28/1000]\n",
"INFO:tensorflow:Evaluation [29/1000]\n",
"INFO:tensorflow:Evaluation [30/1000]\n",
"INFO:tensorflow:Evaluation [31/1000]\n",
"INFO:tensorflow:Evaluation [32/1000]\n",
"INFO:tensorflow:Evaluation [33/1000]\n",
"INFO:tensorflow:Evaluation [34/1000]\n",
"INFO:tensorflow:Evaluation [35/1000]\n",
"INFO:tensorflow:Evaluation [36/1000]\n",
"INFO:tensorflow:Evaluation [37/1000]\n",
"INFO:tensorflow:Evaluation [38/1000]\n",
"INFO:tensorflow:Evaluation [39/1000]\n",
"INFO:tensorflow:Evaluation [40/1000]\n",
"INFO:tensorflow:Evaluation [41/1000]\n",
"INFO:tensorflow:Evaluation [42/1000]\n",
"INFO:tensorflow:Evaluation [43/1000]\n",
"INFO:tensorflow:Evaluation [44/1000]\n",
"INFO:tensorflow:Evaluation [45/1000]\n",
"INFO:tensorflow:Evaluation [46/1000]\n",
"INFO:tensorflow:Evaluation [47/1000]\n",
"INFO:tensorflow:Evaluation [48/1000]\n",
"INFO:tensorflow:Evaluation [49/1000]\n",
"INFO:tensorflow:Evaluation [50/1000]\n",
"INFO:tensorflow:Evaluation [51/1000]\n",
"INFO:tensorflow:Evaluation [52/1000]\n",
"INFO:tensorflow:Evaluation [53/1000]\n",
"INFO:tensorflow:Evaluation [54/1000]\n",
"INFO:tensorflow:Evaluation [55/1000]\n",
"INFO:tensorflow:Evaluation [56/1000]\n",
"INFO:tensorflow:Evaluation [57/1000]\n",
"INFO:tensorflow:Evaluation [58/1000]\n",
"INFO:tensorflow:Evaluation [59/1000]\n",
"INFO:tensorflow:Evaluation [60/1000]\n",
"INFO:tensorflow:Evaluation [61/1000]\n",
"INFO:tensorflow:Evaluation [62/1000]\n",
"INFO:tensorflow:Evaluation [63/1000]\n",
"INFO:tensorflow:Evaluation [64/1000]\n",
"INFO:tensorflow:Evaluation [65/1000]\n",
"INFO:tensorflow:Evaluation [66/1000]\n",
"INFO:tensorflow:Evaluation [67/1000]\n",
"INFO:tensorflow:Evaluation [68/1000]\n",
"INFO:tensorflow:Evaluation [69/1000]\n",
"INFO:tensorflow:Evaluation [70/1000]\n",
"INFO:tensorflow:Evaluation [71/1000]\n",
"INFO:tensorflow:Evaluation [72/1000]\n",
"INFO:tensorflow:Evaluation [73/1000]\n",
"INFO:tensorflow:Evaluation [74/1000]\n",
"INFO:tensorflow:Evaluation [75/1000]\n",
"INFO:tensorflow:Evaluation [76/1000]\n",
"INFO:tensorflow:Evaluation [77/1000]\n",
"INFO:tensorflow:Evaluation [78/1000]\n",
"INFO:tensorflow:Evaluation [79/1000]\n",
"INFO:tensorflow:Evaluation [80/1000]\n",
"INFO:tensorflow:Evaluation [81/1000]\n",
"INFO:tensorflow:Evaluation [82/1000]\n",
"INFO:tensorflow:Evaluation [83/1000]\n",
"INFO:tensorflow:Evaluation [84/1000]\n",
"INFO:tensorflow:Evaluation [85/1000]\n",
"INFO:tensorflow:Evaluation [86/1000]\n",
"INFO:tensorflow:Evaluation [87/1000]\n",
"INFO:tensorflow:Evaluation [88/1000]\n",
"INFO:tensorflow:Evaluation [89/1000]\n",
"INFO:tensorflow:Evaluation [90/1000]\n",
"INFO:tensorflow:Evaluation [91/1000]\n",
"INFO:tensorflow:Evaluation [92/1000]\n",
"INFO:tensorflow:Evaluation [93/1000]\n",
"INFO:tensorflow:Evaluation [94/1000]\n",
"INFO:tensorflow:Evaluation [95/1000]\n",
"INFO:tensorflow:Evaluation [96/1000]\n",
"INFO:tensorflow:Evaluation [97/1000]\n",
"INFO:tensorflow:Evaluation [98/1000]\n",
"INFO:tensorflow:Evaluation [99/1000]\n",
"INFO:tensorflow:Evaluation [100/1000]\n",
"INFO:tensorflow:Evaluation [101/1000]\n",
"INFO:tensorflow:Evaluation [102/1000]\n",
"INFO:tensorflow:Evaluation [103/1000]\n",
"INFO:tensorflow:Evaluation [104/1000]\n",
"INFO:tensorflow:Evaluation [105/1000]\n",
"INFO:tensorflow:Evaluation [106/1000]\n",
"INFO:tensorflow:Evaluation [107/1000]\n",
"INFO:tensorflow:Evaluation [108/1000]\n",
"INFO:tensorflow:Evaluation [109/1000]\n",
"INFO:tensorflow:Evaluation [110/1000]\n",
"INFO:tensorflow:Evaluation [111/1000]\n",
"INFO:tensorflow:Evaluation [112/1000]\n",
"INFO:tensorflow:Evaluation [113/1000]\n",
"INFO:tensorflow:Evaluation [114/1000]\n",
"INFO:tensorflow:Evaluation [115/1000]\n",
"INFO:tensorflow:Evaluation [116/1000]\n",
"INFO:tensorflow:Evaluation [117/1000]\n",
"INFO:tensorflow:Evaluation [118/1000]\n",
"INFO:tensorflow:Evaluation [119/1000]\n",
"INFO:tensorflow:Evaluation [120/1000]\n",
"INFO:tensorflow:Evaluation [121/1000]\n",
"INFO:tensorflow:Evaluation [122/1000]\n",
"INFO:tensorflow:Evaluation [123/1000]\n",
"INFO:tensorflow:Evaluation [124/1000]\n",
"INFO:tensorflow:Evaluation [125/1000]\n",
"INFO:tensorflow:Evaluation [126/1000]\n",
"INFO:tensorflow:Evaluation [127/1000]\n",
"INFO:tensorflow:Evaluation [128/1000]\n",
"INFO:tensorflow:Evaluation [129/1000]\n",
"INFO:tensorflow:Evaluation [130/1000]\n",
"INFO:tensorflow:Evaluation [131/1000]\n",
"INFO:tensorflow:Evaluation [132/1000]\n",
"INFO:tensorflow:Evaluation [133/1000]\n",
"INFO:tensorflow:Evaluation [134/1000]\n",
"INFO:tensorflow:Evaluation [135/1000]\n",
"INFO:tensorflow:Evaluation [136/1000]\n",
"INFO:tensorflow:Evaluation [137/1000]\n",
"INFO:tensorflow:Evaluation [138/1000]\n",
"INFO:tensorflow:Evaluation [139/1000]\n",
"INFO:tensorflow:Evaluation [140/1000]\n",
"INFO:tensorflow:Evaluation [141/1000]\n",
"INFO:tensorflow:Evaluation [142/1000]\n",
"INFO:tensorflow:Evaluation [143/1000]\n",
"INFO:tensorflow:Evaluation [144/1000]\n",
"INFO:tensorflow:Evaluation [145/1000]\n",
"INFO:tensorflow:Evaluation [146/1000]\n",
"INFO:tensorflow:Evaluation [147/1000]\n",
"INFO:tensorflow:Evaluation [148/1000]\n",
"INFO:tensorflow:Evaluation [149/1000]\n",
"INFO:tensorflow:Evaluation [150/1000]\n",
"INFO:tensorflow:Evaluation [151/1000]\n",
"INFO:tensorflow:Evaluation [152/1000]\n",
"INFO:tensorflow:Evaluation [153/1000]\n",
"INFO:tensorflow:Evaluation [154/1000]\n",
"INFO:tensorflow:Evaluation [155/1000]\n",
"INFO:tensorflow:Evaluation [156/1000]\n",
"INFO:tensorflow:Evaluation [157/1000]\n",
"INFO:tensorflow:Evaluation [158/1000]\n",
"INFO:tensorflow:Evaluation [159/1000]\n",
"INFO:tensorflow:Evaluation [160/1000]\n",
"INFO:tensorflow:Evaluation [161/1000]\n",
"INFO:tensorflow:Evaluation [162/1000]\n",
"INFO:tensorflow:Evaluation [163/1000]\n",
"INFO:tensorflow:Evaluation [164/1000]\n",
"INFO:tensorflow:Evaluation [165/1000]\n",
"INFO:tensorflow:Evaluation [166/1000]\n",
"INFO:tensorflow:Evaluation [167/1000]\n",
"INFO:tensorflow:Evaluation [168/1000]\n",
"INFO:tensorflow:Evaluation [169/1000]\n",
"INFO:tensorflow:Evaluation [170/1000]\n",
"INFO:tensorflow:Evaluation [171/1000]\n",
"INFO:tensorflow:Evaluation [172/1000]\n",
"INFO:tensorflow:Evaluation [173/1000]\n",
"INFO:tensorflow:Evaluation [174/1000]\n",
"INFO:tensorflow:Evaluation [175/1000]\n",
"INFO:tensorflow:Evaluation [176/1000]\n",
"INFO:tensorflow:Evaluation [177/1000]\n",
"INFO:tensorflow:Evaluation [178/1000]\n",
"INFO:tensorflow:Evaluation [179/1000]\n",
"INFO:tensorflow:Evaluation [180/1000]\n",
"INFO:tensorflow:Evaluation [181/1000]\n",
"INFO:tensorflow:Evaluation [182/1000]\n",
"INFO:tensorflow:Evaluation [183/1000]\n",
"INFO:tensorflow:Evaluation [184/1000]\n",
"INFO:tensorflow:Evaluation [185/1000]\n",
"INFO:tensorflow:Evaluation [186/1000]\n",
"INFO:tensorflow:Evaluation [187/1000]\n",
"INFO:tensorflow:Evaluation [188/1000]\n",
"INFO:tensorflow:Evaluation [189/1000]\n",
"INFO:tensorflow:Evaluation [190/1000]\n",
"INFO:tensorflow:Evaluation [191/1000]\n",
"INFO:tensorflow:Evaluation [192/1000]\n",
"INFO:tensorflow:Evaluation [193/1000]\n",
"INFO:tensorflow:Evaluation [194/1000]\n",
"INFO:tensorflow:Evaluation [195/1000]\n",
"INFO:tensorflow:Evaluation [196/1000]\n",
"INFO:tensorflow:Evaluation [197/1000]\n",
"INFO:tensorflow:Evaluation [198/1000]\n",
"INFO:tensorflow:Evaluation [199/1000]\n",
"INFO:tensorflow:Evaluation [200/1000]\n",
"INFO:tensorflow:Evaluation [201/1000]\n",
"INFO:tensorflow:Evaluation [202/1000]\n",
"INFO:tensorflow:Evaluation [203/1000]\n",
"INFO:tensorflow:Evaluation [204/1000]\n",
"INFO:tensorflow:Evaluation [205/1000]\n",
"INFO:tensorflow:Evaluation [206/1000]\n",
"INFO:tensorflow:Evaluation [207/1000]\n",
"INFO:tensorflow:Evaluation [208/1000]\n",
"INFO:tensorflow:Evaluation [209/1000]\n",
"INFO:tensorflow:Evaluation [210/1000]\n",
"INFO:tensorflow:Evaluation [211/1000]\n",
"INFO:tensorflow:Evaluation [212/1000]\n",
"INFO:tensorflow:Evaluation [213/1000]\n",
"INFO:tensorflow:Evaluation [214/1000]\n",
"INFO:tensorflow:Evaluation [215/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [216/1000]\n",
"INFO:tensorflow:Evaluation [217/1000]\n",
"INFO:tensorflow:Evaluation [218/1000]\n",
"INFO:tensorflow:Evaluation [219/1000]\n",
"INFO:tensorflow:Evaluation [220/1000]\n",
"INFO:tensorflow:Evaluation [221/1000]\n",
"INFO:tensorflow:Evaluation [222/1000]\n",
"INFO:tensorflow:Evaluation [223/1000]\n",
"INFO:tensorflow:Evaluation [224/1000]\n",
"INFO:tensorflow:Evaluation [225/1000]\n",
"INFO:tensorflow:Evaluation [226/1000]\n",
"INFO:tensorflow:Evaluation [227/1000]\n",
"INFO:tensorflow:Evaluation [228/1000]\n",
"INFO:tensorflow:Evaluation [229/1000]\n",
"INFO:tensorflow:Evaluation [230/1000]\n",
"INFO:tensorflow:Evaluation [231/1000]\n",
"INFO:tensorflow:Evaluation [232/1000]\n",
"INFO:tensorflow:Evaluation [233/1000]\n",
"INFO:tensorflow:Evaluation [234/1000]\n",
"INFO:tensorflow:Evaluation [235/1000]\n",
"INFO:tensorflow:Evaluation [236/1000]\n",
"INFO:tensorflow:Evaluation [237/1000]\n",
"INFO:tensorflow:Evaluation [238/1000]\n",
"INFO:tensorflow:Evaluation [239/1000]\n",
"INFO:tensorflow:Evaluation [240/1000]\n",
"INFO:tensorflow:Evaluation [241/1000]\n",
"INFO:tensorflow:Evaluation [242/1000]\n",
"INFO:tensorflow:Evaluation [243/1000]\n",
"INFO:tensorflow:Evaluation [244/1000]\n",
"INFO:tensorflow:Evaluation [245/1000]\n",
"INFO:tensorflow:Evaluation [246/1000]\n",
"INFO:tensorflow:Evaluation [247/1000]\n",
"INFO:tensorflow:Evaluation [248/1000]\n",
"INFO:tensorflow:Evaluation [249/1000]\n",
"INFO:tensorflow:Evaluation [250/1000]\n",
"INFO:tensorflow:Evaluation [251/1000]\n",
"INFO:tensorflow:Evaluation [252/1000]\n",
"INFO:tensorflow:Evaluation [253/1000]\n",
"INFO:tensorflow:Evaluation [254/1000]\n",
"INFO:tensorflow:Evaluation [255/1000]\n",
"INFO:tensorflow:Evaluation [256/1000]\n",
"INFO:tensorflow:Evaluation [257/1000]\n",
"INFO:tensorflow:Evaluation [258/1000]\n",
"INFO:tensorflow:Evaluation [259/1000]\n",
"INFO:tensorflow:Evaluation [260/1000]\n",
"INFO:tensorflow:Evaluation [261/1000]\n",
"INFO:tensorflow:Evaluation [262/1000]\n",
"INFO:tensorflow:Evaluation [263/1000]\n",
"INFO:tensorflow:Evaluation [264/1000]\n",
"INFO:tensorflow:Evaluation [265/1000]\n",
"INFO:tensorflow:Evaluation [266/1000]\n",
"INFO:tensorflow:Evaluation [267/1000]\n",
"INFO:tensorflow:Evaluation [268/1000]\n",
"INFO:tensorflow:Evaluation [269/1000]\n",
"INFO:tensorflow:Evaluation [270/1000]\n",
"INFO:tensorflow:Evaluation [271/1000]\n",
"INFO:tensorflow:Evaluation [272/1000]\n",
"INFO:tensorflow:Evaluation [273/1000]\n",
"INFO:tensorflow:Evaluation [274/1000]\n",
"INFO:tensorflow:Evaluation [275/1000]\n",
"INFO:tensorflow:Evaluation [276/1000]\n",
"INFO:tensorflow:Evaluation [277/1000]\n",
"INFO:tensorflow:Evaluation [278/1000]\n",
"INFO:tensorflow:Evaluation [279/1000]\n",
"INFO:tensorflow:Evaluation [280/1000]\n",
"INFO:tensorflow:Evaluation [281/1000]\n",
"INFO:tensorflow:Evaluation [282/1000]\n",
"INFO:tensorflow:Evaluation [283/1000]\n",
"INFO:tensorflow:Evaluation [284/1000]\n",
"INFO:tensorflow:Evaluation [285/1000]\n",
"INFO:tensorflow:Evaluation [286/1000]\n",
"INFO:tensorflow:Evaluation [287/1000]\n",
"INFO:tensorflow:Evaluation [288/1000]\n",
"INFO:tensorflow:Evaluation [289/1000]\n",
"INFO:tensorflow:Evaluation [290/1000]\n",
"INFO:tensorflow:Evaluation [291/1000]\n",
"INFO:tensorflow:Evaluation [292/1000]\n",
"INFO:tensorflow:Evaluation [293/1000]\n",
"INFO:tensorflow:Evaluation [294/1000]\n",
"INFO:tensorflow:Evaluation [295/1000]\n",
"INFO:tensorflow:Evaluation [296/1000]\n",
"INFO:tensorflow:Evaluation [297/1000]\n",
"INFO:tensorflow:Evaluation [298/1000]\n",
"INFO:tensorflow:Evaluation [299/1000]\n",
"INFO:tensorflow:Evaluation [300/1000]\n",
"INFO:tensorflow:Evaluation [301/1000]\n",
"INFO:tensorflow:Evaluation [302/1000]\n",
"INFO:tensorflow:Evaluation [303/1000]\n",
"INFO:tensorflow:Evaluation [304/1000]\n",
"INFO:tensorflow:Evaluation [305/1000]\n",
"INFO:tensorflow:Evaluation [306/1000]\n",
"INFO:tensorflow:Evaluation [307/1000]\n",
"INFO:tensorflow:Evaluation [308/1000]\n",
"INFO:tensorflow:Evaluation [309/1000]\n",
"INFO:tensorflow:Evaluation [310/1000]\n",
"INFO:tensorflow:Evaluation [311/1000]\n",
"INFO:tensorflow:Evaluation [312/1000]\n",
"INFO:tensorflow:Evaluation [313/1000]\n",
"INFO:tensorflow:Evaluation [314/1000]\n",
"INFO:tensorflow:Evaluation [315/1000]\n",
"INFO:tensorflow:Evaluation [316/1000]\n",
"INFO:tensorflow:Evaluation [317/1000]\n",
"INFO:tensorflow:Evaluation [318/1000]\n",
"INFO:tensorflow:Evaluation [319/1000]\n",
"INFO:tensorflow:Evaluation [320/1000]\n",
"INFO:tensorflow:Evaluation [321/1000]\n",
"INFO:tensorflow:Evaluation [322/1000]\n",
"INFO:tensorflow:Evaluation [323/1000]\n",
"INFO:tensorflow:Evaluation [324/1000]\n",
"INFO:tensorflow:Evaluation [325/1000]\n",
"INFO:tensorflow:Evaluation [326/1000]\n",
"INFO:tensorflow:Evaluation [327/1000]\n",
"INFO:tensorflow:Evaluation [328/1000]\n",
"INFO:tensorflow:Evaluation [329/1000]\n",
"INFO:tensorflow:Evaluation [330/1000]\n",
"INFO:tensorflow:Evaluation [331/1000]\n",
"INFO:tensorflow:Evaluation [332/1000]\n",
"INFO:tensorflow:Evaluation [333/1000]\n",
"INFO:tensorflow:Evaluation [334/1000]\n",
"INFO:tensorflow:Evaluation [335/1000]\n",
"INFO:tensorflow:Evaluation [336/1000]\n",
"INFO:tensorflow:Evaluation [337/1000]\n",
"INFO:tensorflow:Evaluation [338/1000]\n",
"INFO:tensorflow:Evaluation [339/1000]\n",
"INFO:tensorflow:Evaluation [340/1000]\n",
"INFO:tensorflow:Evaluation [341/1000]\n",
"INFO:tensorflow:Evaluation [342/1000]\n",
"INFO:tensorflow:Evaluation [343/1000]\n",
"INFO:tensorflow:Evaluation [344/1000]\n",
"INFO:tensorflow:Evaluation [345/1000]\n",
"INFO:tensorflow:Evaluation [346/1000]\n",
"INFO:tensorflow:Evaluation [347/1000]\n",
"INFO:tensorflow:Evaluation [348/1000]\n",
"INFO:tensorflow:Evaluation [349/1000]\n",
"INFO:tensorflow:Evaluation [350/1000]\n",
"INFO:tensorflow:Evaluation [351/1000]\n",
"INFO:tensorflow:Evaluation [352/1000]\n",
"INFO:tensorflow:Evaluation [353/1000]\n",
"INFO:tensorflow:Evaluation [354/1000]\n",
"INFO:tensorflow:Evaluation [355/1000]\n",
"INFO:tensorflow:Evaluation [356/1000]\n",
"INFO:tensorflow:Evaluation [357/1000]\n",
"INFO:tensorflow:Evaluation [358/1000]\n",
"INFO:tensorflow:Evaluation [359/1000]\n",
"INFO:tensorflow:Evaluation [360/1000]\n",
"INFO:tensorflow:Evaluation [361/1000]\n",
"INFO:tensorflow:Evaluation [362/1000]\n",
"INFO:tensorflow:Evaluation [363/1000]\n",
"INFO:tensorflow:Evaluation [364/1000]\n",
"INFO:tensorflow:Evaluation [365/1000]\n",
"INFO:tensorflow:Evaluation [366/1000]\n",
"INFO:tensorflow:Evaluation [367/1000]\n",
"INFO:tensorflow:Evaluation [368/1000]\n",
"INFO:tensorflow:Evaluation [369/1000]\n",
"INFO:tensorflow:Evaluation [370/1000]\n",
"INFO:tensorflow:Evaluation [371/1000]\n",
"INFO:tensorflow:Evaluation [372/1000]\n",
"INFO:tensorflow:Evaluation [373/1000]\n",
"INFO:tensorflow:Evaluation [374/1000]\n",
"INFO:tensorflow:Evaluation [375/1000]\n",
"INFO:tensorflow:Evaluation [376/1000]\n",
"INFO:tensorflow:Evaluation [377/1000]\n",
"INFO:tensorflow:Evaluation [378/1000]\n",
"INFO:tensorflow:Evaluation [379/1000]\n",
"INFO:tensorflow:Evaluation [380/1000]\n",
"INFO:tensorflow:Evaluation [381/1000]\n",
"INFO:tensorflow:Evaluation [382/1000]\n",
"INFO:tensorflow:Evaluation [383/1000]\n",
"INFO:tensorflow:Evaluation [384/1000]\n",
"INFO:tensorflow:Evaluation [385/1000]\n",
"INFO:tensorflow:Evaluation [386/1000]\n",
"INFO:tensorflow:Evaluation [387/1000]\n",
"INFO:tensorflow:Evaluation [388/1000]\n",
"INFO:tensorflow:Evaluation [389/1000]\n",
"INFO:tensorflow:Evaluation [390/1000]\n",
"INFO:tensorflow:Evaluation [391/1000]\n",
"INFO:tensorflow:Evaluation [392/1000]\n",
"INFO:tensorflow:Evaluation [393/1000]\n",
"INFO:tensorflow:Evaluation [394/1000]\n",
"INFO:tensorflow:Evaluation [395/1000]\n",
"INFO:tensorflow:Evaluation [396/1000]\n",
"INFO:tensorflow:Evaluation [397/1000]\n",
"INFO:tensorflow:Evaluation [398/1000]\n",
"INFO:tensorflow:Evaluation [399/1000]\n",
"INFO:tensorflow:Evaluation [400/1000]\n",
"INFO:tensorflow:Evaluation [401/1000]\n",
"INFO:tensorflow:Evaluation [402/1000]\n",
"INFO:tensorflow:Evaluation [403/1000]\n",
"INFO:tensorflow:Evaluation [404/1000]\n",
"INFO:tensorflow:Evaluation [405/1000]\n",
"INFO:tensorflow:Evaluation [406/1000]\n",
"INFO:tensorflow:Evaluation [407/1000]\n",
"INFO:tensorflow:Evaluation [408/1000]\n",
"INFO:tensorflow:Evaluation [409/1000]\n",
"INFO:tensorflow:Evaluation [410/1000]\n",
"INFO:tensorflow:Evaluation [411/1000]\n",
"INFO:tensorflow:Evaluation [412/1000]\n",
"INFO:tensorflow:Evaluation [413/1000]\n",
"INFO:tensorflow:Evaluation [414/1000]\n",
"INFO:tensorflow:Evaluation [415/1000]\n",
"INFO:tensorflow:Evaluation [416/1000]\n",
"INFO:tensorflow:Evaluation [417/1000]\n",
"INFO:tensorflow:Evaluation [418/1000]\n",
"INFO:tensorflow:Evaluation [419/1000]\n",
"INFO:tensorflow:Evaluation [420/1000]\n",
"INFO:tensorflow:Evaluation [421/1000]\n",
"INFO:tensorflow:Evaluation [422/1000]\n",
"INFO:tensorflow:Evaluation [423/1000]\n",
"INFO:tensorflow:Evaluation [424/1000]\n",
"INFO:tensorflow:Evaluation [425/1000]\n",
"INFO:tensorflow:Evaluation [426/1000]\n",
"INFO:tensorflow:Evaluation [427/1000]\n",
"INFO:tensorflow:Evaluation [428/1000]\n",
"INFO:tensorflow:Evaluation [429/1000]\n",
"INFO:tensorflow:Evaluation [430/1000]\n",
"INFO:tensorflow:Evaluation [431/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [432/1000]\n",
"INFO:tensorflow:Evaluation [433/1000]\n",
"INFO:tensorflow:Evaluation [434/1000]\n",
"INFO:tensorflow:Evaluation [435/1000]\n",
"INFO:tensorflow:Evaluation [436/1000]\n",
"INFO:tensorflow:Evaluation [437/1000]\n",
"INFO:tensorflow:Evaluation [438/1000]\n",
"INFO:tensorflow:Evaluation [439/1000]\n",
"INFO:tensorflow:Evaluation [440/1000]\n",
"INFO:tensorflow:Evaluation [441/1000]\n",
"INFO:tensorflow:Evaluation [442/1000]\n",
"INFO:tensorflow:Evaluation [443/1000]\n",
"INFO:tensorflow:Evaluation [444/1000]\n",
"INFO:tensorflow:Evaluation [445/1000]\n",
"INFO:tensorflow:Evaluation [446/1000]\n",
"INFO:tensorflow:Evaluation [447/1000]\n",
"INFO:tensorflow:Evaluation [448/1000]\n",
"INFO:tensorflow:Evaluation [449/1000]\n",
"INFO:tensorflow:Evaluation [450/1000]\n",
"INFO:tensorflow:Evaluation [451/1000]\n",
"INFO:tensorflow:Evaluation [452/1000]\n",
"INFO:tensorflow:Evaluation [453/1000]\n",
"INFO:tensorflow:Evaluation [454/1000]\n",
"INFO:tensorflow:Evaluation [455/1000]\n",
"INFO:tensorflow:Evaluation [456/1000]\n",
"INFO:tensorflow:Evaluation [457/1000]\n",
"INFO:tensorflow:Evaluation [458/1000]\n",
"INFO:tensorflow:Evaluation [459/1000]\n",
"INFO:tensorflow:Evaluation [460/1000]\n",
"INFO:tensorflow:Evaluation [461/1000]\n",
"INFO:tensorflow:Evaluation [462/1000]\n",
"INFO:tensorflow:Evaluation [463/1000]\n",
"INFO:tensorflow:Evaluation [464/1000]\n",
"INFO:tensorflow:Evaluation [465/1000]\n",
"INFO:tensorflow:Evaluation [466/1000]\n",
"INFO:tensorflow:Evaluation [467/1000]\n",
"INFO:tensorflow:Evaluation [468/1000]\n",
"INFO:tensorflow:Evaluation [469/1000]\n",
"INFO:tensorflow:Evaluation [470/1000]\n",
"INFO:tensorflow:Evaluation [471/1000]\n",
"INFO:tensorflow:Evaluation [472/1000]\n",
"INFO:tensorflow:Evaluation [473/1000]\n",
"INFO:tensorflow:Evaluation [474/1000]\n",
"INFO:tensorflow:Evaluation [475/1000]\n",
"INFO:tensorflow:Evaluation [476/1000]\n",
"INFO:tensorflow:Evaluation [477/1000]\n",
"INFO:tensorflow:Evaluation [478/1000]\n",
"INFO:tensorflow:Evaluation [479/1000]\n",
"INFO:tensorflow:Evaluation [480/1000]\n",
"INFO:tensorflow:Evaluation [481/1000]\n",
"INFO:tensorflow:Evaluation [482/1000]\n",
"INFO:tensorflow:Evaluation [483/1000]\n",
"INFO:tensorflow:Evaluation [484/1000]\n",
"INFO:tensorflow:Evaluation [485/1000]\n",
"INFO:tensorflow:Evaluation [486/1000]\n",
"INFO:tensorflow:Evaluation [487/1000]\n",
"INFO:tensorflow:Evaluation [488/1000]\n",
"INFO:tensorflow:Evaluation [489/1000]\n",
"INFO:tensorflow:Evaluation [490/1000]\n",
"INFO:tensorflow:Evaluation [491/1000]\n",
"INFO:tensorflow:Evaluation [492/1000]\n",
"INFO:tensorflow:Evaluation [493/1000]\n",
"INFO:tensorflow:Evaluation [494/1000]\n",
"INFO:tensorflow:Evaluation [495/1000]\n",
"INFO:tensorflow:Evaluation [496/1000]\n",
"INFO:tensorflow:Evaluation [497/1000]\n",
"INFO:tensorflow:Evaluation [498/1000]\n",
"INFO:tensorflow:Evaluation [499/1000]\n",
"INFO:tensorflow:Evaluation [500/1000]\n",
"INFO:tensorflow:Evaluation [501/1000]\n",
"INFO:tensorflow:Evaluation [502/1000]\n",
"INFO:tensorflow:Evaluation [503/1000]\n",
"INFO:tensorflow:Evaluation [504/1000]\n",
"INFO:tensorflow:Evaluation [505/1000]\n",
"INFO:tensorflow:Evaluation [506/1000]\n",
"INFO:tensorflow:Evaluation [507/1000]\n",
"INFO:tensorflow:Evaluation [508/1000]\n",
"INFO:tensorflow:Evaluation [509/1000]\n",
"INFO:tensorflow:Evaluation [510/1000]\n",
"INFO:tensorflow:Evaluation [511/1000]\n",
"INFO:tensorflow:Evaluation [512/1000]\n",
"INFO:tensorflow:Evaluation [513/1000]\n",
"INFO:tensorflow:Evaluation [514/1000]\n",
"INFO:tensorflow:Evaluation [515/1000]\n",
"INFO:tensorflow:Evaluation [516/1000]\n",
"INFO:tensorflow:Evaluation [517/1000]\n",
"INFO:tensorflow:Evaluation [518/1000]\n",
"INFO:tensorflow:Evaluation [519/1000]\n",
"INFO:tensorflow:Evaluation [520/1000]\n",
"INFO:tensorflow:Evaluation [521/1000]\n",
"INFO:tensorflow:Evaluation [522/1000]\n",
"INFO:tensorflow:Evaluation [523/1000]\n",
"INFO:tensorflow:Evaluation [524/1000]\n",
"INFO:tensorflow:Evaluation [525/1000]\n",
"INFO:tensorflow:Evaluation [526/1000]\n",
"INFO:tensorflow:Evaluation [527/1000]\n",
"INFO:tensorflow:Evaluation [528/1000]\n",
"INFO:tensorflow:Evaluation [529/1000]\n",
"INFO:tensorflow:Evaluation [530/1000]\n",
"INFO:tensorflow:Evaluation [531/1000]\n",
"INFO:tensorflow:Evaluation [532/1000]\n",
"INFO:tensorflow:Evaluation [533/1000]\n",
"INFO:tensorflow:Evaluation [534/1000]\n",
"INFO:tensorflow:Evaluation [535/1000]\n",
"INFO:tensorflow:Evaluation [536/1000]\n",
"INFO:tensorflow:Evaluation [537/1000]\n",
"INFO:tensorflow:Evaluation [538/1000]\n",
"INFO:tensorflow:Evaluation [539/1000]\n",
"INFO:tensorflow:Evaluation [540/1000]\n",
"INFO:tensorflow:Evaluation [541/1000]\n",
"INFO:tensorflow:Evaluation [542/1000]\n",
"INFO:tensorflow:Evaluation [543/1000]\n",
"INFO:tensorflow:Evaluation [544/1000]\n",
"INFO:tensorflow:Evaluation [545/1000]\n",
"INFO:tensorflow:Evaluation [546/1000]\n",
"INFO:tensorflow:Evaluation [547/1000]\n",
"INFO:tensorflow:Evaluation [548/1000]\n",
"INFO:tensorflow:Evaluation [549/1000]\n",
"INFO:tensorflow:Evaluation [550/1000]\n",
"INFO:tensorflow:Evaluation [551/1000]\n",
"INFO:tensorflow:Evaluation [552/1000]\n",
"INFO:tensorflow:Evaluation [553/1000]\n",
"INFO:tensorflow:Evaluation [554/1000]\n",
"INFO:tensorflow:Evaluation [555/1000]\n",
"INFO:tensorflow:Evaluation [556/1000]\n",
"INFO:tensorflow:Evaluation [557/1000]\n",
"INFO:tensorflow:Evaluation [558/1000]\n",
"INFO:tensorflow:Evaluation [559/1000]\n",
"INFO:tensorflow:Evaluation [560/1000]\n",
"INFO:tensorflow:Evaluation [561/1000]\n",
"INFO:tensorflow:Evaluation [562/1000]\n",
"INFO:tensorflow:Evaluation [563/1000]\n",
"INFO:tensorflow:Evaluation [564/1000]\n",
"INFO:tensorflow:Evaluation [565/1000]\n",
"INFO:tensorflow:Evaluation [566/1000]\n",
"INFO:tensorflow:Evaluation [567/1000]\n",
"INFO:tensorflow:Evaluation [568/1000]\n",
"INFO:tensorflow:Evaluation [569/1000]\n",
"INFO:tensorflow:Evaluation [570/1000]\n",
"INFO:tensorflow:Evaluation [571/1000]\n",
"INFO:tensorflow:Evaluation [572/1000]\n",
"INFO:tensorflow:Evaluation [573/1000]\n",
"INFO:tensorflow:Evaluation [574/1000]\n",
"INFO:tensorflow:Evaluation [575/1000]\n",
"INFO:tensorflow:Evaluation [576/1000]\n",
"INFO:tensorflow:Evaluation [577/1000]\n",
"INFO:tensorflow:Evaluation [578/1000]\n",
"INFO:tensorflow:Evaluation [579/1000]\n",
"INFO:tensorflow:Evaluation [580/1000]\n",
"INFO:tensorflow:Evaluation [581/1000]\n",
"INFO:tensorflow:Evaluation [582/1000]\n",
"INFO:tensorflow:Evaluation [583/1000]\n",
"INFO:tensorflow:Evaluation [584/1000]\n",
"INFO:tensorflow:Evaluation [585/1000]\n",
"INFO:tensorflow:Evaluation [586/1000]\n",
"INFO:tensorflow:Evaluation [587/1000]\n",
"INFO:tensorflow:Evaluation [588/1000]\n",
"INFO:tensorflow:Evaluation [589/1000]\n",
"INFO:tensorflow:Evaluation [590/1000]\n",
"INFO:tensorflow:Evaluation [591/1000]\n",
"INFO:tensorflow:Evaluation [592/1000]\n",
"INFO:tensorflow:Evaluation [593/1000]\n",
"INFO:tensorflow:Evaluation [594/1000]\n",
"INFO:tensorflow:Evaluation [595/1000]\n",
"INFO:tensorflow:Evaluation [596/1000]\n",
"INFO:tensorflow:Evaluation [597/1000]\n",
"INFO:tensorflow:Evaluation [598/1000]\n",
"INFO:tensorflow:Evaluation [599/1000]\n",
"INFO:tensorflow:Evaluation [600/1000]\n",
"INFO:tensorflow:Evaluation [601/1000]\n",
"INFO:tensorflow:Evaluation [602/1000]\n",
"INFO:tensorflow:Evaluation [603/1000]\n",
"INFO:tensorflow:Evaluation [604/1000]\n",
"INFO:tensorflow:Evaluation [605/1000]\n",
"INFO:tensorflow:Evaluation [606/1000]\n",
"INFO:tensorflow:Evaluation [607/1000]\n",
"INFO:tensorflow:Evaluation [608/1000]\n",
"INFO:tensorflow:Evaluation [609/1000]\n",
"INFO:tensorflow:Evaluation [610/1000]\n",
"INFO:tensorflow:Evaluation [611/1000]\n",
"INFO:tensorflow:Evaluation [612/1000]\n",
"INFO:tensorflow:Evaluation [613/1000]\n",
"INFO:tensorflow:Evaluation [614/1000]\n",
"INFO:tensorflow:Evaluation [615/1000]\n",
"INFO:tensorflow:Evaluation [616/1000]\n",
"INFO:tensorflow:Evaluation [617/1000]\n",
"INFO:tensorflow:Evaluation [618/1000]\n",
"INFO:tensorflow:Evaluation [619/1000]\n",
"INFO:tensorflow:Evaluation [620/1000]\n",
"INFO:tensorflow:Evaluation [621/1000]\n",
"INFO:tensorflow:Evaluation [622/1000]\n",
"INFO:tensorflow:Evaluation [623/1000]\n",
"INFO:tensorflow:Evaluation [624/1000]\n",
"INFO:tensorflow:Evaluation [625/1000]\n",
"INFO:tensorflow:Evaluation [626/1000]\n",
"INFO:tensorflow:Evaluation [627/1000]\n",
"INFO:tensorflow:Evaluation [628/1000]\n",
"INFO:tensorflow:Evaluation [629/1000]\n",
"INFO:tensorflow:Evaluation [630/1000]\n",
"INFO:tensorflow:Evaluation [631/1000]\n",
"INFO:tensorflow:Evaluation [632/1000]\n",
"INFO:tensorflow:Evaluation [633/1000]\n",
"INFO:tensorflow:Evaluation [634/1000]\n",
"INFO:tensorflow:Evaluation [635/1000]\n",
"INFO:tensorflow:Evaluation [636/1000]\n",
"INFO:tensorflow:Evaluation [637/1000]\n",
"INFO:tensorflow:Evaluation [638/1000]\n",
"INFO:tensorflow:Evaluation [639/1000]\n",
"INFO:tensorflow:Evaluation [640/1000]\n",
"INFO:tensorflow:Evaluation [641/1000]\n",
"INFO:tensorflow:Evaluation [642/1000]\n",
"INFO:tensorflow:Evaluation [643/1000]\n",
"INFO:tensorflow:Evaluation [644/1000]\n",
"INFO:tensorflow:Evaluation [645/1000]\n",
"INFO:tensorflow:Evaluation [646/1000]\n",
"INFO:tensorflow:Evaluation [647/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [648/1000]\n",
"INFO:tensorflow:Evaluation [649/1000]\n",
"INFO:tensorflow:Evaluation [650/1000]\n",
"INFO:tensorflow:Evaluation [651/1000]\n",
"INFO:tensorflow:Evaluation [652/1000]\n",
"INFO:tensorflow:Evaluation [653/1000]\n",
"INFO:tensorflow:Evaluation [654/1000]\n",
"INFO:tensorflow:Evaluation [655/1000]\n",
"INFO:tensorflow:Evaluation [656/1000]\n",
"INFO:tensorflow:Evaluation [657/1000]\n",
"INFO:tensorflow:Evaluation [658/1000]\n",
"INFO:tensorflow:Evaluation [659/1000]\n",
"INFO:tensorflow:Evaluation [660/1000]\n",
"INFO:tensorflow:Evaluation [661/1000]\n",
"INFO:tensorflow:Evaluation [662/1000]\n",
"INFO:tensorflow:Evaluation [663/1000]\n",
"INFO:tensorflow:Evaluation [664/1000]\n",
"INFO:tensorflow:Evaluation [665/1000]\n",
"INFO:tensorflow:Evaluation [666/1000]\n",
"INFO:tensorflow:Evaluation [667/1000]\n",
"INFO:tensorflow:Evaluation [668/1000]\n",
"INFO:tensorflow:Evaluation [669/1000]\n",
"INFO:tensorflow:Evaluation [670/1000]\n",
"INFO:tensorflow:Evaluation [671/1000]\n",
"INFO:tensorflow:Evaluation [672/1000]\n",
"INFO:tensorflow:Evaluation [673/1000]\n",
"INFO:tensorflow:Evaluation [674/1000]\n",
"INFO:tensorflow:Evaluation [675/1000]\n",
"INFO:tensorflow:Evaluation [676/1000]\n",
"INFO:tensorflow:Evaluation [677/1000]\n",
"INFO:tensorflow:Evaluation [678/1000]\n",
"INFO:tensorflow:Evaluation [679/1000]\n",
"INFO:tensorflow:Evaluation [680/1000]\n",
"INFO:tensorflow:Evaluation [681/1000]\n",
"INFO:tensorflow:Evaluation [682/1000]\n",
"INFO:tensorflow:Evaluation [683/1000]\n",
"INFO:tensorflow:Evaluation [684/1000]\n",
"INFO:tensorflow:Evaluation [685/1000]\n",
"INFO:tensorflow:Evaluation [686/1000]\n",
"INFO:tensorflow:Evaluation [687/1000]\n",
"INFO:tensorflow:Evaluation [688/1000]\n",
"INFO:tensorflow:Evaluation [689/1000]\n",
"INFO:tensorflow:Evaluation [690/1000]\n",
"INFO:tensorflow:Evaluation [691/1000]\n",
"INFO:tensorflow:Evaluation [692/1000]\n",
"INFO:tensorflow:Evaluation [693/1000]\n",
"INFO:tensorflow:Evaluation [694/1000]\n",
"INFO:tensorflow:Evaluation [695/1000]\n",
"INFO:tensorflow:Evaluation [696/1000]\n",
"INFO:tensorflow:Evaluation [697/1000]\n",
"INFO:tensorflow:Evaluation [698/1000]\n",
"INFO:tensorflow:Evaluation [699/1000]\n",
"INFO:tensorflow:Evaluation [700/1000]\n",
"INFO:tensorflow:Evaluation [701/1000]\n",
"INFO:tensorflow:Evaluation [702/1000]\n",
"INFO:tensorflow:Evaluation [703/1000]\n",
"INFO:tensorflow:Evaluation [704/1000]\n",
"INFO:tensorflow:Evaluation [705/1000]\n",
"INFO:tensorflow:Evaluation [706/1000]\n",
"INFO:tensorflow:Evaluation [707/1000]\n",
"INFO:tensorflow:Evaluation [708/1000]\n",
"INFO:tensorflow:Evaluation [709/1000]\n",
"INFO:tensorflow:Evaluation [710/1000]\n",
"INFO:tensorflow:Evaluation [711/1000]\n",
"INFO:tensorflow:Evaluation [712/1000]\n",
"INFO:tensorflow:Evaluation [713/1000]\n",
"INFO:tensorflow:Evaluation [714/1000]\n",
"INFO:tensorflow:Evaluation [715/1000]\n",
"INFO:tensorflow:Evaluation [716/1000]\n",
"INFO:tensorflow:Evaluation [717/1000]\n",
"INFO:tensorflow:Evaluation [718/1000]\n",
"INFO:tensorflow:Evaluation [719/1000]\n",
"INFO:tensorflow:Evaluation [720/1000]\n",
"INFO:tensorflow:Evaluation [721/1000]\n",
"INFO:tensorflow:Evaluation [722/1000]\n",
"INFO:tensorflow:Evaluation [723/1000]\n",
"INFO:tensorflow:Evaluation [724/1000]\n",
"INFO:tensorflow:Evaluation [725/1000]\n",
"INFO:tensorflow:Evaluation [726/1000]\n",
"INFO:tensorflow:Evaluation [727/1000]\n",
"INFO:tensorflow:Evaluation [728/1000]\n",
"INFO:tensorflow:Evaluation [729/1000]\n",
"INFO:tensorflow:Evaluation [730/1000]\n",
"INFO:tensorflow:Evaluation [731/1000]\n",
"INFO:tensorflow:Evaluation [732/1000]\n",
"INFO:tensorflow:Evaluation [733/1000]\n",
"INFO:tensorflow:Evaluation [734/1000]\n",
"INFO:tensorflow:Evaluation [735/1000]\n",
"INFO:tensorflow:Evaluation [736/1000]\n",
"INFO:tensorflow:Evaluation [737/1000]\n",
"INFO:tensorflow:Evaluation [738/1000]\n",
"INFO:tensorflow:Evaluation [739/1000]\n",
"INFO:tensorflow:Evaluation [740/1000]\n",
"INFO:tensorflow:Evaluation [741/1000]\n",
"INFO:tensorflow:Evaluation [742/1000]\n",
"INFO:tensorflow:Evaluation [743/1000]\n",
"INFO:tensorflow:Evaluation [744/1000]\n",
"INFO:tensorflow:Evaluation [745/1000]\n",
"INFO:tensorflow:Evaluation [746/1000]\n",
"INFO:tensorflow:Evaluation [747/1000]\n",
"INFO:tensorflow:Evaluation [748/1000]\n",
"INFO:tensorflow:Evaluation [749/1000]\n",
"INFO:tensorflow:Evaluation [750/1000]\n",
"INFO:tensorflow:Evaluation [751/1000]\n",
"INFO:tensorflow:Evaluation [752/1000]\n",
"INFO:tensorflow:Evaluation [753/1000]\n",
"INFO:tensorflow:Evaluation [754/1000]\n",
"INFO:tensorflow:Evaluation [755/1000]\n",
"INFO:tensorflow:Evaluation [756/1000]\n",
"INFO:tensorflow:Evaluation [757/1000]\n",
"INFO:tensorflow:Evaluation [758/1000]\n",
"INFO:tensorflow:Evaluation [759/1000]\n",
"INFO:tensorflow:Evaluation [760/1000]\n",
"INFO:tensorflow:Evaluation [761/1000]\n",
"INFO:tensorflow:Evaluation [762/1000]\n",
"INFO:tensorflow:Evaluation [763/1000]\n",
"INFO:tensorflow:Evaluation [764/1000]\n",
"INFO:tensorflow:Evaluation [765/1000]\n",
"INFO:tensorflow:Evaluation [766/1000]\n",
"INFO:tensorflow:Evaluation [767/1000]\n",
"INFO:tensorflow:Evaluation [768/1000]\n",
"INFO:tensorflow:Evaluation [769/1000]\n",
"INFO:tensorflow:Evaluation [770/1000]\n",
"INFO:tensorflow:Evaluation [771/1000]\n",
"INFO:tensorflow:Evaluation [772/1000]\n",
"INFO:tensorflow:Evaluation [773/1000]\n",
"INFO:tensorflow:Evaluation [774/1000]\n",
"INFO:tensorflow:Evaluation [775/1000]\n",
"INFO:tensorflow:Evaluation [776/1000]\n",
"INFO:tensorflow:Evaluation [777/1000]\n",
"INFO:tensorflow:Evaluation [778/1000]\n",
"INFO:tensorflow:Evaluation [779/1000]\n",
"INFO:tensorflow:Evaluation [780/1000]\n",
"INFO:tensorflow:Evaluation [781/1000]\n",
"INFO:tensorflow:Evaluation [782/1000]\n",
"INFO:tensorflow:Evaluation [783/1000]\n",
"INFO:tensorflow:Evaluation [784/1000]\n",
"INFO:tensorflow:Evaluation [785/1000]\n",
"INFO:tensorflow:Evaluation [786/1000]\n",
"INFO:tensorflow:Evaluation [787/1000]\n",
"INFO:tensorflow:Evaluation [788/1000]\n",
"INFO:tensorflow:Evaluation [789/1000]\n",
"INFO:tensorflow:Evaluation [790/1000]\n",
"INFO:tensorflow:Evaluation [791/1000]\n",
"INFO:tensorflow:Evaluation [792/1000]\n",
"INFO:tensorflow:Evaluation [793/1000]\n",
"INFO:tensorflow:Evaluation [794/1000]\n",
"INFO:tensorflow:Evaluation [795/1000]\n",
"INFO:tensorflow:Evaluation [796/1000]\n",
"INFO:tensorflow:Evaluation [797/1000]\n",
"INFO:tensorflow:Evaluation [798/1000]\n",
"INFO:tensorflow:Evaluation [799/1000]\n",
"INFO:tensorflow:Evaluation [800/1000]\n",
"INFO:tensorflow:Evaluation [801/1000]\n",
"INFO:tensorflow:Evaluation [802/1000]\n",
"INFO:tensorflow:Evaluation [803/1000]\n",
"INFO:tensorflow:Evaluation [804/1000]\n",
"INFO:tensorflow:Evaluation [805/1000]\n",
"INFO:tensorflow:Evaluation [806/1000]\n",
"INFO:tensorflow:Evaluation [807/1000]\n",
"INFO:tensorflow:Evaluation [808/1000]\n",
"INFO:tensorflow:Evaluation [809/1000]\n",
"INFO:tensorflow:Evaluation [810/1000]\n",
"INFO:tensorflow:Evaluation [811/1000]\n",
"INFO:tensorflow:Evaluation [812/1000]\n",
"INFO:tensorflow:Evaluation [813/1000]\n",
"INFO:tensorflow:Evaluation [814/1000]\n",
"INFO:tensorflow:Evaluation [815/1000]\n",
"INFO:tensorflow:Evaluation [816/1000]\n",
"INFO:tensorflow:Evaluation [817/1000]\n",
"INFO:tensorflow:Evaluation [818/1000]\n",
"INFO:tensorflow:Evaluation [819/1000]\n",
"INFO:tensorflow:Evaluation [820/1000]\n",
"INFO:tensorflow:Evaluation [821/1000]\n",
"INFO:tensorflow:Evaluation [822/1000]\n",
"INFO:tensorflow:Evaluation [823/1000]\n",
"INFO:tensorflow:Evaluation [824/1000]\n",
"INFO:tensorflow:Evaluation [825/1000]\n",
"INFO:tensorflow:Evaluation [826/1000]\n",
"INFO:tensorflow:Evaluation [827/1000]\n",
"INFO:tensorflow:Evaluation [828/1000]\n",
"INFO:tensorflow:Evaluation [829/1000]\n",
"INFO:tensorflow:Evaluation [830/1000]\n",
"INFO:tensorflow:Evaluation [831/1000]\n",
"INFO:tensorflow:Evaluation [832/1000]\n",
"INFO:tensorflow:Evaluation [833/1000]\n",
"INFO:tensorflow:Evaluation [834/1000]\n",
"INFO:tensorflow:Evaluation [835/1000]\n",
"INFO:tensorflow:Evaluation [836/1000]\n",
"INFO:tensorflow:Evaluation [837/1000]\n",
"INFO:tensorflow:Evaluation [838/1000]\n",
"INFO:tensorflow:Evaluation [839/1000]\n",
"INFO:tensorflow:Evaluation [840/1000]\n",
"INFO:tensorflow:Evaluation [841/1000]\n",
"INFO:tensorflow:Evaluation [842/1000]\n",
"INFO:tensorflow:Evaluation [843/1000]\n",
"INFO:tensorflow:Evaluation [844/1000]\n",
"INFO:tensorflow:Evaluation [845/1000]\n",
"INFO:tensorflow:Evaluation [846/1000]\n",
"INFO:tensorflow:Evaluation [847/1000]\n",
"INFO:tensorflow:Evaluation [848/1000]\n",
"INFO:tensorflow:Evaluation [849/1000]\n",
"INFO:tensorflow:Evaluation [850/1000]\n",
"INFO:tensorflow:Evaluation [851/1000]\n",
"INFO:tensorflow:Evaluation [852/1000]\n",
"INFO:tensorflow:Evaluation [853/1000]\n",
"INFO:tensorflow:Evaluation [854/1000]\n",
"INFO:tensorflow:Evaluation [855/1000]\n",
"INFO:tensorflow:Evaluation [856/1000]\n",
"INFO:tensorflow:Evaluation [857/1000]\n",
"INFO:tensorflow:Evaluation [858/1000]\n",
"INFO:tensorflow:Evaluation [859/1000]\n",
"INFO:tensorflow:Evaluation [860/1000]\n",
"INFO:tensorflow:Evaluation [861/1000]\n",
"INFO:tensorflow:Evaluation [862/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [863/1000]\n",
"INFO:tensorflow:Evaluation [864/1000]\n",
"INFO:tensorflow:Evaluation [865/1000]\n",
"INFO:tensorflow:Evaluation [866/1000]\n",
"INFO:tensorflow:Evaluation [867/1000]\n",
"INFO:tensorflow:Evaluation [868/1000]\n",
"INFO:tensorflow:Evaluation [869/1000]\n",
"INFO:tensorflow:Evaluation [870/1000]\n",
"INFO:tensorflow:Evaluation [871/1000]\n",
"INFO:tensorflow:Evaluation [872/1000]\n",
"INFO:tensorflow:Evaluation [873/1000]\n",
"INFO:tensorflow:Evaluation [874/1000]\n",
"INFO:tensorflow:Evaluation [875/1000]\n",
"INFO:tensorflow:Evaluation [876/1000]\n",
"INFO:tensorflow:Evaluation [877/1000]\n",
"INFO:tensorflow:Evaluation [878/1000]\n",
"INFO:tensorflow:Evaluation [879/1000]\n",
"INFO:tensorflow:Evaluation [880/1000]\n",
"INFO:tensorflow:Evaluation [881/1000]\n",
"INFO:tensorflow:Evaluation [882/1000]\n",
"INFO:tensorflow:Evaluation [883/1000]\n",
"INFO:tensorflow:Evaluation [884/1000]\n",
"INFO:tensorflow:Evaluation [885/1000]\n",
"INFO:tensorflow:Evaluation [886/1000]\n",
"INFO:tensorflow:Evaluation [887/1000]\n",
"INFO:tensorflow:Evaluation [888/1000]\n",
"INFO:tensorflow:Evaluation [889/1000]\n",
"INFO:tensorflow:Evaluation [890/1000]\n",
"INFO:tensorflow:Evaluation [891/1000]\n",
"INFO:tensorflow:Evaluation [892/1000]\n",
"INFO:tensorflow:Evaluation [893/1000]\n",
"INFO:tensorflow:Evaluation [894/1000]\n",
"INFO:tensorflow:Evaluation [895/1000]\n",
"INFO:tensorflow:Evaluation [896/1000]\n",
"INFO:tensorflow:Evaluation [897/1000]\n",
"INFO:tensorflow:Evaluation [898/1000]\n",
"INFO:tensorflow:Evaluation [899/1000]\n",
"INFO:tensorflow:Evaluation [900/1000]\n",
"INFO:tensorflow:Evaluation [901/1000]\n",
"INFO:tensorflow:Evaluation [902/1000]\n",
"INFO:tensorflow:Evaluation [903/1000]\n",
"INFO:tensorflow:Evaluation [904/1000]\n",
"INFO:tensorflow:Evaluation [905/1000]\n",
"INFO:tensorflow:Evaluation [906/1000]\n",
"INFO:tensorflow:Evaluation [907/1000]\n",
"INFO:tensorflow:Evaluation [908/1000]\n",
"INFO:tensorflow:Evaluation [909/1000]\n",
"INFO:tensorflow:Evaluation [910/1000]\n",
"INFO:tensorflow:Evaluation [911/1000]\n",
"INFO:tensorflow:Evaluation [912/1000]\n",
"INFO:tensorflow:Evaluation [913/1000]\n",
"INFO:tensorflow:Evaluation [914/1000]\n",
"INFO:tensorflow:Evaluation [915/1000]\n",
"INFO:tensorflow:Evaluation [916/1000]\n",
"INFO:tensorflow:Evaluation [917/1000]\n",
"INFO:tensorflow:Evaluation [918/1000]\n",
"INFO:tensorflow:Evaluation [919/1000]\n",
"INFO:tensorflow:Evaluation [920/1000]\n",
"INFO:tensorflow:Evaluation [921/1000]\n",
"INFO:tensorflow:Evaluation [922/1000]\n",
"INFO:tensorflow:Evaluation [923/1000]\n",
"INFO:tensorflow:Evaluation [924/1000]\n",
"INFO:tensorflow:Evaluation [925/1000]\n",
"INFO:tensorflow:Evaluation [926/1000]\n",
"INFO:tensorflow:Evaluation [927/1000]\n",
"INFO:tensorflow:Evaluation [928/1000]\n",
"INFO:tensorflow:Evaluation [929/1000]\n",
"INFO:tensorflow:Evaluation [930/1000]\n",
"INFO:tensorflow:Evaluation [931/1000]\n",
"INFO:tensorflow:Evaluation [932/1000]\n",
"INFO:tensorflow:Evaluation [933/1000]\n",
"INFO:tensorflow:Evaluation [934/1000]\n",
"INFO:tensorflow:Evaluation [935/1000]\n",
"INFO:tensorflow:Evaluation [936/1000]\n",
"INFO:tensorflow:Evaluation [937/1000]\n",
"INFO:tensorflow:Evaluation [938/1000]\n",
"INFO:tensorflow:Evaluation [939/1000]\n",
"INFO:tensorflow:Evaluation [940/1000]\n",
"INFO:tensorflow:Evaluation [941/1000]\n",
"INFO:tensorflow:Evaluation [942/1000]\n",
"INFO:tensorflow:Evaluation [943/1000]\n",
"INFO:tensorflow:Evaluation [944/1000]\n",
"INFO:tensorflow:Evaluation [945/1000]\n",
"INFO:tensorflow:Evaluation [946/1000]\n",
"INFO:tensorflow:Evaluation [947/1000]\n",
"INFO:tensorflow:Evaluation [948/1000]\n",
"INFO:tensorflow:Evaluation [949/1000]\n",
"INFO:tensorflow:Evaluation [950/1000]\n",
"INFO:tensorflow:Evaluation [951/1000]\n",
"INFO:tensorflow:Evaluation [952/1000]\n",
"INFO:tensorflow:Evaluation [953/1000]\n",
"INFO:tensorflow:Evaluation [954/1000]\n",
"INFO:tensorflow:Evaluation [955/1000]\n",
"INFO:tensorflow:Evaluation [956/1000]\n",
"INFO:tensorflow:Evaluation [957/1000]\n",
"INFO:tensorflow:Evaluation [958/1000]\n",
"INFO:tensorflow:Evaluation [959/1000]\n",
"INFO:tensorflow:Evaluation [960/1000]\n",
"INFO:tensorflow:Evaluation [961/1000]\n",
"INFO:tensorflow:Evaluation [962/1000]\n",
"INFO:tensorflow:Evaluation [963/1000]\n",
"INFO:tensorflow:Evaluation [964/1000]\n",
"INFO:tensorflow:Evaluation [965/1000]\n",
"INFO:tensorflow:Evaluation [966/1000]\n",
"INFO:tensorflow:Evaluation [967/1000]\n",
"INFO:tensorflow:Evaluation [968/1000]\n",
"INFO:tensorflow:Evaluation [969/1000]\n",
"INFO:tensorflow:Evaluation [970/1000]\n",
"INFO:tensorflow:Evaluation [971/1000]\n",
"INFO:tensorflow:Evaluation [972/1000]\n",
"INFO:tensorflow:Evaluation [973/1000]\n",
"INFO:tensorflow:Evaluation [974/1000]\n",
"INFO:tensorflow:Evaluation [975/1000]\n",
"INFO:tensorflow:Evaluation [976/1000]\n",
"INFO:tensorflow:Evaluation [977/1000]\n",
"INFO:tensorflow:Evaluation [978/1000]\n",
"INFO:tensorflow:Evaluation [979/1000]\n",
"INFO:tensorflow:Evaluation [980/1000]\n",
"INFO:tensorflow:Evaluation [981/1000]\n",
"INFO:tensorflow:Evaluation [982/1000]\n",
"INFO:tensorflow:Evaluation [983/1000]\n",
"INFO:tensorflow:Evaluation [984/1000]\n",
"INFO:tensorflow:Evaluation [985/1000]\n",
"INFO:tensorflow:Evaluation [986/1000]\n",
"INFO:tensorflow:Evaluation [987/1000]\n",
"INFO:tensorflow:Evaluation [988/1000]\n",
"INFO:tensorflow:Evaluation [989/1000]\n",
"INFO:tensorflow:Evaluation [990/1000]\n",
"INFO:tensorflow:Evaluation [991/1000]\n",
"INFO:tensorflow:Evaluation [992/1000]\n",
"INFO:tensorflow:Evaluation [993/1000]\n",
"INFO:tensorflow:Evaluation [994/1000]\n",
"INFO:tensorflow:Evaluation [995/1000]\n",
"INFO:tensorflow:Evaluation [996/1000]\n",
"INFO:tensorflow:Evaluation [997/1000]\n",
"INFO:tensorflow:Evaluation [998/1000]\n",
"INFO:tensorflow:Evaluation [999/1000]\n",
"INFO:tensorflow:Evaluation [1000/1000]\n",
"INFO:tensorflow:Finished evaluation at 2018-05-22-10:29:08\n",
"INFO:tensorflow:Saving dict for global step 1000: average_loss = 4.06223, global_step = 1000, loss = 40.6223\n"
]
}
],
"source": [
"train_metrics = estimator.evaluate(input_fn = train_input_func, steps = 1000)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Starting evaluation at 2018-05-22-10:29:09\n",
"INFO:tensorflow:Restoring parameters from /tmp/tmpt20_mtn9/model.ckpt-1000\n",
"INFO:tensorflow:Evaluation [1/1000]\n",
"INFO:tensorflow:Evaluation [2/1000]\n",
"INFO:tensorflow:Evaluation [3/1000]\n",
"INFO:tensorflow:Evaluation [4/1000]\n",
"INFO:tensorflow:Evaluation [5/1000]\n",
"INFO:tensorflow:Evaluation [6/1000]\n",
"INFO:tensorflow:Evaluation [7/1000]\n",
"INFO:tensorflow:Evaluation [8/1000]\n",
"INFO:tensorflow:Evaluation [9/1000]\n",
"INFO:tensorflow:Evaluation [10/1000]\n",
"INFO:tensorflow:Evaluation [11/1000]\n",
"INFO:tensorflow:Evaluation [12/1000]\n",
"INFO:tensorflow:Evaluation [13/1000]\n",
"INFO:tensorflow:Evaluation [14/1000]\n",
"INFO:tensorflow:Evaluation [15/1000]\n",
"INFO:tensorflow:Evaluation [16/1000]\n",
"INFO:tensorflow:Evaluation [17/1000]\n",
"INFO:tensorflow:Evaluation [18/1000]\n",
"INFO:tensorflow:Evaluation [19/1000]\n",
"INFO:tensorflow:Evaluation [20/1000]\n",
"INFO:tensorflow:Evaluation [21/1000]\n",
"INFO:tensorflow:Evaluation [22/1000]\n",
"INFO:tensorflow:Evaluation [23/1000]\n",
"INFO:tensorflow:Evaluation [24/1000]\n",
"INFO:tensorflow:Evaluation [25/1000]\n",
"INFO:tensorflow:Evaluation [26/1000]\n",
"INFO:tensorflow:Evaluation [27/1000]\n",
"INFO:tensorflow:Evaluation [28/1000]\n",
"INFO:tensorflow:Evaluation [29/1000]\n",
"INFO:tensorflow:Evaluation [30/1000]\n",
"INFO:tensorflow:Evaluation [31/1000]\n",
"INFO:tensorflow:Evaluation [32/1000]\n",
"INFO:tensorflow:Evaluation [33/1000]\n",
"INFO:tensorflow:Evaluation [34/1000]\n",
"INFO:tensorflow:Evaluation [35/1000]\n",
"INFO:tensorflow:Evaluation [36/1000]\n",
"INFO:tensorflow:Evaluation [37/1000]\n",
"INFO:tensorflow:Evaluation [38/1000]\n",
"INFO:tensorflow:Evaluation [39/1000]\n",
"INFO:tensorflow:Evaluation [40/1000]\n",
"INFO:tensorflow:Evaluation [41/1000]\n",
"INFO:tensorflow:Evaluation [42/1000]\n",
"INFO:tensorflow:Evaluation [43/1000]\n",
"INFO:tensorflow:Evaluation [44/1000]\n",
"INFO:tensorflow:Evaluation [45/1000]\n",
"INFO:tensorflow:Evaluation [46/1000]\n",
"INFO:tensorflow:Evaluation [47/1000]\n",
"INFO:tensorflow:Evaluation [48/1000]\n",
"INFO:tensorflow:Evaluation [49/1000]\n",
"INFO:tensorflow:Evaluation [50/1000]\n",
"INFO:tensorflow:Evaluation [51/1000]\n",
"INFO:tensorflow:Evaluation [52/1000]\n",
"INFO:tensorflow:Evaluation [53/1000]\n",
"INFO:tensorflow:Evaluation [54/1000]\n",
"INFO:tensorflow:Evaluation [55/1000]\n",
"INFO:tensorflow:Evaluation [56/1000]\n",
"INFO:tensorflow:Evaluation [57/1000]\n",
"INFO:tensorflow:Evaluation [58/1000]\n",
"INFO:tensorflow:Evaluation [59/1000]\n",
"INFO:tensorflow:Evaluation [60/1000]\n",
"INFO:tensorflow:Evaluation [61/1000]\n",
"INFO:tensorflow:Evaluation [62/1000]\n",
"INFO:tensorflow:Evaluation [63/1000]\n",
"INFO:tensorflow:Evaluation [64/1000]\n",
"INFO:tensorflow:Evaluation [65/1000]\n",
"INFO:tensorflow:Evaluation [66/1000]\n",
"INFO:tensorflow:Evaluation [67/1000]\n",
"INFO:tensorflow:Evaluation [68/1000]\n",
"INFO:tensorflow:Evaluation [69/1000]\n",
"INFO:tensorflow:Evaluation [70/1000]\n",
"INFO:tensorflow:Evaluation [71/1000]\n",
"INFO:tensorflow:Evaluation [72/1000]\n",
"INFO:tensorflow:Evaluation [73/1000]\n",
"INFO:tensorflow:Evaluation [74/1000]\n",
"INFO:tensorflow:Evaluation [75/1000]\n",
"INFO:tensorflow:Evaluation [76/1000]\n",
"INFO:tensorflow:Evaluation [77/1000]\n",
"INFO:tensorflow:Evaluation [78/1000]\n",
"INFO:tensorflow:Evaluation [79/1000]\n",
"INFO:tensorflow:Evaluation [80/1000]\n",
"INFO:tensorflow:Evaluation [81/1000]\n",
"INFO:tensorflow:Evaluation [82/1000]\n",
"INFO:tensorflow:Evaluation [83/1000]\n",
"INFO:tensorflow:Evaluation [84/1000]\n",
"INFO:tensorflow:Evaluation [85/1000]\n",
"INFO:tensorflow:Evaluation [86/1000]\n",
"INFO:tensorflow:Evaluation [87/1000]\n",
"INFO:tensorflow:Evaluation [88/1000]\n",
"INFO:tensorflow:Evaluation [89/1000]\n",
"INFO:tensorflow:Evaluation [90/1000]\n",
"INFO:tensorflow:Evaluation [91/1000]\n",
"INFO:tensorflow:Evaluation [92/1000]\n",
"INFO:tensorflow:Evaluation [93/1000]\n",
"INFO:tensorflow:Evaluation [94/1000]\n",
"INFO:tensorflow:Evaluation [95/1000]\n",
"INFO:tensorflow:Evaluation [96/1000]\n",
"INFO:tensorflow:Evaluation [97/1000]\n",
"INFO:tensorflow:Evaluation [98/1000]\n",
"INFO:tensorflow:Evaluation [99/1000]\n",
"INFO:tensorflow:Evaluation [100/1000]\n",
"INFO:tensorflow:Evaluation [101/1000]\n",
"INFO:tensorflow:Evaluation [102/1000]\n",
"INFO:tensorflow:Evaluation [103/1000]\n",
"INFO:tensorflow:Evaluation [104/1000]\n",
"INFO:tensorflow:Evaluation [105/1000]\n",
"INFO:tensorflow:Evaluation [106/1000]\n",
"INFO:tensorflow:Evaluation [107/1000]\n",
"INFO:tensorflow:Evaluation [108/1000]\n",
"INFO:tensorflow:Evaluation [109/1000]\n",
"INFO:tensorflow:Evaluation [110/1000]\n",
"INFO:tensorflow:Evaluation [111/1000]\n",
"INFO:tensorflow:Evaluation [112/1000]\n",
"INFO:tensorflow:Evaluation [113/1000]\n",
"INFO:tensorflow:Evaluation [114/1000]\n",
"INFO:tensorflow:Evaluation [115/1000]\n",
"INFO:tensorflow:Evaluation [116/1000]\n",
"INFO:tensorflow:Evaluation [117/1000]\n",
"INFO:tensorflow:Evaluation [118/1000]\n",
"INFO:tensorflow:Evaluation [119/1000]\n",
"INFO:tensorflow:Evaluation [120/1000]\n",
"INFO:tensorflow:Evaluation [121/1000]\n",
"INFO:tensorflow:Evaluation [122/1000]\n",
"INFO:tensorflow:Evaluation [123/1000]\n",
"INFO:tensorflow:Evaluation [124/1000]\n",
"INFO:tensorflow:Evaluation [125/1000]\n",
"INFO:tensorflow:Evaluation [126/1000]\n",
"INFO:tensorflow:Evaluation [127/1000]\n",
"INFO:tensorflow:Evaluation [128/1000]\n",
"INFO:tensorflow:Evaluation [129/1000]\n",
"INFO:tensorflow:Evaluation [130/1000]\n",
"INFO:tensorflow:Evaluation [131/1000]\n",
"INFO:tensorflow:Evaluation [132/1000]\n",
"INFO:tensorflow:Evaluation [133/1000]\n",
"INFO:tensorflow:Evaluation [134/1000]\n",
"INFO:tensorflow:Evaluation [135/1000]\n",
"INFO:tensorflow:Evaluation [136/1000]\n",
"INFO:tensorflow:Evaluation [137/1000]\n",
"INFO:tensorflow:Evaluation [138/1000]\n",
"INFO:tensorflow:Evaluation [139/1000]\n",
"INFO:tensorflow:Evaluation [140/1000]\n",
"INFO:tensorflow:Evaluation [141/1000]\n",
"INFO:tensorflow:Evaluation [142/1000]\n",
"INFO:tensorflow:Evaluation [143/1000]\n",
"INFO:tensorflow:Evaluation [144/1000]\n",
"INFO:tensorflow:Evaluation [145/1000]\n",
"INFO:tensorflow:Evaluation [146/1000]\n",
"INFO:tensorflow:Evaluation [147/1000]\n",
"INFO:tensorflow:Evaluation [148/1000]\n",
"INFO:tensorflow:Evaluation [149/1000]\n",
"INFO:tensorflow:Evaluation [150/1000]\n",
"INFO:tensorflow:Evaluation [151/1000]\n",
"INFO:tensorflow:Evaluation [152/1000]\n",
"INFO:tensorflow:Evaluation [153/1000]\n",
"INFO:tensorflow:Evaluation [154/1000]\n",
"INFO:tensorflow:Evaluation [155/1000]\n",
"INFO:tensorflow:Evaluation [156/1000]\n",
"INFO:tensorflow:Evaluation [157/1000]\n",
"INFO:tensorflow:Evaluation [158/1000]\n",
"INFO:tensorflow:Evaluation [159/1000]\n",
"INFO:tensorflow:Evaluation [160/1000]\n",
"INFO:tensorflow:Evaluation [161/1000]\n",
"INFO:tensorflow:Evaluation [162/1000]\n",
"INFO:tensorflow:Evaluation [163/1000]\n",
"INFO:tensorflow:Evaluation [164/1000]\n",
"INFO:tensorflow:Evaluation [165/1000]\n",
"INFO:tensorflow:Evaluation [166/1000]\n",
"INFO:tensorflow:Evaluation [167/1000]\n",
"INFO:tensorflow:Evaluation [168/1000]\n",
"INFO:tensorflow:Evaluation [169/1000]\n",
"INFO:tensorflow:Evaluation [170/1000]\n",
"INFO:tensorflow:Evaluation [171/1000]\n",
"INFO:tensorflow:Evaluation [172/1000]\n",
"INFO:tensorflow:Evaluation [173/1000]\n",
"INFO:tensorflow:Evaluation [174/1000]\n",
"INFO:tensorflow:Evaluation [175/1000]\n",
"INFO:tensorflow:Evaluation [176/1000]\n",
"INFO:tensorflow:Evaluation [177/1000]\n",
"INFO:tensorflow:Evaluation [178/1000]\n",
"INFO:tensorflow:Evaluation [179/1000]\n",
"INFO:tensorflow:Evaluation [180/1000]\n",
"INFO:tensorflow:Evaluation [181/1000]\n",
"INFO:tensorflow:Evaluation [182/1000]\n",
"INFO:tensorflow:Evaluation [183/1000]\n",
"INFO:tensorflow:Evaluation [184/1000]\n",
"INFO:tensorflow:Evaluation [185/1000]\n",
"INFO:tensorflow:Evaluation [186/1000]\n",
"INFO:tensorflow:Evaluation [187/1000]\n",
"INFO:tensorflow:Evaluation [188/1000]\n",
"INFO:tensorflow:Evaluation [189/1000]\n",
"INFO:tensorflow:Evaluation [190/1000]\n",
"INFO:tensorflow:Evaluation [191/1000]\n",
"INFO:tensorflow:Evaluation [192/1000]\n",
"INFO:tensorflow:Evaluation [193/1000]\n",
"INFO:tensorflow:Evaluation [194/1000]\n",
"INFO:tensorflow:Evaluation [195/1000]\n",
"INFO:tensorflow:Evaluation [196/1000]\n",
"INFO:tensorflow:Evaluation [197/1000]\n",
"INFO:tensorflow:Evaluation [198/1000]\n",
"INFO:tensorflow:Evaluation [199/1000]\n",
"INFO:tensorflow:Evaluation [200/1000]\n",
"INFO:tensorflow:Evaluation [201/1000]\n",
"INFO:tensorflow:Evaluation [202/1000]\n",
"INFO:tensorflow:Evaluation [203/1000]\n",
"INFO:tensorflow:Evaluation [204/1000]\n",
"INFO:tensorflow:Evaluation [205/1000]\n",
"INFO:tensorflow:Evaluation [206/1000]\n",
"INFO:tensorflow:Evaluation [207/1000]\n",
"INFO:tensorflow:Evaluation [208/1000]\n",
"INFO:tensorflow:Evaluation [209/1000]\n",
"INFO:tensorflow:Evaluation [210/1000]\n",
"INFO:tensorflow:Evaluation [211/1000]\n",
"INFO:tensorflow:Evaluation [212/1000]\n",
"INFO:tensorflow:Evaluation [213/1000]\n",
"INFO:tensorflow:Evaluation [214/1000]\n",
"INFO:tensorflow:Evaluation [215/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [216/1000]\n",
"INFO:tensorflow:Evaluation [217/1000]\n",
"INFO:tensorflow:Evaluation [218/1000]\n",
"INFO:tensorflow:Evaluation [219/1000]\n",
"INFO:tensorflow:Evaluation [220/1000]\n",
"INFO:tensorflow:Evaluation [221/1000]\n",
"INFO:tensorflow:Evaluation [222/1000]\n",
"INFO:tensorflow:Evaluation [223/1000]\n",
"INFO:tensorflow:Evaluation [224/1000]\n",
"INFO:tensorflow:Evaluation [225/1000]\n",
"INFO:tensorflow:Evaluation [226/1000]\n",
"INFO:tensorflow:Evaluation [227/1000]\n",
"INFO:tensorflow:Evaluation [228/1000]\n",
"INFO:tensorflow:Evaluation [229/1000]\n",
"INFO:tensorflow:Evaluation [230/1000]\n",
"INFO:tensorflow:Evaluation [231/1000]\n",
"INFO:tensorflow:Evaluation [232/1000]\n",
"INFO:tensorflow:Evaluation [233/1000]\n",
"INFO:tensorflow:Evaluation [234/1000]\n",
"INFO:tensorflow:Evaluation [235/1000]\n",
"INFO:tensorflow:Evaluation [236/1000]\n",
"INFO:tensorflow:Evaluation [237/1000]\n",
"INFO:tensorflow:Evaluation [238/1000]\n",
"INFO:tensorflow:Evaluation [239/1000]\n",
"INFO:tensorflow:Evaluation [240/1000]\n",
"INFO:tensorflow:Evaluation [241/1000]\n",
"INFO:tensorflow:Evaluation [242/1000]\n",
"INFO:tensorflow:Evaluation [243/1000]\n",
"INFO:tensorflow:Evaluation [244/1000]\n",
"INFO:tensorflow:Evaluation [245/1000]\n",
"INFO:tensorflow:Evaluation [246/1000]\n",
"INFO:tensorflow:Evaluation [247/1000]\n",
"INFO:tensorflow:Evaluation [248/1000]\n",
"INFO:tensorflow:Evaluation [249/1000]\n",
"INFO:tensorflow:Evaluation [250/1000]\n",
"INFO:tensorflow:Evaluation [251/1000]\n",
"INFO:tensorflow:Evaluation [252/1000]\n",
"INFO:tensorflow:Evaluation [253/1000]\n",
"INFO:tensorflow:Evaluation [254/1000]\n",
"INFO:tensorflow:Evaluation [255/1000]\n",
"INFO:tensorflow:Evaluation [256/1000]\n",
"INFO:tensorflow:Evaluation [257/1000]\n",
"INFO:tensorflow:Evaluation [258/1000]\n",
"INFO:tensorflow:Evaluation [259/1000]\n",
"INFO:tensorflow:Evaluation [260/1000]\n",
"INFO:tensorflow:Evaluation [261/1000]\n",
"INFO:tensorflow:Evaluation [262/1000]\n",
"INFO:tensorflow:Evaluation [263/1000]\n",
"INFO:tensorflow:Evaluation [264/1000]\n",
"INFO:tensorflow:Evaluation [265/1000]\n",
"INFO:tensorflow:Evaluation [266/1000]\n",
"INFO:tensorflow:Evaluation [267/1000]\n",
"INFO:tensorflow:Evaluation [268/1000]\n",
"INFO:tensorflow:Evaluation [269/1000]\n",
"INFO:tensorflow:Evaluation [270/1000]\n",
"INFO:tensorflow:Evaluation [271/1000]\n",
"INFO:tensorflow:Evaluation [272/1000]\n",
"INFO:tensorflow:Evaluation [273/1000]\n",
"INFO:tensorflow:Evaluation [274/1000]\n",
"INFO:tensorflow:Evaluation [275/1000]\n",
"INFO:tensorflow:Evaluation [276/1000]\n",
"INFO:tensorflow:Evaluation [277/1000]\n",
"INFO:tensorflow:Evaluation [278/1000]\n",
"INFO:tensorflow:Evaluation [279/1000]\n",
"INFO:tensorflow:Evaluation [280/1000]\n",
"INFO:tensorflow:Evaluation [281/1000]\n",
"INFO:tensorflow:Evaluation [282/1000]\n",
"INFO:tensorflow:Evaluation [283/1000]\n",
"INFO:tensorflow:Evaluation [284/1000]\n",
"INFO:tensorflow:Evaluation [285/1000]\n",
"INFO:tensorflow:Evaluation [286/1000]\n",
"INFO:tensorflow:Evaluation [287/1000]\n",
"INFO:tensorflow:Evaluation [288/1000]\n",
"INFO:tensorflow:Evaluation [289/1000]\n",
"INFO:tensorflow:Evaluation [290/1000]\n",
"INFO:tensorflow:Evaluation [291/1000]\n",
"INFO:tensorflow:Evaluation [292/1000]\n",
"INFO:tensorflow:Evaluation [293/1000]\n",
"INFO:tensorflow:Evaluation [294/1000]\n",
"INFO:tensorflow:Evaluation [295/1000]\n",
"INFO:tensorflow:Evaluation [296/1000]\n",
"INFO:tensorflow:Evaluation [297/1000]\n",
"INFO:tensorflow:Evaluation [298/1000]\n",
"INFO:tensorflow:Evaluation [299/1000]\n",
"INFO:tensorflow:Evaluation [300/1000]\n",
"INFO:tensorflow:Evaluation [301/1000]\n",
"INFO:tensorflow:Evaluation [302/1000]\n",
"INFO:tensorflow:Evaluation [303/1000]\n",
"INFO:tensorflow:Evaluation [304/1000]\n",
"INFO:tensorflow:Evaluation [305/1000]\n",
"INFO:tensorflow:Evaluation [306/1000]\n",
"INFO:tensorflow:Evaluation [307/1000]\n",
"INFO:tensorflow:Evaluation [308/1000]\n",
"INFO:tensorflow:Evaluation [309/1000]\n",
"INFO:tensorflow:Evaluation [310/1000]\n",
"INFO:tensorflow:Evaluation [311/1000]\n",
"INFO:tensorflow:Evaluation [312/1000]\n",
"INFO:tensorflow:Evaluation [313/1000]\n",
"INFO:tensorflow:Evaluation [314/1000]\n",
"INFO:tensorflow:Evaluation [315/1000]\n",
"INFO:tensorflow:Evaluation [316/1000]\n",
"INFO:tensorflow:Evaluation [317/1000]\n",
"INFO:tensorflow:Evaluation [318/1000]\n",
"INFO:tensorflow:Evaluation [319/1000]\n",
"INFO:tensorflow:Evaluation [320/1000]\n",
"INFO:tensorflow:Evaluation [321/1000]\n",
"INFO:tensorflow:Evaluation [322/1000]\n",
"INFO:tensorflow:Evaluation [323/1000]\n",
"INFO:tensorflow:Evaluation [324/1000]\n",
"INFO:tensorflow:Evaluation [325/1000]\n",
"INFO:tensorflow:Evaluation [326/1000]\n",
"INFO:tensorflow:Evaluation [327/1000]\n",
"INFO:tensorflow:Evaluation [328/1000]\n",
"INFO:tensorflow:Evaluation [329/1000]\n",
"INFO:tensorflow:Evaluation [330/1000]\n",
"INFO:tensorflow:Evaluation [331/1000]\n",
"INFO:tensorflow:Evaluation [332/1000]\n",
"INFO:tensorflow:Evaluation [333/1000]\n",
"INFO:tensorflow:Evaluation [334/1000]\n",
"INFO:tensorflow:Evaluation [335/1000]\n",
"INFO:tensorflow:Evaluation [336/1000]\n",
"INFO:tensorflow:Evaluation [337/1000]\n",
"INFO:tensorflow:Evaluation [338/1000]\n",
"INFO:tensorflow:Evaluation [339/1000]\n",
"INFO:tensorflow:Evaluation [340/1000]\n",
"INFO:tensorflow:Evaluation [341/1000]\n",
"INFO:tensorflow:Evaluation [342/1000]\n",
"INFO:tensorflow:Evaluation [343/1000]\n",
"INFO:tensorflow:Evaluation [344/1000]\n",
"INFO:tensorflow:Evaluation [345/1000]\n",
"INFO:tensorflow:Evaluation [346/1000]\n",
"INFO:tensorflow:Evaluation [347/1000]\n",
"INFO:tensorflow:Evaluation [348/1000]\n",
"INFO:tensorflow:Evaluation [349/1000]\n",
"INFO:tensorflow:Evaluation [350/1000]\n",
"INFO:tensorflow:Evaluation [351/1000]\n",
"INFO:tensorflow:Evaluation [352/1000]\n",
"INFO:tensorflow:Evaluation [353/1000]\n",
"INFO:tensorflow:Evaluation [354/1000]\n",
"INFO:tensorflow:Evaluation [355/1000]\n",
"INFO:tensorflow:Evaluation [356/1000]\n",
"INFO:tensorflow:Evaluation [357/1000]\n",
"INFO:tensorflow:Evaluation [358/1000]\n",
"INFO:tensorflow:Evaluation [359/1000]\n",
"INFO:tensorflow:Evaluation [360/1000]\n",
"INFO:tensorflow:Evaluation [361/1000]\n",
"INFO:tensorflow:Evaluation [362/1000]\n",
"INFO:tensorflow:Evaluation [363/1000]\n",
"INFO:tensorflow:Evaluation [364/1000]\n",
"INFO:tensorflow:Evaluation [365/1000]\n",
"INFO:tensorflow:Evaluation [366/1000]\n",
"INFO:tensorflow:Evaluation [367/1000]\n",
"INFO:tensorflow:Evaluation [368/1000]\n",
"INFO:tensorflow:Evaluation [369/1000]\n",
"INFO:tensorflow:Evaluation [370/1000]\n",
"INFO:tensorflow:Evaluation [371/1000]\n",
"INFO:tensorflow:Evaluation [372/1000]\n",
"INFO:tensorflow:Evaluation [373/1000]\n",
"INFO:tensorflow:Evaluation [374/1000]\n",
"INFO:tensorflow:Evaluation [375/1000]\n",
"INFO:tensorflow:Evaluation [376/1000]\n",
"INFO:tensorflow:Evaluation [377/1000]\n",
"INFO:tensorflow:Evaluation [378/1000]\n",
"INFO:tensorflow:Evaluation [379/1000]\n",
"INFO:tensorflow:Evaluation [380/1000]\n",
"INFO:tensorflow:Evaluation [381/1000]\n",
"INFO:tensorflow:Evaluation [382/1000]\n",
"INFO:tensorflow:Evaluation [383/1000]\n",
"INFO:tensorflow:Evaluation [384/1000]\n",
"INFO:tensorflow:Evaluation [385/1000]\n",
"INFO:tensorflow:Evaluation [386/1000]\n",
"INFO:tensorflow:Evaluation [387/1000]\n",
"INFO:tensorflow:Evaluation [388/1000]\n",
"INFO:tensorflow:Evaluation [389/1000]\n",
"INFO:tensorflow:Evaluation [390/1000]\n",
"INFO:tensorflow:Evaluation [391/1000]\n",
"INFO:tensorflow:Evaluation [392/1000]\n",
"INFO:tensorflow:Evaluation [393/1000]\n",
"INFO:tensorflow:Evaluation [394/1000]\n",
"INFO:tensorflow:Evaluation [395/1000]\n",
"INFO:tensorflow:Evaluation [396/1000]\n",
"INFO:tensorflow:Evaluation [397/1000]\n",
"INFO:tensorflow:Evaluation [398/1000]\n",
"INFO:tensorflow:Evaluation [399/1000]\n",
"INFO:tensorflow:Evaluation [400/1000]\n",
"INFO:tensorflow:Evaluation [401/1000]\n",
"INFO:tensorflow:Evaluation [402/1000]\n",
"INFO:tensorflow:Evaluation [403/1000]\n",
"INFO:tensorflow:Evaluation [404/1000]\n",
"INFO:tensorflow:Evaluation [405/1000]\n",
"INFO:tensorflow:Evaluation [406/1000]\n",
"INFO:tensorflow:Evaluation [407/1000]\n",
"INFO:tensorflow:Evaluation [408/1000]\n",
"INFO:tensorflow:Evaluation [409/1000]\n",
"INFO:tensorflow:Evaluation [410/1000]\n",
"INFO:tensorflow:Evaluation [411/1000]\n",
"INFO:tensorflow:Evaluation [412/1000]\n",
"INFO:tensorflow:Evaluation [413/1000]\n",
"INFO:tensorflow:Evaluation [414/1000]\n",
"INFO:tensorflow:Evaluation [415/1000]\n",
"INFO:tensorflow:Evaluation [416/1000]\n",
"INFO:tensorflow:Evaluation [417/1000]\n",
"INFO:tensorflow:Evaluation [418/1000]\n",
"INFO:tensorflow:Evaluation [419/1000]\n",
"INFO:tensorflow:Evaluation [420/1000]\n",
"INFO:tensorflow:Evaluation [421/1000]\n",
"INFO:tensorflow:Evaluation [422/1000]\n",
"INFO:tensorflow:Evaluation [423/1000]\n",
"INFO:tensorflow:Evaluation [424/1000]\n",
"INFO:tensorflow:Evaluation [425/1000]\n",
"INFO:tensorflow:Evaluation [426/1000]\n",
"INFO:tensorflow:Evaluation [427/1000]\n",
"INFO:tensorflow:Evaluation [428/1000]\n",
"INFO:tensorflow:Evaluation [429/1000]\n",
"INFO:tensorflow:Evaluation [430/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [431/1000]\n",
"INFO:tensorflow:Evaluation [432/1000]\n",
"INFO:tensorflow:Evaluation [433/1000]\n",
"INFO:tensorflow:Evaluation [434/1000]\n",
"INFO:tensorflow:Evaluation [435/1000]\n",
"INFO:tensorflow:Evaluation [436/1000]\n",
"INFO:tensorflow:Evaluation [437/1000]\n",
"INFO:tensorflow:Evaluation [438/1000]\n",
"INFO:tensorflow:Evaluation [439/1000]\n",
"INFO:tensorflow:Evaluation [440/1000]\n",
"INFO:tensorflow:Evaluation [441/1000]\n",
"INFO:tensorflow:Evaluation [442/1000]\n",
"INFO:tensorflow:Evaluation [443/1000]\n",
"INFO:tensorflow:Evaluation [444/1000]\n",
"INFO:tensorflow:Evaluation [445/1000]\n",
"INFO:tensorflow:Evaluation [446/1000]\n",
"INFO:tensorflow:Evaluation [447/1000]\n",
"INFO:tensorflow:Evaluation [448/1000]\n",
"INFO:tensorflow:Evaluation [449/1000]\n",
"INFO:tensorflow:Evaluation [450/1000]\n",
"INFO:tensorflow:Evaluation [451/1000]\n",
"INFO:tensorflow:Evaluation [452/1000]\n",
"INFO:tensorflow:Evaluation [453/1000]\n",
"INFO:tensorflow:Evaluation [454/1000]\n",
"INFO:tensorflow:Evaluation [455/1000]\n",
"INFO:tensorflow:Evaluation [456/1000]\n",
"INFO:tensorflow:Evaluation [457/1000]\n",
"INFO:tensorflow:Evaluation [458/1000]\n",
"INFO:tensorflow:Evaluation [459/1000]\n",
"INFO:tensorflow:Evaluation [460/1000]\n",
"INFO:tensorflow:Evaluation [461/1000]\n",
"INFO:tensorflow:Evaluation [462/1000]\n",
"INFO:tensorflow:Evaluation [463/1000]\n",
"INFO:tensorflow:Evaluation [464/1000]\n",
"INFO:tensorflow:Evaluation [465/1000]\n",
"INFO:tensorflow:Evaluation [466/1000]\n",
"INFO:tensorflow:Evaluation [467/1000]\n",
"INFO:tensorflow:Evaluation [468/1000]\n",
"INFO:tensorflow:Evaluation [469/1000]\n",
"INFO:tensorflow:Evaluation [470/1000]\n",
"INFO:tensorflow:Evaluation [471/1000]\n",
"INFO:tensorflow:Evaluation [472/1000]\n",
"INFO:tensorflow:Evaluation [473/1000]\n",
"INFO:tensorflow:Evaluation [474/1000]\n",
"INFO:tensorflow:Evaluation [475/1000]\n",
"INFO:tensorflow:Evaluation [476/1000]\n",
"INFO:tensorflow:Evaluation [477/1000]\n",
"INFO:tensorflow:Evaluation [478/1000]\n",
"INFO:tensorflow:Evaluation [479/1000]\n",
"INFO:tensorflow:Evaluation [480/1000]\n",
"INFO:tensorflow:Evaluation [481/1000]\n",
"INFO:tensorflow:Evaluation [482/1000]\n",
"INFO:tensorflow:Evaluation [483/1000]\n",
"INFO:tensorflow:Evaluation [484/1000]\n",
"INFO:tensorflow:Evaluation [485/1000]\n",
"INFO:tensorflow:Evaluation [486/1000]\n",
"INFO:tensorflow:Evaluation [487/1000]\n",
"INFO:tensorflow:Evaluation [488/1000]\n",
"INFO:tensorflow:Evaluation [489/1000]\n",
"INFO:tensorflow:Evaluation [490/1000]\n",
"INFO:tensorflow:Evaluation [491/1000]\n",
"INFO:tensorflow:Evaluation [492/1000]\n",
"INFO:tensorflow:Evaluation [493/1000]\n",
"INFO:tensorflow:Evaluation [494/1000]\n",
"INFO:tensorflow:Evaluation [495/1000]\n",
"INFO:tensorflow:Evaluation [496/1000]\n",
"INFO:tensorflow:Evaluation [497/1000]\n",
"INFO:tensorflow:Evaluation [498/1000]\n",
"INFO:tensorflow:Evaluation [499/1000]\n",
"INFO:tensorflow:Evaluation [500/1000]\n",
"INFO:tensorflow:Evaluation [501/1000]\n",
"INFO:tensorflow:Evaluation [502/1000]\n",
"INFO:tensorflow:Evaluation [503/1000]\n",
"INFO:tensorflow:Evaluation [504/1000]\n",
"INFO:tensorflow:Evaluation [505/1000]\n",
"INFO:tensorflow:Evaluation [506/1000]\n",
"INFO:tensorflow:Evaluation [507/1000]\n",
"INFO:tensorflow:Evaluation [508/1000]\n",
"INFO:tensorflow:Evaluation [509/1000]\n",
"INFO:tensorflow:Evaluation [510/1000]\n",
"INFO:tensorflow:Evaluation [511/1000]\n",
"INFO:tensorflow:Evaluation [512/1000]\n",
"INFO:tensorflow:Evaluation [513/1000]\n",
"INFO:tensorflow:Evaluation [514/1000]\n",
"INFO:tensorflow:Evaluation [515/1000]\n",
"INFO:tensorflow:Evaluation [516/1000]\n",
"INFO:tensorflow:Evaluation [517/1000]\n",
"INFO:tensorflow:Evaluation [518/1000]\n",
"INFO:tensorflow:Evaluation [519/1000]\n",
"INFO:tensorflow:Evaluation [520/1000]\n",
"INFO:tensorflow:Evaluation [521/1000]\n",
"INFO:tensorflow:Evaluation [522/1000]\n",
"INFO:tensorflow:Evaluation [523/1000]\n",
"INFO:tensorflow:Evaluation [524/1000]\n",
"INFO:tensorflow:Evaluation [525/1000]\n",
"INFO:tensorflow:Evaluation [526/1000]\n",
"INFO:tensorflow:Evaluation [527/1000]\n",
"INFO:tensorflow:Evaluation [528/1000]\n",
"INFO:tensorflow:Evaluation [529/1000]\n",
"INFO:tensorflow:Evaluation [530/1000]\n",
"INFO:tensorflow:Evaluation [531/1000]\n",
"INFO:tensorflow:Evaluation [532/1000]\n",
"INFO:tensorflow:Evaluation [533/1000]\n",
"INFO:tensorflow:Evaluation [534/1000]\n",
"INFO:tensorflow:Evaluation [535/1000]\n",
"INFO:tensorflow:Evaluation [536/1000]\n",
"INFO:tensorflow:Evaluation [537/1000]\n",
"INFO:tensorflow:Evaluation [538/1000]\n",
"INFO:tensorflow:Evaluation [539/1000]\n",
"INFO:tensorflow:Evaluation [540/1000]\n",
"INFO:tensorflow:Evaluation [541/1000]\n",
"INFO:tensorflow:Evaluation [542/1000]\n",
"INFO:tensorflow:Evaluation [543/1000]\n",
"INFO:tensorflow:Evaluation [544/1000]\n",
"INFO:tensorflow:Evaluation [545/1000]\n",
"INFO:tensorflow:Evaluation [546/1000]\n",
"INFO:tensorflow:Evaluation [547/1000]\n",
"INFO:tensorflow:Evaluation [548/1000]\n",
"INFO:tensorflow:Evaluation [549/1000]\n",
"INFO:tensorflow:Evaluation [550/1000]\n",
"INFO:tensorflow:Evaluation [551/1000]\n",
"INFO:tensorflow:Evaluation [552/1000]\n",
"INFO:tensorflow:Evaluation [553/1000]\n",
"INFO:tensorflow:Evaluation [554/1000]\n",
"INFO:tensorflow:Evaluation [555/1000]\n",
"INFO:tensorflow:Evaluation [556/1000]\n",
"INFO:tensorflow:Evaluation [557/1000]\n",
"INFO:tensorflow:Evaluation [558/1000]\n",
"INFO:tensorflow:Evaluation [559/1000]\n",
"INFO:tensorflow:Evaluation [560/1000]\n",
"INFO:tensorflow:Evaluation [561/1000]\n",
"INFO:tensorflow:Evaluation [562/1000]\n",
"INFO:tensorflow:Evaluation [563/1000]\n",
"INFO:tensorflow:Evaluation [564/1000]\n",
"INFO:tensorflow:Evaluation [565/1000]\n",
"INFO:tensorflow:Evaluation [566/1000]\n",
"INFO:tensorflow:Evaluation [567/1000]\n",
"INFO:tensorflow:Evaluation [568/1000]\n",
"INFO:tensorflow:Evaluation [569/1000]\n",
"INFO:tensorflow:Evaluation [570/1000]\n",
"INFO:tensorflow:Evaluation [571/1000]\n",
"INFO:tensorflow:Evaluation [572/1000]\n",
"INFO:tensorflow:Evaluation [573/1000]\n",
"INFO:tensorflow:Evaluation [574/1000]\n",
"INFO:tensorflow:Evaluation [575/1000]\n",
"INFO:tensorflow:Evaluation [576/1000]\n",
"INFO:tensorflow:Evaluation [577/1000]\n",
"INFO:tensorflow:Evaluation [578/1000]\n",
"INFO:tensorflow:Evaluation [579/1000]\n",
"INFO:tensorflow:Evaluation [580/1000]\n",
"INFO:tensorflow:Evaluation [581/1000]\n",
"INFO:tensorflow:Evaluation [582/1000]\n",
"INFO:tensorflow:Evaluation [583/1000]\n",
"INFO:tensorflow:Evaluation [584/1000]\n",
"INFO:tensorflow:Evaluation [585/1000]\n",
"INFO:tensorflow:Evaluation [586/1000]\n",
"INFO:tensorflow:Evaluation [587/1000]\n",
"INFO:tensorflow:Evaluation [588/1000]\n",
"INFO:tensorflow:Evaluation [589/1000]\n",
"INFO:tensorflow:Evaluation [590/1000]\n",
"INFO:tensorflow:Evaluation [591/1000]\n",
"INFO:tensorflow:Evaluation [592/1000]\n",
"INFO:tensorflow:Evaluation [593/1000]\n",
"INFO:tensorflow:Evaluation [594/1000]\n",
"INFO:tensorflow:Evaluation [595/1000]\n",
"INFO:tensorflow:Evaluation [596/1000]\n",
"INFO:tensorflow:Evaluation [597/1000]\n",
"INFO:tensorflow:Evaluation [598/1000]\n",
"INFO:tensorflow:Evaluation [599/1000]\n",
"INFO:tensorflow:Evaluation [600/1000]\n",
"INFO:tensorflow:Evaluation [601/1000]\n",
"INFO:tensorflow:Evaluation [602/1000]\n",
"INFO:tensorflow:Evaluation [603/1000]\n",
"INFO:tensorflow:Evaluation [604/1000]\n",
"INFO:tensorflow:Evaluation [605/1000]\n",
"INFO:tensorflow:Evaluation [606/1000]\n",
"INFO:tensorflow:Evaluation [607/1000]\n",
"INFO:tensorflow:Evaluation [608/1000]\n",
"INFO:tensorflow:Evaluation [609/1000]\n",
"INFO:tensorflow:Evaluation [610/1000]\n",
"INFO:tensorflow:Evaluation [611/1000]\n",
"INFO:tensorflow:Evaluation [612/1000]\n",
"INFO:tensorflow:Evaluation [613/1000]\n",
"INFO:tensorflow:Evaluation [614/1000]\n",
"INFO:tensorflow:Evaluation [615/1000]\n",
"INFO:tensorflow:Evaluation [616/1000]\n",
"INFO:tensorflow:Evaluation [617/1000]\n",
"INFO:tensorflow:Evaluation [618/1000]\n",
"INFO:tensorflow:Evaluation [619/1000]\n",
"INFO:tensorflow:Evaluation [620/1000]\n",
"INFO:tensorflow:Evaluation [621/1000]\n",
"INFO:tensorflow:Evaluation [622/1000]\n",
"INFO:tensorflow:Evaluation [623/1000]\n",
"INFO:tensorflow:Evaluation [624/1000]\n",
"INFO:tensorflow:Evaluation [625/1000]\n",
"INFO:tensorflow:Evaluation [626/1000]\n",
"INFO:tensorflow:Evaluation [627/1000]\n",
"INFO:tensorflow:Evaluation [628/1000]\n",
"INFO:tensorflow:Evaluation [629/1000]\n",
"INFO:tensorflow:Evaluation [630/1000]\n",
"INFO:tensorflow:Evaluation [631/1000]\n",
"INFO:tensorflow:Evaluation [632/1000]\n",
"INFO:tensorflow:Evaluation [633/1000]\n",
"INFO:tensorflow:Evaluation [634/1000]\n",
"INFO:tensorflow:Evaluation [635/1000]\n",
"INFO:tensorflow:Evaluation [636/1000]\n",
"INFO:tensorflow:Evaluation [637/1000]\n",
"INFO:tensorflow:Evaluation [638/1000]\n",
"INFO:tensorflow:Evaluation [639/1000]\n",
"INFO:tensorflow:Evaluation [640/1000]\n",
"INFO:tensorflow:Evaluation [641/1000]\n",
"INFO:tensorflow:Evaluation [642/1000]\n",
"INFO:tensorflow:Evaluation [643/1000]\n",
"INFO:tensorflow:Evaluation [644/1000]\n",
"INFO:tensorflow:Evaluation [645/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [646/1000]\n",
"INFO:tensorflow:Evaluation [647/1000]\n",
"INFO:tensorflow:Evaluation [648/1000]\n",
"INFO:tensorflow:Evaluation [649/1000]\n",
"INFO:tensorflow:Evaluation [650/1000]\n",
"INFO:tensorflow:Evaluation [651/1000]\n",
"INFO:tensorflow:Evaluation [652/1000]\n",
"INFO:tensorflow:Evaluation [653/1000]\n",
"INFO:tensorflow:Evaluation [654/1000]\n",
"INFO:tensorflow:Evaluation [655/1000]\n",
"INFO:tensorflow:Evaluation [656/1000]\n",
"INFO:tensorflow:Evaluation [657/1000]\n",
"INFO:tensorflow:Evaluation [658/1000]\n",
"INFO:tensorflow:Evaluation [659/1000]\n",
"INFO:tensorflow:Evaluation [660/1000]\n",
"INFO:tensorflow:Evaluation [661/1000]\n",
"INFO:tensorflow:Evaluation [662/1000]\n",
"INFO:tensorflow:Evaluation [663/1000]\n",
"INFO:tensorflow:Evaluation [664/1000]\n",
"INFO:tensorflow:Evaluation [665/1000]\n",
"INFO:tensorflow:Evaluation [666/1000]\n",
"INFO:tensorflow:Evaluation [667/1000]\n",
"INFO:tensorflow:Evaluation [668/1000]\n",
"INFO:tensorflow:Evaluation [669/1000]\n",
"INFO:tensorflow:Evaluation [670/1000]\n",
"INFO:tensorflow:Evaluation [671/1000]\n",
"INFO:tensorflow:Evaluation [672/1000]\n",
"INFO:tensorflow:Evaluation [673/1000]\n",
"INFO:tensorflow:Evaluation [674/1000]\n",
"INFO:tensorflow:Evaluation [675/1000]\n",
"INFO:tensorflow:Evaluation [676/1000]\n",
"INFO:tensorflow:Evaluation [677/1000]\n",
"INFO:tensorflow:Evaluation [678/1000]\n",
"INFO:tensorflow:Evaluation [679/1000]\n",
"INFO:tensorflow:Evaluation [680/1000]\n",
"INFO:tensorflow:Evaluation [681/1000]\n",
"INFO:tensorflow:Evaluation [682/1000]\n",
"INFO:tensorflow:Evaluation [683/1000]\n",
"INFO:tensorflow:Evaluation [684/1000]\n",
"INFO:tensorflow:Evaluation [685/1000]\n",
"INFO:tensorflow:Evaluation [686/1000]\n",
"INFO:tensorflow:Evaluation [687/1000]\n",
"INFO:tensorflow:Evaluation [688/1000]\n",
"INFO:tensorflow:Evaluation [689/1000]\n",
"INFO:tensorflow:Evaluation [690/1000]\n",
"INFO:tensorflow:Evaluation [691/1000]\n",
"INFO:tensorflow:Evaluation [692/1000]\n",
"INFO:tensorflow:Evaluation [693/1000]\n",
"INFO:tensorflow:Evaluation [694/1000]\n",
"INFO:tensorflow:Evaluation [695/1000]\n",
"INFO:tensorflow:Evaluation [696/1000]\n",
"INFO:tensorflow:Evaluation [697/1000]\n",
"INFO:tensorflow:Evaluation [698/1000]\n",
"INFO:tensorflow:Evaluation [699/1000]\n",
"INFO:tensorflow:Evaluation [700/1000]\n",
"INFO:tensorflow:Evaluation [701/1000]\n",
"INFO:tensorflow:Evaluation [702/1000]\n",
"INFO:tensorflow:Evaluation [703/1000]\n",
"INFO:tensorflow:Evaluation [704/1000]\n",
"INFO:tensorflow:Evaluation [705/1000]\n",
"INFO:tensorflow:Evaluation [706/1000]\n",
"INFO:tensorflow:Evaluation [707/1000]\n",
"INFO:tensorflow:Evaluation [708/1000]\n",
"INFO:tensorflow:Evaluation [709/1000]\n",
"INFO:tensorflow:Evaluation [710/1000]\n",
"INFO:tensorflow:Evaluation [711/1000]\n",
"INFO:tensorflow:Evaluation [712/1000]\n",
"INFO:tensorflow:Evaluation [713/1000]\n",
"INFO:tensorflow:Evaluation [714/1000]\n",
"INFO:tensorflow:Evaluation [715/1000]\n",
"INFO:tensorflow:Evaluation [716/1000]\n",
"INFO:tensorflow:Evaluation [717/1000]\n",
"INFO:tensorflow:Evaluation [718/1000]\n",
"INFO:tensorflow:Evaluation [719/1000]\n",
"INFO:tensorflow:Evaluation [720/1000]\n",
"INFO:tensorflow:Evaluation [721/1000]\n",
"INFO:tensorflow:Evaluation [722/1000]\n",
"INFO:tensorflow:Evaluation [723/1000]\n",
"INFO:tensorflow:Evaluation [724/1000]\n",
"INFO:tensorflow:Evaluation [725/1000]\n",
"INFO:tensorflow:Evaluation [726/1000]\n",
"INFO:tensorflow:Evaluation [727/1000]\n",
"INFO:tensorflow:Evaluation [728/1000]\n",
"INFO:tensorflow:Evaluation [729/1000]\n",
"INFO:tensorflow:Evaluation [730/1000]\n",
"INFO:tensorflow:Evaluation [731/1000]\n",
"INFO:tensorflow:Evaluation [732/1000]\n",
"INFO:tensorflow:Evaluation [733/1000]\n",
"INFO:tensorflow:Evaluation [734/1000]\n",
"INFO:tensorflow:Evaluation [735/1000]\n",
"INFO:tensorflow:Evaluation [736/1000]\n",
"INFO:tensorflow:Evaluation [737/1000]\n",
"INFO:tensorflow:Evaluation [738/1000]\n",
"INFO:tensorflow:Evaluation [739/1000]\n",
"INFO:tensorflow:Evaluation [740/1000]\n",
"INFO:tensorflow:Evaluation [741/1000]\n",
"INFO:tensorflow:Evaluation [742/1000]\n",
"INFO:tensorflow:Evaluation [743/1000]\n",
"INFO:tensorflow:Evaluation [744/1000]\n",
"INFO:tensorflow:Evaluation [745/1000]\n",
"INFO:tensorflow:Evaluation [746/1000]\n",
"INFO:tensorflow:Evaluation [747/1000]\n",
"INFO:tensorflow:Evaluation [748/1000]\n",
"INFO:tensorflow:Evaluation [749/1000]\n",
"INFO:tensorflow:Evaluation [750/1000]\n",
"INFO:tensorflow:Evaluation [751/1000]\n",
"INFO:tensorflow:Evaluation [752/1000]\n",
"INFO:tensorflow:Evaluation [753/1000]\n",
"INFO:tensorflow:Evaluation [754/1000]\n",
"INFO:tensorflow:Evaluation [755/1000]\n",
"INFO:tensorflow:Evaluation [756/1000]\n",
"INFO:tensorflow:Evaluation [757/1000]\n",
"INFO:tensorflow:Evaluation [758/1000]\n",
"INFO:tensorflow:Evaluation [759/1000]\n",
"INFO:tensorflow:Evaluation [760/1000]\n",
"INFO:tensorflow:Evaluation [761/1000]\n",
"INFO:tensorflow:Evaluation [762/1000]\n",
"INFO:tensorflow:Evaluation [763/1000]\n",
"INFO:tensorflow:Evaluation [764/1000]\n",
"INFO:tensorflow:Evaluation [765/1000]\n",
"INFO:tensorflow:Evaluation [766/1000]\n",
"INFO:tensorflow:Evaluation [767/1000]\n",
"INFO:tensorflow:Evaluation [768/1000]\n",
"INFO:tensorflow:Evaluation [769/1000]\n",
"INFO:tensorflow:Evaluation [770/1000]\n",
"INFO:tensorflow:Evaluation [771/1000]\n",
"INFO:tensorflow:Evaluation [772/1000]\n",
"INFO:tensorflow:Evaluation [773/1000]\n",
"INFO:tensorflow:Evaluation [774/1000]\n",
"INFO:tensorflow:Evaluation [775/1000]\n",
"INFO:tensorflow:Evaluation [776/1000]\n",
"INFO:tensorflow:Evaluation [777/1000]\n",
"INFO:tensorflow:Evaluation [778/1000]\n",
"INFO:tensorflow:Evaluation [779/1000]\n",
"INFO:tensorflow:Evaluation [780/1000]\n",
"INFO:tensorflow:Evaluation [781/1000]\n",
"INFO:tensorflow:Evaluation [782/1000]\n",
"INFO:tensorflow:Evaluation [783/1000]\n",
"INFO:tensorflow:Evaluation [784/1000]\n",
"INFO:tensorflow:Evaluation [785/1000]\n",
"INFO:tensorflow:Evaluation [786/1000]\n",
"INFO:tensorflow:Evaluation [787/1000]\n",
"INFO:tensorflow:Evaluation [788/1000]\n",
"INFO:tensorflow:Evaluation [789/1000]\n",
"INFO:tensorflow:Evaluation [790/1000]\n",
"INFO:tensorflow:Evaluation [791/1000]\n",
"INFO:tensorflow:Evaluation [792/1000]\n",
"INFO:tensorflow:Evaluation [793/1000]\n",
"INFO:tensorflow:Evaluation [794/1000]\n",
"INFO:tensorflow:Evaluation [795/1000]\n",
"INFO:tensorflow:Evaluation [796/1000]\n",
"INFO:tensorflow:Evaluation [797/1000]\n",
"INFO:tensorflow:Evaluation [798/1000]\n",
"INFO:tensorflow:Evaluation [799/1000]\n",
"INFO:tensorflow:Evaluation [800/1000]\n",
"INFO:tensorflow:Evaluation [801/1000]\n",
"INFO:tensorflow:Evaluation [802/1000]\n",
"INFO:tensorflow:Evaluation [803/1000]\n",
"INFO:tensorflow:Evaluation [804/1000]\n",
"INFO:tensorflow:Evaluation [805/1000]\n",
"INFO:tensorflow:Evaluation [806/1000]\n",
"INFO:tensorflow:Evaluation [807/1000]\n",
"INFO:tensorflow:Evaluation [808/1000]\n",
"INFO:tensorflow:Evaluation [809/1000]\n",
"INFO:tensorflow:Evaluation [810/1000]\n",
"INFO:tensorflow:Evaluation [811/1000]\n",
"INFO:tensorflow:Evaluation [812/1000]\n",
"INFO:tensorflow:Evaluation [813/1000]\n",
"INFO:tensorflow:Evaluation [814/1000]\n",
"INFO:tensorflow:Evaluation [815/1000]\n",
"INFO:tensorflow:Evaluation [816/1000]\n",
"INFO:tensorflow:Evaluation [817/1000]\n",
"INFO:tensorflow:Evaluation [818/1000]\n",
"INFO:tensorflow:Evaluation [819/1000]\n",
"INFO:tensorflow:Evaluation [820/1000]\n",
"INFO:tensorflow:Evaluation [821/1000]\n",
"INFO:tensorflow:Evaluation [822/1000]\n",
"INFO:tensorflow:Evaluation [823/1000]\n",
"INFO:tensorflow:Evaluation [824/1000]\n",
"INFO:tensorflow:Evaluation [825/1000]\n",
"INFO:tensorflow:Evaluation [826/1000]\n",
"INFO:tensorflow:Evaluation [827/1000]\n",
"INFO:tensorflow:Evaluation [828/1000]\n",
"INFO:tensorflow:Evaluation [829/1000]\n",
"INFO:tensorflow:Evaluation [830/1000]\n",
"INFO:tensorflow:Evaluation [831/1000]\n",
"INFO:tensorflow:Evaluation [832/1000]\n",
"INFO:tensorflow:Evaluation [833/1000]\n",
"INFO:tensorflow:Evaluation [834/1000]\n",
"INFO:tensorflow:Evaluation [835/1000]\n",
"INFO:tensorflow:Evaluation [836/1000]\n",
"INFO:tensorflow:Evaluation [837/1000]\n",
"INFO:tensorflow:Evaluation [838/1000]\n",
"INFO:tensorflow:Evaluation [839/1000]\n",
"INFO:tensorflow:Evaluation [840/1000]\n",
"INFO:tensorflow:Evaluation [841/1000]\n",
"INFO:tensorflow:Evaluation [842/1000]\n",
"INFO:tensorflow:Evaluation [843/1000]\n",
"INFO:tensorflow:Evaluation [844/1000]\n",
"INFO:tensorflow:Evaluation [845/1000]\n",
"INFO:tensorflow:Evaluation [846/1000]\n",
"INFO:tensorflow:Evaluation [847/1000]\n",
"INFO:tensorflow:Evaluation [848/1000]\n",
"INFO:tensorflow:Evaluation [849/1000]\n",
"INFO:tensorflow:Evaluation [850/1000]\n",
"INFO:tensorflow:Evaluation [851/1000]\n",
"INFO:tensorflow:Evaluation [852/1000]\n",
"INFO:tensorflow:Evaluation [853/1000]\n",
"INFO:tensorflow:Evaluation [854/1000]\n",
"INFO:tensorflow:Evaluation [855/1000]\n",
"INFO:tensorflow:Evaluation [856/1000]\n",
"INFO:tensorflow:Evaluation [857/1000]\n",
"INFO:tensorflow:Evaluation [858/1000]\n",
"INFO:tensorflow:Evaluation [859/1000]\n",
"INFO:tensorflow:Evaluation [860/1000]\n",
"INFO:tensorflow:Evaluation [861/1000]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Evaluation [862/1000]\n",
"INFO:tensorflow:Evaluation [863/1000]\n",
"INFO:tensorflow:Evaluation [864/1000]\n",
"INFO:tensorflow:Evaluation [865/1000]\n",
"INFO:tensorflow:Evaluation [866/1000]\n",
"INFO:tensorflow:Evaluation [867/1000]\n",
"INFO:tensorflow:Evaluation [868/1000]\n",
"INFO:tensorflow:Evaluation [869/1000]\n",
"INFO:tensorflow:Evaluation [870/1000]\n",
"INFO:tensorflow:Evaluation [871/1000]\n",
"INFO:tensorflow:Evaluation [872/1000]\n",
"INFO:tensorflow:Evaluation [873/1000]\n",
"INFO:tensorflow:Evaluation [874/1000]\n",
"INFO:tensorflow:Evaluation [875/1000]\n",
"INFO:tensorflow:Evaluation [876/1000]\n",
"INFO:tensorflow:Evaluation [877/1000]\n",
"INFO:tensorflow:Evaluation [878/1000]\n",
"INFO:tensorflow:Evaluation [879/1000]\n",
"INFO:tensorflow:Evaluation [880/1000]\n",
"INFO:tensorflow:Evaluation [881/1000]\n",
"INFO:tensorflow:Evaluation [882/1000]\n",
"INFO:tensorflow:Evaluation [883/1000]\n",
"INFO:tensorflow:Evaluation [884/1000]\n",
"INFO:tensorflow:Evaluation [885/1000]\n",
"INFO:tensorflow:Evaluation [886/1000]\n",
"INFO:tensorflow:Evaluation [887/1000]\n",
"INFO:tensorflow:Evaluation [888/1000]\n",
"INFO:tensorflow:Evaluation [889/1000]\n",
"INFO:tensorflow:Evaluation [890/1000]\n",
"INFO:tensorflow:Evaluation [891/1000]\n",
"INFO:tensorflow:Evaluation [892/1000]\n",
"INFO:tensorflow:Evaluation [893/1000]\n",
"INFO:tensorflow:Evaluation [894/1000]\n",
"INFO:tensorflow:Evaluation [895/1000]\n",
"INFO:tensorflow:Evaluation [896/1000]\n",
"INFO:tensorflow:Evaluation [897/1000]\n",
"INFO:tensorflow:Evaluation [898/1000]\n",
"INFO:tensorflow:Evaluation [899/1000]\n",
"INFO:tensorflow:Evaluation [900/1000]\n",
"INFO:tensorflow:Evaluation [901/1000]\n",
"INFO:tensorflow:Evaluation [902/1000]\n",
"INFO:tensorflow:Evaluation [903/1000]\n",
"INFO:tensorflow:Evaluation [904/1000]\n",
"INFO:tensorflow:Evaluation [905/1000]\n",
"INFO:tensorflow:Evaluation [906/1000]\n",
"INFO:tensorflow:Evaluation [907/1000]\n",
"INFO:tensorflow:Evaluation [908/1000]\n",
"INFO:tensorflow:Evaluation [909/1000]\n",
"INFO:tensorflow:Evaluation [910/1000]\n",
"INFO:tensorflow:Evaluation [911/1000]\n",
"INFO:tensorflow:Evaluation [912/1000]\n",
"INFO:tensorflow:Evaluation [913/1000]\n",
"INFO:tensorflow:Evaluation [914/1000]\n",
"INFO:tensorflow:Evaluation [915/1000]\n",
"INFO:tensorflow:Evaluation [916/1000]\n",
"INFO:tensorflow:Evaluation [917/1000]\n",
"INFO:tensorflow:Evaluation [918/1000]\n",
"INFO:tensorflow:Evaluation [919/1000]\n",
"INFO:tensorflow:Evaluation [920/1000]\n",
"INFO:tensorflow:Evaluation [921/1000]\n",
"INFO:tensorflow:Evaluation [922/1000]\n",
"INFO:tensorflow:Evaluation [923/1000]\n",
"INFO:tensorflow:Evaluation [924/1000]\n",
"INFO:tensorflow:Evaluation [925/1000]\n",
"INFO:tensorflow:Evaluation [926/1000]\n",
"INFO:tensorflow:Evaluation [927/1000]\n",
"INFO:tensorflow:Evaluation [928/1000]\n",
"INFO:tensorflow:Evaluation [929/1000]\n",
"INFO:tensorflow:Evaluation [930/1000]\n",
"INFO:tensorflow:Evaluation [931/1000]\n",
"INFO:tensorflow:Evaluation [932/1000]\n",
"INFO:tensorflow:Evaluation [933/1000]\n",
"INFO:tensorflow:Evaluation [934/1000]\n",
"INFO:tensorflow:Evaluation [935/1000]\n",
"INFO:tensorflow:Evaluation [936/1000]\n",
"INFO:tensorflow:Evaluation [937/1000]\n",
"INFO:tensorflow:Evaluation [938/1000]\n",
"INFO:tensorflow:Evaluation [939/1000]\n",
"INFO:tensorflow:Evaluation [940/1000]\n",
"INFO:tensorflow:Evaluation [941/1000]\n",
"INFO:tensorflow:Evaluation [942/1000]\n",
"INFO:tensorflow:Evaluation [943/1000]\n",
"INFO:tensorflow:Evaluation [944/1000]\n",
"INFO:tensorflow:Evaluation [945/1000]\n",
"INFO:tensorflow:Evaluation [946/1000]\n",
"INFO:tensorflow:Evaluation [947/1000]\n",
"INFO:tensorflow:Evaluation [948/1000]\n",
"INFO:tensorflow:Evaluation [949/1000]\n",
"INFO:tensorflow:Evaluation [950/1000]\n",
"INFO:tensorflow:Evaluation [951/1000]\n",
"INFO:tensorflow:Evaluation [952/1000]\n",
"INFO:tensorflow:Evaluation [953/1000]\n",
"INFO:tensorflow:Evaluation [954/1000]\n",
"INFO:tensorflow:Evaluation [955/1000]\n",
"INFO:tensorflow:Evaluation [956/1000]\n",
"INFO:tensorflow:Evaluation [957/1000]\n",
"INFO:tensorflow:Evaluation [958/1000]\n",
"INFO:tensorflow:Evaluation [959/1000]\n",
"INFO:tensorflow:Evaluation [960/1000]\n",
"INFO:tensorflow:Evaluation [961/1000]\n",
"INFO:tensorflow:Evaluation [962/1000]\n",
"INFO:tensorflow:Evaluation [963/1000]\n",
"INFO:tensorflow:Evaluation [964/1000]\n",
"INFO:tensorflow:Evaluation [965/1000]\n",
"INFO:tensorflow:Evaluation [966/1000]\n",
"INFO:tensorflow:Evaluation [967/1000]\n",
"INFO:tensorflow:Evaluation [968/1000]\n",
"INFO:tensorflow:Evaluation [969/1000]\n",
"INFO:tensorflow:Evaluation [970/1000]\n",
"INFO:tensorflow:Evaluation [971/1000]\n",
"INFO:tensorflow:Evaluation [972/1000]\n",
"INFO:tensorflow:Evaluation [973/1000]\n",
"INFO:tensorflow:Evaluation [974/1000]\n",
"INFO:tensorflow:Evaluation [975/1000]\n",
"INFO:tensorflow:Evaluation [976/1000]\n",
"INFO:tensorflow:Evaluation [977/1000]\n",
"INFO:tensorflow:Evaluation [978/1000]\n",
"INFO:tensorflow:Evaluation [979/1000]\n",
"INFO:tensorflow:Evaluation [980/1000]\n",
"INFO:tensorflow:Evaluation [981/1000]\n",
"INFO:tensorflow:Evaluation [982/1000]\n",
"INFO:tensorflow:Evaluation [983/1000]\n",
"INFO:tensorflow:Evaluation [984/1000]\n",
"INFO:tensorflow:Evaluation [985/1000]\n",
"INFO:tensorflow:Evaluation [986/1000]\n",
"INFO:tensorflow:Evaluation [987/1000]\n",
"INFO:tensorflow:Evaluation [988/1000]\n",
"INFO:tensorflow:Evaluation [989/1000]\n",
"INFO:tensorflow:Evaluation [990/1000]\n",
"INFO:tensorflow:Evaluation [991/1000]\n",
"INFO:tensorflow:Evaluation [992/1000]\n",
"INFO:tensorflow:Evaluation [993/1000]\n",
"INFO:tensorflow:Evaluation [994/1000]\n",
"INFO:tensorflow:Evaluation [995/1000]\n",
"INFO:tensorflow:Evaluation [996/1000]\n",
"INFO:tensorflow:Evaluation [997/1000]\n",
"INFO:tensorflow:Evaluation [998/1000]\n",
"INFO:tensorflow:Evaluation [999/1000]\n",
"INFO:tensorflow:Evaluation [1000/1000]\n",
"INFO:tensorflow:Finished evaluation at 2018-05-22-10:29:13\n",
"INFO:tensorflow:Saving dict for global step 1000: average_loss = 4.08338, global_step = 1000, loss = 40.8338\n"
]
}
],
"source": [
"eval_metrics = estimator.evaluate(input_fn = eval_input_func, steps = 1000)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train metrics: {'average_loss': 4.0622344, 'loss': 40.622345, 'global_step': 1000}\n",
"eval metrics: {'average_loss': 4.0833774, 'loss': 40.833775, 'global_step': 1000}\n"
]
}
],
"source": [
"# Las estadísticas del entrenamiento y de la evaluación de nuestro test dataset son:\n",
"print(\"train metrics: {}\".format(train_metrics))\n",
"print(\"eval metrics: {}\".format(eval_metrics))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Obteniendo las predicciones del modelo"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Volvemos a hacer uso de tf.estimator.inputs.numpy_input_fn()\n",
"# Intentamos predecir qué valores obtendríamos del modelo si introducimos, \n",
"# por ejemplo, un vector np.linspace(0,10,10)\n",
"input_fn_predict = tf.estimator.inputs.numpy_input_fn({\"x\": np.linspace(0,10,10)}, shuffle=False)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Restoring parameters from /tmp/tmpt20_mtn9/model.ckpt-1000\n"
]
},
{
"data": {
"text/plain": [
"[{'predictions': array([-0.00858639], dtype=float32)},\n",
" {'predictions': array([ 2.17043519], dtype=float32)},\n",
" {'predictions': array([ 4.34945679], dtype=float32)},\n",
" {'predictions': array([ 6.52847767], dtype=float32)},\n",
" {'predictions': array([ 8.70750046], dtype=float32)},\n",
" {'predictions': array([ 10.88652039], dtype=float32)},\n",
" {'predictions': array([ 13.06554222], dtype=float32)},\n",
" {'predictions': array([ 15.24456406], dtype=float32)},\n",
" {'predictions': array([ 17.42358589], dtype=float32)},\n",
" {'predictions': array([ 19.60260582], dtype=float32)}]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(estimator.predict(input_fn = input_fn_predict))"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Restoring parameters from /tmp/tmpt20_mtn9/model.ckpt-1000\n"
]
}
],
"source": [
"# Para mejor manejabilidad a la hora de realizar cálculs, hacemos un append de las predicciones:\n",
"predictions = []\n",
"for x in estimator.predict(input_fn = input_fn_predict):\n",
" predictions.append(x['predictions'])"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nN7m1+gAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5983c1d748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Volvemos a representar una muestra de nuestros datos para superponer las predicciones anteriormente calculadas.\n",
"plt.scatter(sampling[\"x_data\"], sampling[\"y_label\"], s = 7)\n",
"plt.plot(np.linspace(0,10,10), predictions, 'r', linewidth = .75)\n",
"plt.grid()\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"y\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Con esto hemos conseguido abordar un problema de regresión lineal con un data set extenso de manera satisfactoria haciendo uso de TensorFlow."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment