using NumSharp; using System; using System.Collections.Generic; using System.Text; namespace TensorFlowNET.Examples.Utility { public class Datasets where T : IDataSet { private T _train; public T train => _train; private T _validation; public T validation => _validation; private T _test; public T test => _test; public Datasets(T train, T validation, T test) { _train = train; _validation = validation; _test = test; } public (NDArray, NDArray) Randomize(NDArray x, NDArray y) { var perm = np.random.permutation(y.shape[0]); np.random.shuffle(perm); return (x[perm], y[perm]); } /// /// selects a few number of images determined by the batch_size variable (if you don't know why, read about Stochastic Gradient Method) /// /// /// /// /// /// public (NDArray, NDArray) GetNextBatch(NDArray x, NDArray y, int start, int end) { var x_batch = x[$"{start}:{end}"]; var y_batch = y[$"{start}:{end}"]; return (x_batch, y_batch); } } }