コード例 #1
0
def build_inputs(input_features_def: List[Dict[str, Any]]) -> Dict[str, InputFeature]:
    """Builds and returns input features in topological order."""
    input_features = OrderedDict()
    input_features_def = topological_sort_feature_dependencies(input_features_def)
    for input_feature_def in input_features_def:
        input_features[input_feature_def[NAME]] = build_single_input(input_feature_def, input_features)
    return input_features
コード例 #2
0
def build_inputs(input_features_def, **kwargs):
    input_features = OrderedDict()
    input_features_def = topological_sort_feature_dependencies(
        input_features_def)
    for input_feature_def in input_features_def:
        input_features[input_feature_def['name']] = build_single_input(
            input_feature_def, input_features, **kwargs)
    return input_features
コード例 #3
0
def build_inputs(input_features_def: List[Dict[str, Any]],
                 **kwargs) -> Dict[str, InputFeature]:
    input_features = OrderedDict()
    input_features_def = topological_sort_feature_dependencies(
        input_features_def)
    for input_feature_def in input_features_def:
        input_features[input_feature_def[NAME]] = build_single_input(
            input_feature_def, input_features, **kwargs)
    return input_features
コード例 #4
0
def build_outputs(output_features_def, combiner, **kwargs):
    output_features_def = topological_sort_feature_dependencies(output_features_def)
    output_features = {}

    for output_feature_def in output_features_def:
        output_feature_def["input_size"] = combiner.output_shape[-1]
        output_feature = build_single_output(output_feature_def, combiner, output_features, **kwargs)
        output_features[output_feature_def[NAME]] = output_feature

    return output_features
コード例 #5
0
def build_outputs(output_features_def, combiner, **kwargs):
    output_features_def = topological_sort_feature_dependencies(
        output_features_def)
    output_features = {}

    for output_feature_def in output_features_def:
        output_feature = build_single_output(output_feature_def, combiner,
                                             output_features, **kwargs)
        output_features[output_feature_def['name']] = output_feature

    return output_features
コード例 #6
0
def build_outputs(output_features_def: List[Dict[str, Any]], combiner: Combiner) -> Dict[str, OutputFeature]:
    """Builds and returns output features in topological order."""
    output_features_def = topological_sort_feature_dependencies(output_features_def)
    output_features = {}

    for output_feature_def in output_features_def:
        # TODO(Justin): Check that the semantics of input_size align with what the combiner's output shape returns for
        # seq2seq.
        output_feature_def["input_size"] = combiner.output_shape[-1]
        output_feature = build_single_output(output_feature_def, output_features)
        output_features[output_feature_def[NAME]] = output_feature

    return output_features
コード例 #7
0
def build_inputs(input_features,
                 regularizer,
                 dropout_rate,
                 is_training=True,
                 **kwargs):
    # ================ Inputs =============
    feature_representations = OrderedDict()
    input_features = topological_sort_feature_dependencies(input_features)
    for input_feature in input_features:
        feature_representation = build_single_input(input_feature,
                                                    regularizer,
                                                    dropout_rate,
                                                    is_training=is_training,
                                                    **kwargs)
        feature_representations[input_feature['name']] = feature_representation
    return feature_representations
コード例 #8
0
def build_outputs(output_features,
                  hidden,
                  hidden_size,
                  regularizer,
                  dropout_rate,
                  is_training=True,
                  **kwargs):
    output_features = topological_sort_feature_dependencies(output_features)
    output_tensors = OrderedDict()
    final_hidden = {}
    output_train_losses = []
    output_eval_losses = []
    for output_feature in output_features:
        of_train_mean_loss, of_eval_loss, of_output_tensors = build_single_output(
            output_feature, hidden, hidden_size, final_hidden, dropout_rate,
            regularizer, is_training, **kwargs)
        output_train_losses.append(of_train_mean_loss)
        output_eval_losses.append(of_eval_loss)
        output_tensors.update(of_output_tensors)

    train_combined_mean_loss = tf.reduce_sum(tf.stack(output_train_losses),
                                             name='train_combined_mean_loss')
    if regularizer is not None:
        regularization_losses = tf.get_collection(
            tf.GraphKeys.REGULARIZATION_LOSSES)
        if regularization_losses:
            regularization_loss = tf.add_n(regularization_losses)
            logger.debug(
                '- Regularization losses: {0}'.format(regularization_losses))

        else:
            regularization_loss = tf.constant(0.0)
    else:
        regularization_loss = tf.constant(0.0)

    train_reg_mean_loss = tf.add(train_combined_mean_loss,
                                 regularization_loss,
                                 name='train_combined_regularized_mean_loss')

    eval_combined_loss = tf.reduce_sum(tf.stack(output_eval_losses),
                                       axis=0,
                                       name='eval_combined_loss')

    return train_reg_mean_loss, eval_combined_loss, regularization_loss, output_tensors