public void Start() { //template method, each program choose its application logic. var imageLoader = new ImageLabelledLoaderHelper(indexFilePath, '\t'); OnStart(splitStrategy.Invoke(imageLoader)); }
public static Dictionary <SetType, List <Tomato> > SplitAll(ImageLabelledLoaderHelper helper) { var splitted = splitClasses(helper.Images); var trainOk = splitted[TomatoType.GOOD]; var trainBad = splitted[TomatoType.BAD]; var result = new Dictionary <SetType, List <Tomato> >(); result.Add(SetType.TRANING, trainOk.Concat(trainBad).ToList()); result.Add(SetType.VALIDATION, new List <Tomato>()); return(result); }
public static Dictionary <SetType, List <Tomato> > SplitExact( int trainOkCount, int trainBadCount, ImageLabelledLoaderHelper helper) { var splitted = splitClasses(helper.Images); var trainOk = splitted[TomatoType.GOOD].Take(trainOkCount); var trainBad = splitted[TomatoType.BAD].Take(trainBadCount); var validationOk = splitted[TomatoType.GOOD].Skip(trainOkCount).Take(helper.GoodTomatoCount - trainOkCount); var validationBad = splitted[TomatoType.BAD].Skip(trainBadCount).Take(helper.BadTomatoCount - trainBadCount); var result = new Dictionary <SetType, List <Tomato> >(); result.Add(SetType.TRANING, trainOk.Concat(trainBad).ToList()); result.Add(SetType.VALIDATION, validationOk.Concat(validationBad).ToList()); return(result); }