[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/ehtick/TensorFlow.NET/master/src/TensorFlowNET.Core/Util/Data.cs [Back]  [Original]

using OneOf;
using Tensorflow.NumPy;

namespace Tensorflow.Util
{
    /// 
    /// ValidationDataPack is used to pass validation data to fit method.
    /// It can recive data which could be A tuple `(x_val, xy_val)` or `(x_val, y_val, sample_weight_val)` of Numpy arrays.
    /// 
    public class ValidationDataPack
    {
        internal OneOf val_x;
        internal NDArray val_y;
        internal NDArray val_sample_weight = null;
        public bool val_x_is_array = false;
        public ValidationDataPack((NDArray, NDArray) validation_data)
        {
            this.val_x = validation_data.Item1;
            this.val_y = validation_data.Item2;
        }

        public ValidationDataPack((NDArray, NDArray, NDArray) validation_data)
        {
            this.val_x = validation_data.Item1;
            this.val_y = validation_data.Item2;
            this.val_sample_weight = validation_data.Item3;
        }

        public ValidationDataPack((IEnumerable, NDArray) validation_data)
        {
            this.val_x = validation_data.Item1.ToArray();
            this.val_y = validation_data.Item2;
            val_x_is_array = true;
        }

        public ValidationDataPack((IEnumerable, NDArray, NDArray) validation_data)
        {
            this.val_x = validation_data.Item1.ToArray();
            this.val_y = validation_data.Item2;
            this.val_sample_weight = validation_data.Item3;
            val_x_is_array = true;
        }

        public static implicit operator ValidationDataPack((NDArray, NDArray) validation_data)
            => new ValidationDataPack(validation_data);

        public static implicit operator ValidationDataPack((NDArray, NDArray, NDArray) validation_data)
            => new ValidationDataPack(validation_data);

        public static implicit operator ValidationDataPack((IEnumerable, NDArray) validation_data)
            => new ValidationDataPack(validation_data);

        public static implicit operator ValidationDataPack((IEnumerable, NDArray, NDArray) validation_data)
            => new ValidationDataPack(validation_data);

        public void Deconstruct(out NDArray val_x, out NDArray val_y)
        {
            val_x = this.val_x.AsT0;
            val_y = this.val_y;
        }

        public void Deconstruct(out NDArray val_x, out NDArray val_y, out NDArray val_sample_weight)
        {
            val_x = this.val_x.AsT0;
            val_y = this.val_y;
            val_sample_weight = this.val_sample_weight;
        }

        // add a unuse parameter to make it different from Deconstruct(out NDArray val_x, out NDArray val_y, out NDArray val_sample_weight)
        public void Deconstruct(out NDArray[] val_x_array, out NDArray val_y, out NDArray val_sample_weight, out NDArray unuse)
        {
            val_x_array = this.val_x.AsT1;
            val_y = this.val_y;
            val_sample_weight = this.val_sample_weight;
            unuse = null;
        }
    }
}

Web Proxy Viewer  |  New URL  |  Original Page