# Path: deep_architect/searchers/common.py
# def specify(outputs, hyperp_value_lst):
#     """Specify the parameters in the search space using the sequence of values
#     passed as argument.
# 
#     .. note::
#         This functionality is useful to replay the sequence of steps that were
#         used to sample a model from the search space. This is typically used if
#         it is necessary to replicate a model that was saved to disk by the
#         logging functionality. Using the same sequence of values will yield the
#         same model as long as the sequence of values takes the search space
#         from fully unspecified to fully specified. Be careful otherwise.
# 
#     Args:
#         outputs (dict[str, deep_architect.core.Output]): Dictionary of named
#             outputs which by being traversed back will reach all the modules
#             in the search space, and correspondingly all the current
#             unspecified hyperparameters of the search space.
#         hyperp_value_lst (list[object]): List of values used to specify the hyperparameters.
#     """
#     for i, h in enumerate(
#             co.unassigned_independent_hyperparameter_iterator(outputs)):
#         h.assign_value(hyperp_value_lst[i])


from search_space import dnn_net
from deep_architect.searchers.common import specify
import deep_architect.utils as ut
import deep_architect.core as co
import argparse
import keras
import numpy as np
        model = keras.models.Model(inputs=[inputs['in'].val], outputs=[probs])
        optimizer = keras.optimizers.Adam(lr=self.learning_rate)
        model.compile(optimizer=optimizer,
                      loss='sparse_categorical_crossentropy',
                      metrics=['accuracy'])
        model.summary()
        history = model.fit(x_train,
                            y_train,
                            batch_size=self.batch_size,
                            epochs=self.max_num_training_epochs,
                            validation_split=self.val_split)

        results = {'val_accuracy': history.history['val_acc'][-1]}
        return results


def main(args):

    num_classes = 10

    # load and normalize data
    (x_train, y_train), (x_test, y_test) = load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0

    # defining evaluator, and logger
    evaluator = SimpleClassifierEvaluator((x_train, y_train),
                                          num_classes,
                                          max_num_training_epochs=5)
    inputs, outputs = get_search_space(num_classes)()
    h_values = ut.read_jsonfile(args.config)

# Path: deep_architect/searchers/common.py
# def specify(outputs, hyperp_value_lst):
#     """Specify the parameters in the search space using the sequence of values
#     passed as argument.
# 
#     .. note::
#         This functionality is useful to replay the sequence of steps that were
#         used to sample a model from the search space. This is typically used if
#         it is necessary to replicate a model that was saved to disk by the
#         logging functionality. Using the same sequence of values will yield the
#         same model as long as the sequence of values takes the search space
#         from fully unspecified to fully specified. Be careful otherwise.
# 
#     Args:
#         outputs (dict[str, deep_architect.core.Output]): Dictionary of named
#             outputs which by being traversed back will reach all the modules
#             in the search space, and correspondingly all the current
#             unspecified hyperparameters of the search space.
#         hyperp_value_lst (list[object]): List of values used to specify the hyperparameters.
#     """
#     for i, h in enumerate(
#             co.unassigned_independent_hyperparameter_iterator(outputs)):
#         h.assign_value(hyperp_value_lst[i])


# Path: dev/tutorials/multiworker/evaluator.py
from search_space import dnn_net
from deep_architect.searchers.common import specify
import deep_architect.utils as ut
import deep_architect.core as co
import argparse
import keras
import numpy as np

        model = keras.models.Model(inputs=[inputs['in'].val], outputs=[probs])
        optimizer = keras.optimizers.Adam(lr=self.learning_rate)
        model.compile(optimizer=optimizer,
                      loss='sparse_categorical_crossentropy',
                      metrics=['accuracy'])
        model.summary()
        history = model.fit(x_train,
                            y_train,
                            batch_size=self.batch_size,
                            epochs=self.max_num_training_epochs,
                            validation_split=self.val_split)

        results = {'val_accuracy': history.history['val_acc'][-1]}
        return results


def main(args):

    num_classes = 10

    # load and normalize data
    (x_train, y_train), (x_test, y_test) = load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0

    # defining evaluator, and logger
    evaluator = SimpleClassifierEvaluator((x_train, y_train),
                                          num_classes,
                                          max_num_training_epochs=5)
    inputs, outputs = get_search_space(num_classes)()
    h_values = ut.read_jsonfile(args.config)

    specify(outputs, hs,