def postprocess_for_neuropod()

in ludwig/utils/neuropod_utils.py [0:0]


def postprocess_for_neuropod(predicted, model_definition):
    postprocessed = {}
    for output_feature in model_definition['output_features']:
        feature_name = output_feature['name']
        feature_type = output_feature['type']
        if feature_type == BINARY:
            postprocessed[feature_name + "_predictions"] = \
                np.expand_dims(
                    predicted[feature_name][PREDICTIONS].astype('str'), 1)
            postprocessed[feature_name + "_probabilities"] = \
                np.expand_dims(
                    predicted[feature_name][PROBABILITIES].astype('float64'),
                    1)
        elif feature_type == NUMERICAL:
            postprocessed[feature_name + "_predictions"] = \
                np.expand_dims(
                    predicted[feature_name][PREDICTIONS].astype('float64'),
                    1)
        elif feature_type == CATEGORY:
            postprocessed[feature_name + "_predictions"] = np.expand_dims(
                np.array(predicted[feature_name][PREDICTIONS], dtype='str'), 1
            )
            postprocessed[feature_name + "_probability"] = \
                np.expand_dims(
                    predicted[feature_name][PROBABILITY].astype('float64'),
                    1)
            postprocessed[feature_name + "_probabilities"] = \
                predicted[feature_name][PROBABILITIES].astype('float64')
        elif feature_type == SEQUENCE:
            predictions = list(map(
                lambda x: ' '.join(x),
                predicted[feature_name][PREDICTIONS]
            ))
            postprocessed[feature_name + "_predictions"] = np.expand_dims(
                np.array(predictions, dtype='str'), 1
            )
        elif feature_type == TEXT:
            predictions = list(map(
                lambda x: ' '.join(x),
                predicted[feature_name][PREDICTIONS]
            ))
            postprocessed[feature_name + "_predictions"] = np.expand_dims(
                np.array(predictions, dtype='str'), 1
            )
        elif feature_type == SET:
            predictions = list(map(
                lambda x: ' '.join(x),
                predicted[feature_name][PREDICTIONS]
            ))
            postprocessed[feature_name + "_predictions"] = np.expand_dims(
                np.array(predictions, dtype='str'), 1
            )
            probability = list(map(
                lambda x: ' '.join([str(e) for e in x]),
                predicted[feature_name]['probability']
            ))
            postprocessed[feature_name + "_probability"] = np.expand_dims(
                np.array(probability, dtype='str'), 1
            )
            postprocessed[feature_name + "_probabilities"] = \
                predicted[feature_name][PROBABILITIES].astype('float64')
        elif feature_type == VECTOR:
            postprocessed[feature_name + "_predictions"] = \
                predicted[feature_name][PREDICTIONS].astype('float64')
        else:
            postprocessed[feature_name + "_predictions"] = np.expand_dims(
                np.array(predicted[feature_name][PREDICTIONS], dtype='str'), 1
            )
    # print(postprocessed, file=sys.stderr)
    return postprocessed