newron 0.5.1

A Rust library to train and infer deep learning models.
Documentation
#[cfg(test)]
mod metrics_tests {
    use newron::metrics::*;
    use newron::tensor::Tensor;
    use newron::utils;

    fn setup() -> (Tensor, Tensor) {
        let predictions: Tensor = Tensor::new(vec![0.4, 0.6, 
                                                   0.1, 0.9, 
                                                   0.3, 0.7, 
                                                   1.0, 0.0], vec![4, 2]);

        let true_values: Tensor = Tensor::new(vec![0.4, 0.6, 
                                                   0.1, 0.9, 
                                                   0.7, 0.3, 
                                                   1.0, 0.0], vec![4, 2]);
        (true_values, predictions)
    }

    #[test]
    fn test_cm() {
        let (y_true, y_pred) = setup();

        let cm = confusion_matrix::ConfusionMatrix::new(y_true.clone(), 
                                                        y_pred.clone());

        let result = vec![vec![1, 1], vec![0, 2]];
        assert_eq!(cm.data, result);
    }


    #[test]
    fn test_accuracy() {
        let (y_true, y_pred) = setup();

        let cm = confusion_matrix::ConfusionMatrix::new(y_true.clone(), 
                                                        y_pred.clone());

        let acc_score = cm.accuracy_score();
        let result = 0.75;
        assert_eq!(utils::round_f64(acc_score, 2), result);
    }

    #[test]
    fn test_recall() {
        let (y_true, y_pred) = setup();

        let cm = confusion_matrix::ConfusionMatrix::new(y_true.clone(), 
                                                        y_pred.clone());

        let rec_score = cm.recall_score(1);
        let result = 0.7;
        assert_eq!(utils::round_f64(rec_score, 1), result);
    }

    #[test]
    fn test_precision() {
        let (y_true, y_pred) = setup();

        let cm = confusion_matrix::ConfusionMatrix::new(y_true.clone(), 
                                                        y_pred.clone());

        let pre_score = cm.precision_score(1);
        let result = 1.0;
        assert_eq!(utils::round_f64(pre_score, 1), result);
    }

    #[test]
    fn test_f1() {
        let (y_true, y_pred) = setup();

        let cm = confusion_matrix::ConfusionMatrix::new(y_true.clone(), 
                                                        y_pred.clone());

        let f1_score = cm.f1_score(1);
        let result = 0.8;
        assert_eq!(utils::round_f64(f1_score, 1), result);
    }
}