In [0]:
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
import adanet

from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten

In [0]:
# Load dataset
(x_train, labels_train), (x_test, labels_test) = tf.keras.datasets.cifar10.load_data()

print(f'x_train shape: {x_train.shape}')
print(f'labels_train shape: {labels_train.shape}')
print(f'x_test  shape: {x_test.shape}')
print(f'labels_test  shape: {labels_test.shape}')


x_train shape: (50000, 32, 32, 3)
labels_train shape: (50000, 1)
x_test  shape: (10000, 32, 32, 3)
labels_test  shape: (10000, 1)

In [0]:
x_train = x_train / 255 # normalize data
x_test  = x_test / 255  # normalize data

x_train = x_train.astype(np.float32) # cast to float32
x_test = x_test.astype(np.float32)   # cast to float32

labels_train = labels_train.astype(np.int32) # cast to int32
labels_test = labels_test.astype(np.int32)   # cast to int32

In [0]:
TRAIN_SIZE = x_train.shape[0]
EPOCHS = 10
BATCH_SIZE=32
LEARNING_RATE = 0.001

In [0]:
def show_images(rows=5, columns=5):
    """Prints a set of images."""

    for i in range(columns):
        for j in range(rows):
            index = j * columns + i + 1
            plt.subplot(rows, columns, index)
            plt.imshow(x_train[index-1])
    plt.show()

In [0]:
show_images()



In [0]:
train_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x": x_train},
    y=labels_train,
    batch_size=BATCH_SIZE,
    num_epochs=EPOCHS,
    shuffle=True)

adanet_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x": x_train},
    y=labels_train,
    batch_size=BATCH_SIZE,
    num_epochs=1,
    shuffle=False)

test_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x": x_test},
    y=labels_test,
    batch_size=BATCH_SIZE,
    num_epochs=1,
    shuffle=False)

In [0]:
# 

def cnn_model(features, labels, mode, params):
    images = list(features.values())[0]
    
    x = Conv2D(32, kernel_size=7, activation='relu')(images)
    x = MaxPooling2D(strides=2)(x)
    x = Flatten()(x)
    x = Dense(100, activation='relu')(x)
    logits = Dense(10)(x)

    # Compute predictions.
    predicted_classes = tf.argmax(logits, 1)
    if mode == tf.estimator.ModeKeys.PREDICT:
        predictions = {
            'class_ids': predicted_classes[:, tf.newaxis],
            'probabilities': tf.nn.softmax(logits),
            'logits': logits,
        }
        return tf.estimator.EstimatorSpec(mode, predictions=predictions)

    # Compute loss.
    loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)

    # Compute evaluation metrics.
    accuracy = tf.metrics.accuracy(labels=labels,
                                   predictions=predicted_classes,
                                   name='acc_op')
    metrics = {'accuracy': accuracy}
    tf.summary.scalar('accuracy', accuracy[1])

    if mode == tf.estimator.ModeKeys.EVAL:
        return tf.estimator.EstimatorSpec(
            mode, loss=loss, eval_metric_ops=metrics)

    # Create training op.
    assert mode == tf.estimator.ModeKeys.TRAIN

    optimizer = tf.train.RMSPropOptimizer(learning_rate=LEARNING_RATE, decay=0.0)
    train_op = optimizer.minimize(loss, global_step=tf.train.get_global_step())
    return tf.estimator.EstimatorSpec(mode, loss=loss, train_op=train_op)

In [0]:
classifier = tf.estimator.Estimator(model_fn=cnn_model)


INFO:tensorflow:Using default config.
WARNING:tensorflow:Using temporary folder as model directory: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp
INFO:tensorflow:Using config: {'_model_dir': '/var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true
graph_options {
  rewrite_options {
    meta_optimizer_iterations: ONE
  }
}
, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0xb2c3a94a8>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}
WARNING:tensorflow:Estimator's model_fn (<function cnn_model at 0xb2c417158>) includes params argument, but params are not passed to Estimator.

In [0]:
MAX_STEPS = TRAIN_SIZE * EPOCHS // BATCH_SIZE

results, _ = tf.estimator.train_and_evaluate(
    classifier,
    train_spec=tf.estimator.TrainSpec(
        input_fn=train_input_fn,
        max_steps=MAX_STEPS),
    eval_spec=tf.estimator.EvalSpec(
        input_fn=test_input_fn,
        steps=None))


INFO:tensorflow:Not using Distribute Coordinator.
INFO:tensorflow:Running training and evaluation locally (non-distributed).
INFO:tensorflow:Start train and evaluate loop. The evaluate will happen after every checkpoint. Checkpoint frequency is determined based on RunConfig arguments: save_checkpoints_steps None or save_checkpoints_secs 600.
WARNING:tensorflow:From /Users/cezarlima/miniconda3/envs/adanet-lab/lib/python3.6/site-packages/tensorflow/python/estimator/inputs/queues/feeding_queue_runner.py:62: QueueRunner.__init__ (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the `tf.data` module.
WARNING:tensorflow:From /Users/cezarlima/miniconda3/envs/adanet-lab/lib/python3.6/site-packages/tensorflow/python/estimator/inputs/queues/feeding_functions.py:500: add_queue_runner (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the `tf.data` module.
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
WARNING:tensorflow:From /Users/cezarlima/miniconda3/envs/adanet-lab/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py:804: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the `tf.data` module.
INFO:tensorflow:Saving checkpoints for 0 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp/model.ckpt.
INFO:tensorflow:loss = 2.3518612, step = 1
INFO:tensorflow:global_step/sec: 50.2067
INFO:tensorflow:loss = 2.345282, step = 101 (1.993 sec)
INFO:tensorflow:global_step/sec: 54.3056
INFO:tensorflow:loss = 2.0898268, step = 201 (1.841 sec)
INFO:tensorflow:global_step/sec: 52.382
INFO:tensorflow:loss = 1.9373968, step = 301 (1.909 sec)
INFO:tensorflow:global_step/sec: 50.4458
INFO:tensorflow:loss = 2.1226132, step = 401 (1.982 sec)
INFO:tensorflow:global_step/sec: 49.2401
INFO:tensorflow:loss = 1.9677167, step = 501 (2.031 sec)
INFO:tensorflow:global_step/sec: 47.0564
INFO:tensorflow:loss = 1.9391323, step = 601 (2.125 sec)
INFO:tensorflow:global_step/sec: 50.5499
INFO:tensorflow:loss = 2.6281617, step = 701 (1.978 sec)
INFO:tensorflow:global_step/sec: 48.9194
INFO:tensorflow:loss = 2.213282, step = 801 (2.045 sec)
INFO:tensorflow:global_step/sec: 49.7966
INFO:tensorflow:loss = 1.9477887, step = 901 (2.008 sec)
INFO:tensorflow:global_step/sec: 44.4546
INFO:tensorflow:loss = 2.2791743, step = 1001 (2.250 sec)
INFO:tensorflow:global_step/sec: 37.668
INFO:tensorflow:loss = 2.5397873, step = 1101 (2.654 sec)
INFO:tensorflow:global_step/sec: 30.2811
INFO:tensorflow:loss = 2.8435454, step = 1201 (3.303 sec)
INFO:tensorflow:global_step/sec: 46.1459
INFO:tensorflow:loss = 1.567037, step = 1301 (2.167 sec)
INFO:tensorflow:global_step/sec: 51.3503
INFO:tensorflow:loss = 1.2783933, step = 1401 (1.947 sec)
INFO:tensorflow:global_step/sec: 48.3903
INFO:tensorflow:loss = 2.3792124, step = 1501 (2.066 sec)
INFO:tensorflow:global_step/sec: 41.5168
INFO:tensorflow:loss = 1.6476965, step = 1601 (2.409 sec)
INFO:tensorflow:global_step/sec: 48.2844
INFO:tensorflow:loss = 1.7932339, step = 1701 (2.071 sec)
INFO:tensorflow:global_step/sec: 48.0744
INFO:tensorflow:loss = 1.2504195, step = 1801 (2.080 sec)
INFO:tensorflow:global_step/sec: 48.4369
INFO:tensorflow:loss = 2.851716, step = 1901 (2.065 sec)
INFO:tensorflow:global_step/sec: 49.3641
INFO:tensorflow:loss = 1.9466769, step = 2001 (2.025 sec)
INFO:tensorflow:global_step/sec: 47.4387
INFO:tensorflow:loss = 2.7178006, step = 2101 (2.108 sec)
INFO:tensorflow:global_step/sec: 45.0442
INFO:tensorflow:loss = 2.2566857, step = 2201 (2.220 sec)
INFO:tensorflow:global_step/sec: 47.8796
INFO:tensorflow:loss = 2.454936, step = 2301 (2.088 sec)
INFO:tensorflow:global_step/sec: 48.4809
INFO:tensorflow:loss = 3.4896162, step = 2401 (2.063 sec)
INFO:tensorflow:global_step/sec: 49.467
INFO:tensorflow:loss = 2.0139408, step = 2501 (2.021 sec)
INFO:tensorflow:global_step/sec: 47.5714
INFO:tensorflow:loss = 2.6464698, step = 2601 (2.102 sec)
INFO:tensorflow:global_step/sec: 48.8681
INFO:tensorflow:loss = 1.9912782, step = 2701 (2.047 sec)
INFO:tensorflow:global_step/sec: 47.6109
INFO:tensorflow:loss = 1.7845062, step = 2801 (2.100 sec)
INFO:tensorflow:global_step/sec: 47.6874
INFO:tensorflow:loss = 2.0985284, step = 2901 (2.097 sec)
INFO:tensorflow:global_step/sec: 48.3268
INFO:tensorflow:loss = 2.6013188, step = 3001 (2.069 sec)
INFO:tensorflow:global_step/sec: 51.6523
INFO:tensorflow:loss = 2.0052428, step = 3101 (1.936 sec)
INFO:tensorflow:global_step/sec: 51.1051
INFO:tensorflow:loss = 1.5216136, step = 3201 (1.957 sec)
INFO:tensorflow:global_step/sec: 48.5828
INFO:tensorflow:loss = 2.1301703, step = 3301 (2.058 sec)
INFO:tensorflow:global_step/sec: 49.2396
INFO:tensorflow:loss = 2.582697, step = 3401 (2.031 sec)
INFO:tensorflow:global_step/sec: 50.1646
INFO:tensorflow:loss = 2.7571015, step = 3501 (1.993 sec)
INFO:tensorflow:global_step/sec: 47.7972
INFO:tensorflow:loss = 1.6341693, step = 3601 (2.092 sec)
INFO:tensorflow:global_step/sec: 46.5474
INFO:tensorflow:loss = 3.0168476, step = 3701 (2.148 sec)
INFO:tensorflow:global_step/sec: 47.8736
INFO:tensorflow:loss = 2.7905676, step = 3801 (2.089 sec)
INFO:tensorflow:global_step/sec: 47.6243
INFO:tensorflow:loss = 1.8657756, step = 3901 (2.100 sec)
INFO:tensorflow:global_step/sec: 46.5794
INFO:tensorflow:loss = 2.0908587, step = 4001 (2.147 sec)
INFO:tensorflow:global_step/sec: 51.9232
INFO:tensorflow:loss = 1.6946144, step = 4101 (1.926 sec)
INFO:tensorflow:global_step/sec: 46.5909
INFO:tensorflow:loss = 2.6660385, step = 4201 (2.146 sec)
INFO:tensorflow:global_step/sec: 53.0654
INFO:tensorflow:loss = 1.9627118, step = 4301 (1.884 sec)
INFO:tensorflow:global_step/sec: 51.2886
INFO:tensorflow:loss = 1.54514, step = 4401 (1.950 sec)
INFO:tensorflow:global_step/sec: 52.8754
INFO:tensorflow:loss = 2.5205045, step = 4501 (1.891 sec)
INFO:tensorflow:global_step/sec: 52.4284
INFO:tensorflow:loss = 3.1340132, step = 4601 (1.907 sec)
INFO:tensorflow:global_step/sec: 51.5575
INFO:tensorflow:loss = 2.0686803, step = 4701 (1.940 sec)
INFO:tensorflow:global_step/sec: 50.3356
INFO:tensorflow:loss = 3.5556934, step = 4801 (1.986 sec)
INFO:tensorflow:global_step/sec: 50.4824
INFO:tensorflow:loss = 2.2920885, step = 4901 (1.981 sec)
INFO:tensorflow:global_step/sec: 51.8039
INFO:tensorflow:loss = 2.8353336, step = 5001 (1.930 sec)
INFO:tensorflow:global_step/sec: 50.798
INFO:tensorflow:loss = 3.8308344, step = 5101 (1.969 sec)
INFO:tensorflow:global_step/sec: 52.0372
INFO:tensorflow:loss = 3.2015338, step = 5201 (1.922 sec)
INFO:tensorflow:global_step/sec: 51.454
INFO:tensorflow:loss = 1.8064392, step = 5301 (1.943 sec)
INFO:tensorflow:global_step/sec: 51.0912
INFO:tensorflow:loss = 1.5825043, step = 5401 (1.958 sec)
INFO:tensorflow:global_step/sec: 51.9076
INFO:tensorflow:loss = 1.8492999, step = 5501 (1.926 sec)
INFO:tensorflow:global_step/sec: 50.1624
INFO:tensorflow:loss = 2.1333475, step = 5601 (1.994 sec)
INFO:tensorflow:global_step/sec: 51.04
INFO:tensorflow:loss = 2.7917862, step = 5701 (1.960 sec)
INFO:tensorflow:global_step/sec: 51.9132
INFO:tensorflow:loss = 2.7099152, step = 5801 (1.926 sec)
INFO:tensorflow:global_step/sec: 54.728
INFO:tensorflow:loss = 2.4766738, step = 5901 (1.827 sec)
INFO:tensorflow:global_step/sec: 54.3747
INFO:tensorflow:loss = 2.9829235, step = 6001 (1.839 sec)
INFO:tensorflow:global_step/sec: 54.3835
INFO:tensorflow:loss = 3.5570517, step = 6101 (1.839 sec)
INFO:tensorflow:global_step/sec: 52.0134
INFO:tensorflow:loss = 2.2828393, step = 6201 (1.923 sec)
INFO:tensorflow:global_step/sec: 52.8909
INFO:tensorflow:loss = 2.9156656, step = 6301 (1.891 sec)
INFO:tensorflow:global_step/sec: 51.0304
INFO:tensorflow:loss = 3.0511012, step = 6401 (1.960 sec)
INFO:tensorflow:global_step/sec: 52.428
INFO:tensorflow:loss = 1.3904434, step = 6501 (1.907 sec)
INFO:tensorflow:global_step/sec: 51.92
INFO:tensorflow:loss = 2.2226858, step = 6601 (1.926 sec)
INFO:tensorflow:global_step/sec: 52.5103
INFO:tensorflow:loss = 4.506811, step = 6701 (1.904 sec)
INFO:tensorflow:global_step/sec: 50.893
INFO:tensorflow:loss = 2.371473, step = 6801 (1.965 sec)
INFO:tensorflow:global_step/sec: 50.8176
INFO:tensorflow:loss = 2.979251, step = 6901 (1.968 sec)
INFO:tensorflow:global_step/sec: 52.1259
INFO:tensorflow:loss = 2.1790307, step = 7001 (1.918 sec)
INFO:tensorflow:global_step/sec: 52.3832
INFO:tensorflow:loss = 2.7649, step = 7101 (1.909 sec)
INFO:tensorflow:global_step/sec: 51.4114
INFO:tensorflow:loss = 2.3516412, step = 7201 (1.945 sec)
INFO:tensorflow:global_step/sec: 51.8235
INFO:tensorflow:loss = 4.1638207, step = 7301 (1.930 sec)
INFO:tensorflow:global_step/sec: 52.008
INFO:tensorflow:loss = 3.0381882, step = 7401 (1.923 sec)
INFO:tensorflow:global_step/sec: 53.0091
INFO:tensorflow:loss = 3.465091, step = 7501 (1.887 sec)
INFO:tensorflow:global_step/sec: 51.6593
INFO:tensorflow:loss = 2.1988876, step = 7601 (1.936 sec)
INFO:tensorflow:global_step/sec: 51.5455
INFO:tensorflow:loss = 3.1720934, step = 7701 (1.940 sec)
INFO:tensorflow:global_step/sec: 53.1885
INFO:tensorflow:loss = 1.081533, step = 7801 (1.880 sec)
INFO:tensorflow:global_step/sec: 52.0718
INFO:tensorflow:loss = 1.927069, step = 7901 (1.920 sec)
INFO:tensorflow:global_step/sec: 53.6953
INFO:tensorflow:loss = 2.2040863, step = 8001 (1.862 sec)
INFO:tensorflow:global_step/sec: 51.2462
INFO:tensorflow:loss = 2.2240143, step = 8101 (1.951 sec)
INFO:tensorflow:global_step/sec: 51.1893
INFO:tensorflow:loss = 4.637932, step = 8201 (1.953 sec)
INFO:tensorflow:global_step/sec: 50.7219
INFO:tensorflow:loss = 1.22882, step = 8301 (1.971 sec)
INFO:tensorflow:global_step/sec: 45.7242
INFO:tensorflow:loss = 1.9467933, step = 8401 (2.188 sec)
INFO:tensorflow:global_step/sec: 49.5078
INFO:tensorflow:loss = 2.4364107, step = 8501 (2.020 sec)
INFO:tensorflow:global_step/sec: 46.7107
INFO:tensorflow:loss = 1.9375013, step = 8601 (2.141 sec)
INFO:tensorflow:global_step/sec: 51.8289
INFO:tensorflow:loss = 1.4631628, step = 8701 (1.929 sec)
INFO:tensorflow:global_step/sec: 51.8753
INFO:tensorflow:loss = 1.7155603, step = 8801 (1.928 sec)
INFO:tensorflow:global_step/sec: 52.3476
INFO:tensorflow:loss = 2.4441879, step = 8901 (1.911 sec)
INFO:tensorflow:global_step/sec: 52.0697
INFO:tensorflow:loss = 3.0834115, step = 9001 (1.920 sec)
INFO:tensorflow:global_step/sec: 51.5919
INFO:tensorflow:loss = 2.6190164, step = 9101 (1.938 sec)
INFO:tensorflow:global_step/sec: 51.1675
INFO:tensorflow:loss = 3.0480642, step = 9201 (1.955 sec)
INFO:tensorflow:global_step/sec: 52.7914
INFO:tensorflow:loss = 4.159259, step = 9301 (1.894 sec)
INFO:tensorflow:global_step/sec: 52.8746
INFO:tensorflow:loss = 2.338027, step = 9401 (1.891 sec)
INFO:tensorflow:global_step/sec: 52.3344
INFO:tensorflow:loss = 4.036276, step = 9501 (1.911 sec)
INFO:tensorflow:global_step/sec: 51.5191
INFO:tensorflow:loss = 5.035763, step = 9601 (1.941 sec)
INFO:tensorflow:global_step/sec: 50.0242
INFO:tensorflow:loss = 2.7904744, step = 9701 (1.999 sec)
INFO:tensorflow:global_step/sec: 53.104
INFO:tensorflow:loss = 3.1710281, step = 9801 (1.883 sec)
INFO:tensorflow:global_step/sec: 51.1121
INFO:tensorflow:loss = 4.861381, step = 9901 (1.956 sec)
INFO:tensorflow:global_step/sec: 52.1239
INFO:tensorflow:loss = 3.3308666, step = 10001 (1.919 sec)
INFO:tensorflow:global_step/sec: 52.2125
INFO:tensorflow:loss = 2.0814533, step = 10101 (1.915 sec)
INFO:tensorflow:global_step/sec: 53.4912
INFO:tensorflow:loss = 2.5862386, step = 10201 (1.870 sec)
INFO:tensorflow:global_step/sec: 52.6385
INFO:tensorflow:loss = 1.4819026, step = 10301 (1.899 sec)
INFO:tensorflow:global_step/sec: 52.4092
INFO:tensorflow:loss = 3.7491322, step = 10401 (1.908 sec)
INFO:tensorflow:global_step/sec: 54.1596
INFO:tensorflow:loss = 2.4434836, step = 10501 (1.846 sec)
INFO:tensorflow:global_step/sec: 54.5451
INFO:tensorflow:loss = 2.3665566, step = 10601 (1.833 sec)
INFO:tensorflow:global_step/sec: 53.6081
INFO:tensorflow:loss = 2.397561, step = 10701 (1.865 sec)
INFO:tensorflow:global_step/sec: 52.0659
INFO:tensorflow:loss = 4.7896395, step = 10801 (1.921 sec)
INFO:tensorflow:global_step/sec: 53.6787
INFO:tensorflow:loss = 4.3822823, step = 10901 (1.863 sec)
INFO:tensorflow:global_step/sec: 50.9526
INFO:tensorflow:loss = 6.3573027, step = 11001 (1.962 sec)
INFO:tensorflow:global_step/sec: 50.0165
INFO:tensorflow:loss = 3.4837418, step = 11101 (2.000 sec)
INFO:tensorflow:global_step/sec: 52.8061
INFO:tensorflow:loss = 3.9506147, step = 11201 (1.894 sec)
INFO:tensorflow:global_step/sec: 55.6686
INFO:tensorflow:loss = 1.8372236, step = 11301 (1.796 sec)
INFO:tensorflow:global_step/sec: 57.9064
INFO:tensorflow:loss = 1.7046931, step = 11401 (1.727 sec)
INFO:tensorflow:global_step/sec: 57.9387
INFO:tensorflow:loss = 2.0858426, step = 11501 (1.726 sec)
INFO:tensorflow:global_step/sec: 51.4189
INFO:tensorflow:loss = 2.317305, step = 11601 (1.945 sec)
INFO:tensorflow:global_step/sec: 50.7363
INFO:tensorflow:loss = 3.1495957, step = 11701 (1.971 sec)
INFO:tensorflow:global_step/sec: 51.2221
INFO:tensorflow:loss = 1.7998521, step = 11801 (1.952 sec)
INFO:tensorflow:global_step/sec: 53.78
INFO:tensorflow:loss = 2.3683197, step = 11901 (1.859 sec)
INFO:tensorflow:global_step/sec: 54.274
INFO:tensorflow:loss = 2.935412, step = 12001 (1.843 sec)
INFO:tensorflow:global_step/sec: 51.7672
INFO:tensorflow:loss = 2.7489774, step = 12101 (1.931 sec)
INFO:tensorflow:global_step/sec: 51.9879
INFO:tensorflow:loss = 2.03949, step = 12201 (1.924 sec)
INFO:tensorflow:global_step/sec: 52.681
INFO:tensorflow:loss = 3.5151029, step = 12301 (1.898 sec)
INFO:tensorflow:global_step/sec: 51.7776
INFO:tensorflow:loss = 3.410092, step = 12401 (1.931 sec)
INFO:tensorflow:global_step/sec: 52.5243
INFO:tensorflow:loss = 2.6021519, step = 12501 (1.904 sec)
INFO:tensorflow:global_step/sec: 52.0134
INFO:tensorflow:loss = 6.6744046, step = 12601 (1.923 sec)
INFO:tensorflow:global_step/sec: 50.3606
INFO:tensorflow:loss = 3.438857, step = 12701 (1.986 sec)
INFO:tensorflow:global_step/sec: 51.2003
INFO:tensorflow:loss = 2.5352569, step = 12801 (1.953 sec)
INFO:tensorflow:global_step/sec: 51.9776
INFO:tensorflow:loss = 3.328858, step = 12901 (1.924 sec)
INFO:tensorflow:global_step/sec: 51.8486
INFO:tensorflow:loss = 3.7638254, step = 13001 (1.928 sec)
INFO:tensorflow:global_step/sec: 49.6159
INFO:tensorflow:loss = 1.380151, step = 13101 (2.016 sec)
INFO:tensorflow:global_step/sec: 49.2339
INFO:tensorflow:loss = 0.8784983, step = 13201 (2.031 sec)
INFO:tensorflow:global_step/sec: 50.5027
INFO:tensorflow:loss = 2.0198493, step = 13301 (1.980 sec)
INFO:tensorflow:global_step/sec: 50.6126
INFO:tensorflow:loss = 2.5234044, step = 13401 (1.976 sec)
INFO:tensorflow:global_step/sec: 51.2438
INFO:tensorflow:loss = 5.140855, step = 13501 (1.951 sec)
INFO:tensorflow:global_step/sec: 51.7864
INFO:tensorflow:loss = 5.494957, step = 13601 (1.931 sec)
INFO:tensorflow:global_step/sec: 51.5142
INFO:tensorflow:loss = 2.964618, step = 13701 (1.941 sec)
INFO:tensorflow:global_step/sec: 53.7278
INFO:tensorflow:loss = 2.3973908, step = 13801 (1.861 sec)
INFO:tensorflow:global_step/sec: 51.959
INFO:tensorflow:loss = 1.911872, step = 13901 (1.924 sec)
INFO:tensorflow:global_step/sec: 51.6318
INFO:tensorflow:loss = 2.8153253, step = 14001 (1.937 sec)
INFO:tensorflow:global_step/sec: 52.0226
INFO:tensorflow:loss = 4.768007, step = 14101 (1.922 sec)
INFO:tensorflow:global_step/sec: 51.1118
INFO:tensorflow:loss = 4.542929, step = 14201 (1.956 sec)
INFO:tensorflow:global_step/sec: 51.8302
INFO:tensorflow:loss = 3.989104, step = 14301 (1.929 sec)
INFO:tensorflow:global_step/sec: 49.4465
INFO:tensorflow:loss = 3.3209226, step = 14401 (2.023 sec)
INFO:tensorflow:global_step/sec: 49.4995
INFO:tensorflow:loss = 16.375303, step = 14501 (2.020 sec)
INFO:tensorflow:global_step/sec: 52.5256
INFO:tensorflow:loss = 1.9008515, step = 14601 (1.903 sec)
INFO:tensorflow:global_step/sec: 50.725
INFO:tensorflow:loss = 3.8148127, step = 14701 (1.971 sec)
INFO:tensorflow:global_step/sec: 49.353
INFO:tensorflow:loss = 3.3519416, step = 14801 (2.026 sec)
INFO:tensorflow:global_step/sec: 49.2628
INFO:tensorflow:loss = 3.5327277, step = 14901 (2.030 sec)
INFO:tensorflow:global_step/sec: 48.3998
INFO:tensorflow:loss = 5.2676, step = 15001 (2.066 sec)
INFO:tensorflow:global_step/sec: 52.0411
INFO:tensorflow:loss = 2.6611755, step = 15101 (1.922 sec)
INFO:tensorflow:global_step/sec: 54.3288
INFO:tensorflow:loss = 3.8642845, step = 15201 (1.841 sec)
INFO:tensorflow:global_step/sec: 52.6145
INFO:tensorflow:loss = 2.2586288, step = 15301 (1.901 sec)
INFO:tensorflow:global_step/sec: 51.24
INFO:tensorflow:loss = 3.069327, step = 15401 (1.951 sec)
INFO:tensorflow:global_step/sec: 51.2622
INFO:tensorflow:loss = 2.548195, step = 15501 (1.951 sec)
INFO:tensorflow:global_step/sec: 52.0692
INFO:tensorflow:loss = 6.2818756, step = 15601 (1.920 sec)
INFO:tensorflow:Saving checkpoints for 15625 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp/model.ckpt.
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Starting evaluation at 2018-12-03-19:14:10
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp/model.ckpt-15625
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Finished evaluation at 2018-12-03-19:14:13
INFO:tensorflow:Saving dict for global step 15625: accuracy = 0.3715, global_step = 15625, loss = 4.911181
INFO:tensorflow:Saving 'checkpoint_path' summary for global step 15625: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmpy9l152hp/model.ckpt-15625
INFO:tensorflow:Loss for final step: 3.202104.

In [0]:
print("Accuracy:", results["accuracy"])
print("Loss:", results["loss"])


Accuracy: 0.3715
Loss: 4.911181

In [0]:
# base code: https://github.com/tensorflow/adanet/blob/master/adanet/examples/tutorials/customizing_adanet.ipynb

class CNNBuilder(adanet.subnetwork.Builder):
    def __init__(self, n_convs):
        self._n_convs = n_convs
        
    def build_subnetwork(self,
                         features,
                         logits_dimension,
                         training,
                         iteration_step,
                         summary,
                         previous_ensemble=None):
        """See `adanet.subnetwork.Builder`."""
        images = list(features.values())[0]
        x = images
    
        for i in range(self._n_convs):
            x = Conv2D(32, kernel_size=7, activation='relu')(x)
            x = MaxPooling2D(strides=2)(x)
        
        x = Flatten()(x)
        x = Dense(100, activation='relu')(x)
        
        logits = Dense(10)(x)

        complexity = tf.constant(self._n_convs + 1)

        persisted_tensors = {'n_convs': tf.constant(self._n_convs)}
        
        return adanet.Subnetwork(
            last_layer=x,
            logits=logits,
            complexity=complexity,
            persisted_tensors=persisted_tensors)
    
    def build_subnetwork_train_op(self,
                                subnetwork,
                                loss,
                                var_list,
                                labels,
                                iteration_step,
                                summary,
                                previous_ensemble=None):
        """See `adanet.subnetwork.Builder`."""

        optimizer = tf.train.RMSPropOptimizer(learning_rate=LEARNING_RATE, decay=0.0)
        # NOTE: The `adanet.Estimator` increments the global step.
        return optimizer.minimize(loss=loss, var_list=var_list)

    def build_mixture_weights_train_op(self, loss, var_list, logits, labels,
                                     iteration_step, summary):
        """See `adanet.subnetwork.Builder`."""
        return tf.no_op("mixture_weights_train_op")

    @property
    def name(self):
        """See `adanet.subnetwork.Builder`."""
        if self._n_convs == 0:
            return 'dense'
        return f'cnn_{self._n_convs}'

In [0]:
class CNNGenerator(adanet.subnetwork.Generator):
    """Generates a `CNN` at each iteration.
    """

    def __init__(self):
        """Initializes a `Generator` that builds `SimpleCNNs`.

        Args:
          learning_rate: The float learning rate to use.
          max_iteration_steps: The number of steps per iteration.
          seed: The random seed.

        Returns:
          An instance of `Generator`.
        """
        self._cnn_builder_fn = CNNBuilder

    def generate_candidates(self, previous_ensemble, iteration_number,
                          previous_ensemble_reports, all_reports):
        """See `adanet.subnetwork.Generator`."""
        n_convs = 0
        if previous_ensemble:
            n_convs = tf.contrib.util.constant_value(
                previous_ensemble.weighted_subnetworks[-1]
                .subnetwork
                .persisted_tensors['n_convs'])

        return [
            self._cnn_builder_fn(n_convs=n_convs),
            self._cnn_builder_fn(n_convs=n_convs + 1)
        ]

In [0]:
N_CLASSES = 10
head = tf.contrib.estimator.multi_class_head(N_CLASSES)

In [0]:
ADANET_STEPS = 2
max_iteration_steps = MAX_STEPS // ADANET_STEPS

In [0]:
estimator = adanet.Estimator(
    head=head,
    subnetwork_generator=CNNGenerator(),
    max_iteration_steps=max_iteration_steps,
    evaluator=adanet.Evaluator(
        input_fn=adanet_input_fn,
        steps=None),
    adanet_loss_decay=.99)


INFO:tensorflow:Using default config.
WARNING:tensorflow:Using temporary folder as model directory: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe
INFO:tensorflow:Using config: {'_model_dir': '/var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true
graph_options {
  rewrite_options {
    meta_optimizer_iterations: ONE
  }
}
, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0xb2d547cc0>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

In [0]:
results, _ = tf.estimator.train_and_evaluate(
    estimator,
    train_spec=tf.estimator.TrainSpec(
        input_fn=train_input_fn,
        max_steps=MAX_STEPS),
    eval_spec=tf.estimator.EvalSpec(
        input_fn=test_input_fn,
        steps=None))


INFO:tensorflow:Not using Distribute Coordinator.
INFO:tensorflow:Running training and evaluation locally (non-distributed).
INFO:tensorflow:Start train and evaluate loop. The evaluate will happen after every checkpoint. Checkpoint frequency is determined based on RunConfig arguments: save_checkpoints_steps None or save_checkpoints_secs 600.
INFO:tensorflow:Beginning training AdaNet iteration 0
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 0 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:loss = 2.3500273, step = 1
INFO:tensorflow:global_step/sec: 44.6849
INFO:tensorflow:loss = 2.030254, step = 101 (2.239 sec)
INFO:tensorflow:global_step/sec: 47.3606
INFO:tensorflow:loss = 2.1959734, step = 201 (2.112 sec)
INFO:tensorflow:global_step/sec: 46.2128
INFO:tensorflow:loss = 1.8307668, step = 301 (2.164 sec)
INFO:tensorflow:global_step/sec: 46.4516
INFO:tensorflow:loss = 2.0513039, step = 401 (2.153 sec)
INFO:tensorflow:global_step/sec: 43.4013
INFO:tensorflow:loss = 1.3753068, step = 501 (2.304 sec)
INFO:tensorflow:global_step/sec: 34.6968
INFO:tensorflow:loss = 1.9535065, step = 601 (2.882 sec)
INFO:tensorflow:global_step/sec: 27.2098
INFO:tensorflow:loss = 1.9798727, step = 701 (3.675 sec)
INFO:tensorflow:global_step/sec: 34.428
INFO:tensorflow:loss = 2.3456497, step = 801 (2.904 sec)
INFO:tensorflow:global_step/sec: 35.1169
INFO:tensorflow:loss = 3.399259, step = 901 (2.849 sec)
INFO:tensorflow:global_step/sec: 31.9397
INFO:tensorflow:loss = 1.6603901, step = 1001 (3.130 sec)
INFO:tensorflow:global_step/sec: 36.1152
INFO:tensorflow:loss = 2.049912, step = 1101 (2.769 sec)
INFO:tensorflow:global_step/sec: 41.6224
INFO:tensorflow:loss = 1.6560473, step = 1201 (2.402 sec)
INFO:tensorflow:global_step/sec: 44.2475
INFO:tensorflow:loss = 3.1313412, step = 1301 (2.260 sec)
INFO:tensorflow:global_step/sec: 44.0523
INFO:tensorflow:loss = 2.2275972, step = 1401 (2.270 sec)
INFO:tensorflow:global_step/sec: 44.1264
INFO:tensorflow:loss = 2.2928638, step = 1501 (2.267 sec)
INFO:tensorflow:global_step/sec: 44.8494
INFO:tensorflow:loss = 2.004546, step = 1601 (2.230 sec)
INFO:tensorflow:global_step/sec: 43.9061
INFO:tensorflow:loss = 2.3518524, step = 1701 (2.277 sec)
INFO:tensorflow:global_step/sec: 45.0115
INFO:tensorflow:loss = 3.3553753, step = 1801 (2.222 sec)
INFO:tensorflow:global_step/sec: 43.4314
INFO:tensorflow:loss = 2.4462695, step = 1901 (2.303 sec)
INFO:tensorflow:global_step/sec: 43.3146
INFO:tensorflow:loss = 2.9728694, step = 2001 (2.309 sec)
INFO:tensorflow:global_step/sec: 44.5893
INFO:tensorflow:loss = 2.1337888, step = 2101 (2.243 sec)
INFO:tensorflow:global_step/sec: 43.9895
INFO:tensorflow:loss = 2.6552243, step = 2201 (2.273 sec)
INFO:tensorflow:global_step/sec: 43.5884
INFO:tensorflow:loss = 2.743317, step = 2301 (2.294 sec)
INFO:tensorflow:global_step/sec: 45.2744
INFO:tensorflow:loss = 2.8743968, step = 2401 (2.209 sec)
INFO:tensorflow:global_step/sec: 42.7225
INFO:tensorflow:loss = 2.8538349, step = 2501 (2.341 sec)
INFO:tensorflow:global_step/sec: 41.1833
INFO:tensorflow:loss = 4.041336, step = 2601 (2.429 sec)
INFO:tensorflow:global_step/sec: 42.3139
INFO:tensorflow:loss = 1.88183, step = 2701 (2.363 sec)
INFO:tensorflow:global_step/sec: 33.7321
INFO:tensorflow:loss = 2.7538319, step = 2801 (2.964 sec)
INFO:tensorflow:global_step/sec: 38.126
INFO:tensorflow:loss = 1.8360949, step = 2901 (2.623 sec)
INFO:tensorflow:global_step/sec: 39.5824
INFO:tensorflow:loss = 2.1169229, step = 3001 (2.526 sec)
INFO:tensorflow:global_step/sec: 51.9562
INFO:tensorflow:loss = 3.7867048, step = 3101 (1.925 sec)
INFO:tensorflow:global_step/sec: 49.322
INFO:tensorflow:loss = 3.5430303, step = 3201 (2.028 sec)
INFO:tensorflow:global_step/sec: 48.7553
INFO:tensorflow:loss = 2.7834754, step = 3301 (2.051 sec)
INFO:tensorflow:global_step/sec: 49.4357
INFO:tensorflow:loss = 4.137286, step = 3401 (2.023 sec)
INFO:tensorflow:global_step/sec: 48.259
INFO:tensorflow:loss = 2.2280118, step = 3501 (2.072 sec)
INFO:tensorflow:global_step/sec: 46.1453
INFO:tensorflow:loss = 2.844032, step = 3601 (2.167 sec)
INFO:tensorflow:global_step/sec: 47.6917
INFO:tensorflow:loss = 2.836554, step = 3701 (2.097 sec)
INFO:tensorflow:global_step/sec: 43.6994
INFO:tensorflow:loss = 2.473738, step = 3801 (2.289 sec)
INFO:tensorflow:global_step/sec: 37.2037
INFO:tensorflow:loss = 2.6786764, step = 3901 (2.687 sec)
INFO:tensorflow:global_step/sec: 42.026
INFO:tensorflow:loss = 4.039219, step = 4001 (2.380 sec)
INFO:tensorflow:global_step/sec: 41.5721
INFO:tensorflow:loss = 2.8257208, step = 4101 (2.406 sec)
INFO:tensorflow:global_step/sec: 43.4978
INFO:tensorflow:loss = 4.558489, step = 4201 (2.299 sec)
INFO:tensorflow:global_step/sec: 43.2872
INFO:tensorflow:loss = 2.702467, step = 4301 (2.310 sec)
INFO:tensorflow:global_step/sec: 43.7875
INFO:tensorflow:loss = 11.796612, step = 4401 (2.284 sec)
INFO:tensorflow:global_step/sec: 37.257
INFO:tensorflow:loss = 2.431784, step = 4501 (2.685 sec)
INFO:tensorflow:global_step/sec: 38.1968
INFO:tensorflow:loss = 2.3238971, step = 4601 (2.617 sec)
INFO:tensorflow:global_step/sec: 37.458
INFO:tensorflow:loss = 3.374643, step = 4701 (2.670 sec)
INFO:tensorflow:global_step/sec: 42.774
INFO:tensorflow:loss = 1.8274207, step = 4801 (2.338 sec)
INFO:tensorflow:global_step/sec: 40.8168
INFO:tensorflow:loss = 2.37037, step = 4901 (2.450 sec)
INFO:tensorflow:global_step/sec: 42.0945
INFO:tensorflow:loss = 3.3090882, step = 5001 (2.376 sec)
INFO:tensorflow:global_step/sec: 42.3285
INFO:tensorflow:loss = 1.6435714, step = 5101 (2.363 sec)
INFO:tensorflow:global_step/sec: 35.8487
INFO:tensorflow:loss = 2.4457252, step = 5201 (2.790 sec)
INFO:tensorflow:global_step/sec: 19.9779
INFO:tensorflow:loss = 2.5501823, step = 5301 (5.008 sec)
INFO:tensorflow:global_step/sec: 35.1204
INFO:tensorflow:loss = 3.0811698, step = 5401 (2.844 sec)
INFO:tensorflow:global_step/sec: 35.454
INFO:tensorflow:loss = 3.8468928, step = 5501 (2.821 sec)
INFO:tensorflow:global_step/sec: 41.1841
INFO:tensorflow:loss = 2.8843942, step = 5601 (2.428 sec)
INFO:tensorflow:global_step/sec: 39.8931
INFO:tensorflow:loss = 4.3000407, step = 5701 (2.507 sec)
INFO:tensorflow:global_step/sec: 36.4328
INFO:tensorflow:loss = 3.5079079, step = 5801 (2.746 sec)
INFO:tensorflow:global_step/sec: 34.1561
INFO:tensorflow:loss = 2.2499113, step = 5901 (2.930 sec)
INFO:tensorflow:global_step/sec: 43.6091
INFO:tensorflow:loss = 2.12255, step = 6001 (2.290 sec)
INFO:tensorflow:global_step/sec: 42.6562
INFO:tensorflow:loss = 3.4909246, step = 6101 (2.344 sec)
INFO:tensorflow:global_step/sec: 30.0202
INFO:tensorflow:loss = 2.372735, step = 6201 (3.331 sec)
INFO:tensorflow:global_step/sec: 31.815
INFO:tensorflow:loss = 4.6707497, step = 6301 (3.146 sec)
INFO:tensorflow:global_step/sec: 29.8
INFO:tensorflow:loss = 2.6088862, step = 6401 (3.353 sec)
INFO:tensorflow:global_step/sec: 38.4589
INFO:tensorflow:loss = 1.5344511, step = 6501 (2.600 sec)
INFO:tensorflow:global_step/sec: 49.1043
INFO:tensorflow:loss = 2.3156755, step = 6601 (2.037 sec)
INFO:tensorflow:global_step/sec: 49.484
INFO:tensorflow:loss = 2.454732, step = 6701 (2.020 sec)
INFO:tensorflow:global_step/sec: 49.4543
INFO:tensorflow:loss = 2.0594604, step = 6801 (2.022 sec)
INFO:tensorflow:global_step/sec: 40.834
INFO:tensorflow:loss = 2.9827287, step = 6901 (2.449 sec)
INFO:tensorflow:global_step/sec: 24.2699
INFO:tensorflow:loss = 2.4870644, step = 7001 (4.120 sec)
INFO:tensorflow:global_step/sec: 37.7983
INFO:tensorflow:loss = 8.555109, step = 7101 (2.646 sec)
INFO:tensorflow:global_step/sec: 43.2108
INFO:tensorflow:loss = 4.480254, step = 7201 (2.315 sec)
INFO:tensorflow:global_step/sec: 46.9375
INFO:tensorflow:loss = 1.7678845, step = 7301 (2.131 sec)
INFO:tensorflow:global_step/sec: 27.7434
INFO:tensorflow:loss = 4.781861, step = 7401 (3.604 sec)
INFO:tensorflow:global_step/sec: 27.825
INFO:tensorflow:loss = 3.8404694, step = 7501 (3.595 sec)
INFO:tensorflow:global_step/sec: 33.7496
INFO:tensorflow:loss = 4.0862827, step = 7601 (2.961 sec)
INFO:tensorflow:global_step/sec: 37.7036
INFO:tensorflow:loss = 3.762403, step = 7701 (2.652 sec)
INFO:tensorflow:global_step/sec: 31.6538
INFO:tensorflow:loss = 1.9889238, step = 7801 (3.161 sec)
INFO:tensorflow:Saving checkpoints for 7812 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Starting evaluation at 2018-12-03-19:17:43
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving candidate 'dense' dict for global step 7812: accuracy/adanet/adanet_weighted_ensemble = 0.2637, accuracy/adanet/subnetwork = 0.2637, accuracy/adanet/uniform_average_ensemble = 0.2637, architecture/adanet/ensembles = b"\nU\n5adanet/iteration_0/ensemble_dense/architecture/adanetB\x12\x08\x07\x12\x00B\x0c| b'dense' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 3.7453253, average_loss/adanet/subnetwork = 3.7453253, average_loss/adanet/uniform_average_ensemble = 3.7453253, loss/adanet/adanet_weighted_ensemble = 3.7437646, loss/adanet/subnetwork = 3.7437646, loss/adanet/uniform_average_ensemble = 3.7437646
INFO:tensorflow:Saving candidate 'cnn_1' dict for global step 7812: accuracy/adanet/adanet_weighted_ensemble = 0.4308, accuracy/adanet/subnetwork = 0.4308, accuracy/adanet/uniform_average_ensemble = 0.4308, architecture/adanet/ensembles = b"\nU\n5adanet/iteration_0/ensemble_cnn_1/architecture/adanetB\x12\x08\x07\x12\x00B\x0c| b'cnn_1' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 4.444554, average_loss/adanet/subnetwork = 4.444554, average_loss/adanet/uniform_average_ensemble = 4.444554, loss/adanet/adanet_weighted_ensemble = 4.442479, loss/adanet/subnetwork = 4.442479, loss/adanet/uniform_average_ensemble = 4.442479
INFO:tensorflow:Finished evaluation at 2018-12-03-19:17:48
INFO:tensorflow:Saving dict for global step 7812: accuracy = 0.4308, accuracy/adanet/adanet_weighted_ensemble = 0.4308, accuracy/adanet/subnetwork = 0.4308, accuracy/adanet/uniform_average_ensemble = 0.4308, average_loss = 4.444554, average_loss/adanet/adanet_weighted_ensemble = 4.444554, average_loss/adanet/subnetwork = 4.444554, average_loss/adanet/uniform_average_ensemble = 4.444554, global_step = 7812, loss = 4.442479, loss/adanet/adanet_weighted_ensemble = 4.442479, loss/adanet/subnetwork = 4.442479, loss/adanet/uniform_average_ensemble = 4.442479
INFO:tensorflow:Saving 'checkpoint_path' summary for global step 7812: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
INFO:tensorflow:Loss for final step: 4.8012667.
INFO:tensorflow:Starting ensemble evaluation for iteration 0
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
INFO:tensorflow:Ensemble evaluation [1000/??]
INFO:tensorflow:Encountered end of input after 1564 evaluations
INFO:tensorflow:Computed ensemble metrics: adanet_loss/dense = 3.696327, adanet_loss/cnn_1 = 4.347783
INFO:tensorflow:Finished ensemble evaluation for iteration 0
INFO:tensorflow:'dense' at index 0 is moving onto the next iteration
INFO:tensorflow:Freezing best ensemble to /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta with features: ['x'].
INFO:tensorflow:Overwriting checkpoint with new graph for iteration 1 to /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-7812
WARNING:tensorflow:`tf.train.start_queue_runners()` was called when no queue runners were defined. You can safely remove the call to this deprecated function.
INFO:tensorflow:Finished training Adanet iteration 0
INFO:tensorflow:Beginning training AdaNet iteration 1
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta with features: ['x'].
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/increment.ckpt-1
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 7812 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:loss = 2.1597543, step = 7813
INFO:tensorflow:global_step/sec: 39.8996
INFO:tensorflow:loss = 2.4646182, step = 7913 (2.508 sec)
INFO:tensorflow:global_step/sec: 44.5368
INFO:tensorflow:loss = 2.8589401, step = 8013 (2.245 sec)
INFO:tensorflow:global_step/sec: 48.0527
INFO:tensorflow:loss = 2.2883995, step = 8113 (2.081 sec)
INFO:tensorflow:global_step/sec: 50.7674
INFO:tensorflow:loss = 2.1307695, step = 8213 (1.970 sec)
INFO:tensorflow:global_step/sec: 49.9641
INFO:tensorflow:loss = 2.3361435, step = 8313 (2.002 sec)
INFO:tensorflow:global_step/sec: 49.179
INFO:tensorflow:loss = 2.0067596, step = 8413 (2.033 sec)
INFO:tensorflow:global_step/sec: 46.5062
INFO:tensorflow:loss = 2.4770257, step = 8513 (2.150 sec)
INFO:tensorflow:global_step/sec: 37.5684
INFO:tensorflow:loss = 2.1131392, step = 8613 (2.662 sec)
INFO:tensorflow:global_step/sec: 31.5679
INFO:tensorflow:loss = 2.2495627, step = 8713 (3.168 sec)
INFO:tensorflow:global_step/sec: 43.6325
INFO:tensorflow:loss = 2.475751, step = 8813 (2.291 sec)
INFO:tensorflow:global_step/sec: 47.5894
INFO:tensorflow:loss = 3.438673, step = 8913 (2.101 sec)
INFO:tensorflow:global_step/sec: 48.6406
INFO:tensorflow:loss = 3.7860405, step = 9013 (2.056 sec)
INFO:tensorflow:global_step/sec: 50.2132
INFO:tensorflow:loss = 2.7251234, step = 9113 (1.991 sec)
INFO:tensorflow:global_step/sec: 50.1135
INFO:tensorflow:loss = 3.272411, step = 9213 (1.996 sec)
INFO:tensorflow:global_step/sec: 50.4737
INFO:tensorflow:loss = 2.5406268, step = 9313 (1.981 sec)
INFO:tensorflow:global_step/sec: 35.6532
INFO:tensorflow:loss = 2.8600104, step = 9413 (2.805 sec)
INFO:tensorflow:global_step/sec: 41.5701
INFO:tensorflow:loss = 2.8856304, step = 9513 (2.406 sec)
INFO:tensorflow:global_step/sec: 35.063
INFO:tensorflow:loss = 2.2049491, step = 9613 (2.852 sec)
INFO:tensorflow:global_step/sec: 48.1753
INFO:tensorflow:loss = 2.8490047, step = 9713 (2.076 sec)
INFO:tensorflow:global_step/sec: 43.0228
INFO:tensorflow:loss = 2.7935495, step = 9813 (2.325 sec)
INFO:tensorflow:global_step/sec: 33.3131
INFO:tensorflow:loss = 2.865065, step = 9913 (3.001 sec)
INFO:tensorflow:global_step/sec: 37.7009
INFO:tensorflow:loss = 2.8489454, step = 10013 (2.653 sec)
INFO:tensorflow:global_step/sec: 49.7017
INFO:tensorflow:loss = 2.0541046, step = 10113 (2.011 sec)
INFO:tensorflow:global_step/sec: 51.6213
INFO:tensorflow:loss = 2.4943628, step = 10213 (1.937 sec)
INFO:tensorflow:global_step/sec: 38.5057
INFO:tensorflow:loss = 3.4883287, step = 10313 (2.597 sec)
INFO:tensorflow:global_step/sec: 51.2628
INFO:tensorflow:loss = 2.4433951, step = 10413 (1.951 sec)
INFO:tensorflow:global_step/sec: 46.3246
INFO:tensorflow:loss = 2.2254171, step = 10513 (2.159 sec)
INFO:tensorflow:global_step/sec: 45.4988
INFO:tensorflow:loss = 1.7764857, step = 10613 (2.198 sec)
INFO:tensorflow:global_step/sec: 35.6227
INFO:tensorflow:loss = 1.900351, step = 10713 (2.807 sec)
INFO:tensorflow:global_step/sec: 40.077
INFO:tensorflow:loss = 2.4317918, step = 10813 (2.495 sec)
INFO:tensorflow:global_step/sec: 45.7959
INFO:tensorflow:loss = 2.2899313, step = 10913 (2.184 sec)
INFO:tensorflow:global_step/sec: 43.1398
INFO:tensorflow:loss = 2.485501, step = 11013 (2.318 sec)
INFO:tensorflow:global_step/sec: 31.6594
INFO:tensorflow:loss = 2.2855592, step = 11113 (3.158 sec)
INFO:tensorflow:global_step/sec: 41.2293
INFO:tensorflow:loss = 2.927823, step = 11213 (2.426 sec)
INFO:tensorflow:global_step/sec: 43.2958
INFO:tensorflow:loss = 1.9583157, step = 11313 (2.310 sec)
INFO:tensorflow:global_step/sec: 29.5963
INFO:tensorflow:loss = 3.0043955, step = 11413 (3.384 sec)
INFO:tensorflow:global_step/sec: 43.6784
INFO:tensorflow:loss = 2.115023, step = 11513 (2.284 sec)
INFO:tensorflow:global_step/sec: 30.1646
INFO:tensorflow:loss = 2.3868835, step = 11613 (3.315 sec)
INFO:tensorflow:global_step/sec: 28.8772
INFO:tensorflow:loss = 2.9143977, step = 11713 (3.463 sec)
INFO:tensorflow:global_step/sec: 40.9773
INFO:tensorflow:loss = 2.3596308, step = 11813 (2.440 sec)
INFO:tensorflow:global_step/sec: 43.4315
INFO:tensorflow:loss = 2.3355029, step = 11913 (2.302 sec)
INFO:tensorflow:global_step/sec: 47.2259
INFO:tensorflow:loss = 1.9149297, step = 12013 (2.117 sec)
INFO:tensorflow:global_step/sec: 38.705
INFO:tensorflow:loss = 2.3401928, step = 12113 (2.585 sec)
INFO:tensorflow:global_step/sec: 39.2271
INFO:tensorflow:loss = 2.3224502, step = 12213 (2.549 sec)
INFO:tensorflow:global_step/sec: 44.8783
INFO:tensorflow:loss = 2.7514782, step = 12313 (2.230 sec)
INFO:tensorflow:global_step/sec: 40.5186
INFO:tensorflow:loss = 1.9172908, step = 12413 (2.466 sec)
INFO:tensorflow:global_step/sec: 42.2236
INFO:tensorflow:loss = 2.2496586, step = 12513 (2.368 sec)
INFO:tensorflow:global_step/sec: 32.1316
INFO:tensorflow:loss = 1.6519046, step = 12613 (3.117 sec)
INFO:tensorflow:global_step/sec: 34.3155
INFO:tensorflow:loss = 1.8608991, step = 12713 (2.909 sec)
INFO:tensorflow:global_step/sec: 44.2401
INFO:tensorflow:loss = 1.9173566, step = 12813 (2.260 sec)
INFO:tensorflow:global_step/sec: 46.9462
INFO:tensorflow:loss = 2.5388186, step = 12913 (2.130 sec)
INFO:tensorflow:global_step/sec: 46.6712
INFO:tensorflow:loss = 1.686686, step = 13013 (2.143 sec)
INFO:tensorflow:global_step/sec: 44.4093
INFO:tensorflow:loss = 2.805609, step = 13113 (2.252 sec)
INFO:tensorflow:global_step/sec: 45.5954
INFO:tensorflow:loss = 2.7113905, step = 13213 (2.193 sec)
INFO:tensorflow:global_step/sec: 47.6184
INFO:tensorflow:loss = 2.8856392, step = 13313 (2.100 sec)
INFO:tensorflow:global_step/sec: 45.8527
INFO:tensorflow:loss = 2.374805, step = 13413 (2.181 sec)
INFO:tensorflow:global_step/sec: 44.1629
INFO:tensorflow:loss = 2.5509393, step = 13513 (2.264 sec)
INFO:tensorflow:global_step/sec: 46.7592
INFO:tensorflow:loss = 1.9956448, step = 13613 (2.138 sec)
INFO:tensorflow:global_step/sec: 34.5994
INFO:tensorflow:loss = 2.8688135, step = 13713 (2.891 sec)
INFO:tensorflow:global_step/sec: 38.2562
INFO:tensorflow:loss = 2.0554376, step = 13813 (2.614 sec)
INFO:tensorflow:global_step/sec: 42.8516
INFO:tensorflow:loss = 3.4983072, step = 13913 (2.334 sec)
INFO:tensorflow:global_step/sec: 38.7528
INFO:tensorflow:loss = 2.8079097, step = 14013 (2.582 sec)
INFO:tensorflow:global_step/sec: 42.0346
INFO:tensorflow:loss = 2.4379723, step = 14113 (2.377 sec)
INFO:tensorflow:global_step/sec: 37.0022
INFO:tensorflow:loss = 1.6510936, step = 14213 (2.702 sec)
INFO:tensorflow:global_step/sec: 40.8535
INFO:tensorflow:loss = 2.4510074, step = 14313 (2.448 sec)
INFO:tensorflow:global_step/sec: 50.3672
INFO:tensorflow:loss = 2.0515084, step = 14413 (1.986 sec)
INFO:tensorflow:global_step/sec: 27.7719
INFO:tensorflow:loss = 2.425525, step = 14513 (3.600 sec)
INFO:tensorflow:global_step/sec: 39.0783
INFO:tensorflow:loss = 2.1264231, step = 14613 (2.559 sec)
INFO:tensorflow:global_step/sec: 43.5278
INFO:tensorflow:loss = 2.8454003, step = 14713 (2.297 sec)
INFO:tensorflow:global_step/sec: 44.3702
INFO:tensorflow:loss = 3.1640363, step = 14813 (2.254 sec)
INFO:tensorflow:global_step/sec: 42.567
INFO:tensorflow:loss = 2.1239977, step = 14913 (2.349 sec)
INFO:tensorflow:global_step/sec: 40.8314
INFO:tensorflow:loss = 1.3583596, step = 15013 (2.449 sec)
INFO:tensorflow:global_step/sec: 43.0716
INFO:tensorflow:loss = 2.5311701, step = 15113 (2.321 sec)
INFO:tensorflow:global_step/sec: 46.652
INFO:tensorflow:loss = 1.669388, step = 15213 (2.144 sec)
INFO:tensorflow:global_step/sec: 39.6237
INFO:tensorflow:loss = 3.0419006, step = 15313 (2.524 sec)
INFO:tensorflow:global_step/sec: 42.9969
INFO:tensorflow:loss = 1.506093, step = 15413 (2.325 sec)
INFO:tensorflow:global_step/sec: 39.5453
INFO:tensorflow:loss = 2.058804, step = 15513 (2.529 sec)
INFO:tensorflow:global_step/sec: 38.4234
INFO:tensorflow:loss = 1.7316691, step = 15613 (2.602 sec)
INFO:tensorflow:Saving checkpoints for 15624 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta with features: ['x'].
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Starting evaluation at 2018-12-03-19:21:27
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving candidate 'previous_ensemble' dict for global step 15624: accuracy/adanet/adanet_weighted_ensemble = 0.2637, accuracy/adanet/subnetwork = 0.2637, accuracy/adanet/uniform_average_ensemble = 0.2637, architecture/adanet/ensembles = b"\nL\n,adanet/previous_ensemble/architecture/adanetB\x12\x08\x07\x12\x00B\x0c| b'dense' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 3.7453253, average_loss/adanet/subnetwork = 3.7453253, average_loss/adanet/uniform_average_ensemble = 3.7453253, loss/adanet/adanet_weighted_ensemble = 3.7437646, loss/adanet/subnetwork = 3.7437646, loss/adanet/uniform_average_ensemble = 3.7437646
INFO:tensorflow:Saving candidate 'dense' dict for global step 15624: accuracy/adanet/adanet_weighted_ensemble = 0.256, accuracy/adanet/subnetwork = 0.2502, accuracy/adanet/uniform_average_ensemble = 0.256, architecture/adanet/ensembles = b"\n`\n5adanet/iteration_1/ensemble_dense/architecture/adanetB\x1d\x08\x07\x12\x00B\x17| b'dense' | b'dense' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 3.0847902, average_loss/adanet/subnetwork = 3.712095, average_loss/adanet/uniform_average_ensemble = 3.0847902, loss/adanet/adanet_weighted_ensemble = 3.084166, loss/adanet/subnetwork = 3.7126234, loss/adanet/uniform_average_ensemble = 3.084166
INFO:tensorflow:Saving candidate 'cnn_1' dict for global step 15624: accuracy/adanet/adanet_weighted_ensemble = 0.4143, accuracy/adanet/subnetwork = 0.4225, accuracy/adanet/uniform_average_ensemble = 0.4143, architecture/adanet/ensembles = b"\n`\n5adanet/iteration_1/ensemble_cnn_1/architecture/adanetB\x1d\x08\x07\x12\x00B\x17| b'dense' | b'cnn_1' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 2.1231182, average_loss/adanet/subnetwork = 2.0083218, average_loss/adanet/uniform_average_ensemble = 2.1231182, loss/adanet/adanet_weighted_ensemble = 2.121486, loss/adanet/subnetwork = 2.0071604, loss/adanet/uniform_average_ensemble = 2.121486
INFO:tensorflow:Finished evaluation at 2018-12-03-19:21:32
INFO:tensorflow:Saving dict for global step 15624: accuracy = 0.4143, accuracy/adanet/adanet_weighted_ensemble = 0.4143, accuracy/adanet/subnetwork = 0.4225, accuracy/adanet/uniform_average_ensemble = 0.4143, average_loss = 2.1231182, average_loss/adanet/adanet_weighted_ensemble = 2.1231182, average_loss/adanet/subnetwork = 2.0083218, average_loss/adanet/uniform_average_ensemble = 2.1231182, global_step = 15624, loss = 2.121486, loss/adanet/adanet_weighted_ensemble = 2.121486, loss/adanet/subnetwork = 2.0071604, loss/adanet/uniform_average_ensemble = 2.121486
INFO:tensorflow:Saving 'checkpoint_path' summary for global step 15624: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
INFO:tensorflow:Loss for final step: 2.3496718.
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta with features: ['x'].
INFO:tensorflow:Starting ensemble evaluation for iteration 1
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
INFO:tensorflow:Ensemble evaluation [1000/??]
INFO:tensorflow:Encountered end of input after 1564 evaluations
INFO:tensorflow:Computed ensemble metrics: adanet_loss/previous_ensemble = 3.696327, adanet_loss/dense = 3.043171, adanet_loss/cnn_1 = 2.073254
INFO:tensorflow:Finished ensemble evaluation for iteration 1
INFO:tensorflow:'cnn_1' at index 2 is moving onto the next iteration
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-0.meta with features: ['x'].
INFO:tensorflow:Freezing best ensemble to /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-1.meta
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-1.meta with features: ['x'].
INFO:tensorflow:Overwriting checkpoint with new graph for iteration 2 to /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15624
WARNING:tensorflow:`tf.train.start_queue_runners()` was called when no queue runners were defined. You can safely remove the call to this deprecated function.
INFO:tensorflow:Finished training Adanet iteration 1
INFO:tensorflow:Beginning training AdaNet iteration 2
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-1.meta with features: ['x'].
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/increment.ckpt-2
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 15624 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:loss = 2.145803, step = 15625
INFO:tensorflow:Saving checkpoints for 15625 into /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt.
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Importing frozen ensemble from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/frozen/ensemble-1.meta with features: ['x'].
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Starting evaluation at 2018-12-03-19:22:02
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15625
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving candidate 'previous_ensemble' dict for global step 15625: accuracy/adanet/adanet_weighted_ensemble = 0.4143, accuracy/adanet/subnetwork = 0.4225, accuracy/adanet/uniform_average_ensemble = 0.4143, architecture/adanet/ensembles = b"\nW\n,adanet/previous_ensemble/architecture/adanetB\x1d\x08\x07\x12\x00B\x17| b'dense' | b'cnn_1' |J\x08\n\x06\n\x04text", average_loss/adanet/adanet_weighted_ensemble = 2.1231182, average_loss/adanet/subnetwork = 2.0083218, average_loss/adanet/uniform_average_ensemble = 2.1231182, loss/adanet/adanet_weighted_ensemble = 2.121486, loss/adanet/subnetwork = 2.0071604, loss/adanet/uniform_average_ensemble = 2.121486
INFO:tensorflow:Saving candidate 'cnn_1' dict for global step 15625: accuracy/adanet/adanet_weighted_ensemble = 0.4156, accuracy/adanet/subnetwork = 0.1, accuracy/adanet/uniform_average_ensemble = 0.4156, architecture/adanet/ensembles = b'\nk\n5adanet/iteration_2/ensemble_cnn_1/architecture/adanetB(\x08\x07\x12\x00B"| b\'dense\' | b\'cnn_1\' | b\'cnn_1\' |J\x08\n\x06\n\x04text', average_loss/adanet/adanet_weighted_ensemble = 1.7926145, average_loss/adanet/subnetwork = 2.4310603, average_loss/adanet/uniform_average_ensemble = 1.7926145, loss/adanet/adanet_weighted_ensemble = 1.7915117, loss/adanet/subnetwork = 2.4313273, loss/adanet/uniform_average_ensemble = 1.7915119
INFO:tensorflow:Saving candidate 'cnn_2' dict for global step 15625: accuracy/adanet/adanet_weighted_ensemble = 0.4153, accuracy/adanet/subnetwork = 0.1002, accuracy/adanet/uniform_average_ensemble = 0.4154, architecture/adanet/ensembles = b'\nk\n5adanet/iteration_2/ensemble_cnn_2/architecture/adanetB(\x08\x07\x12\x00B"| b\'dense\' | b\'cnn_1\' | b\'cnn_2\' |J\x08\n\x06\n\x04text', average_loss/adanet/adanet_weighted_ensemble = 1.8127221, average_loss/adanet/subnetwork = 2.306731, average_loss/adanet/uniform_average_ensemble = 1.8127218, loss/adanet/adanet_weighted_ensemble = 1.8115863, loss/adanet/subnetwork = 2.306775, loss/adanet/uniform_average_ensemble = 1.811586
INFO:tensorflow:Finished evaluation at 2018-12-03-19:22:11
INFO:tensorflow:Saving dict for global step 15625: accuracy = 0.4156, accuracy/adanet/adanet_weighted_ensemble = 0.4156, accuracy/adanet/subnetwork = 0.1, accuracy/adanet/uniform_average_ensemble = 0.4156, average_loss = 1.7926145, average_loss/adanet/adanet_weighted_ensemble = 1.7926145, average_loss/adanet/subnetwork = 2.4310603, average_loss/adanet/uniform_average_ensemble = 1.7926145, global_step = 15625, loss = 1.7915117, loss/adanet/adanet_weighted_ensemble = 1.7915117, loss/adanet/subnetwork = 2.4313273, loss/adanet/uniform_average_ensemble = 1.7915119
INFO:tensorflow:Saving 'checkpoint_path' summary for global step 15625: /var/folders/sy/5v5fz7jj3yv0kpyd9d0bdm7m0000gn/T/tmphzc4fdhe/model.ckpt-15625
INFO:tensorflow:Loss for final step: 2.145803.

In [0]:
def ensemble_architecture(result):
    """Extracts the ensemble architecture from evaluation results."""

    architecture = result["architecture/adanet/ensembles"]
    # The architecture is a serialized Summary proto for TensorBoard.
    summary_proto = tf.summary.Summary.FromString(architecture)
    return summary_proto.value[0].tensor.string_val[0]

In [0]:
print("Accuracy:", results["accuracy"])
print("Loss:", results["average_loss"])
print(ensemble_architecture(results))


Accuracy: 0.4156
Loss: 1.7926145
b"| b'dense' | b'cnn_1' | b'cnn_1' |"