Example #1
0
def main(args):
    if not args["--random"]:
        random.seed(123)
        np.random.seed(123)

    train_csv = args["<train-csv>"]
    if not is_file(train_csv):
        return

    prediction_csv = args["<prediction-csv>"]
    if not is_file(prediction_csv):
        return

    target = args["<target-csv>"]
    if target and not is_file(target):
        return

    try:
        trials = int(args["--trials"])
    except ValueError:
        print_color("Bad value for trials.", COLORS.RED)
        return

    try:
        batch_size = int(args["--batch"])
    except ValueError:
        print_color("Bad value for batch.", COLORS.RED)
        return

    try:
        learn_rate = float(args["--learn-rate"])
    except ValueError:
        print_color("Bad value for learn rate.", COLORS.RED)
        return

    try:
        final_learn_rate = float(args["--final-learn-rate"])
    except ValueError:
        print_color("Bad value for final learn rate.", COLORS.RED)
        return

    try:
        interval = int(args["--timer"])
    except ValueError:
        print_color("Bad value for timer interval.", COLORS.RED)
        return

    try:
        sizes = [int(i) for i in args["--sizes"].split(",")]
    except ValueError:
        print_color("Bad value for sizes.", COLORS.RED)
        return

    try:
        validation_ratio = float(args["--validation-ratio"])
    except ValueError:
        print_color("Bad value for validation ratio.", COLORS.RED)
        return

    print_color("Opening file: %s" % train_csv, COLORS.YELLOW)

    X_train, Y_train, X_valid, Y_valid = get_data_2csv(
        train_csv,
        prediction_csv,
        validation_ratio,
        normalize=args["--normalize"])
    if validation_ratio == 1 and args["--validate"]:
        X_valid, Y_valid = X_train, Y_train

    if sizes[0] != len(X_train[0]):
        print_color(
            "Bad 'sizes' parameter for this input data. sizes[0]=%s len(X[0])=%s"
            % (sizes[0], len(X_train[0])), COLORS.RED)
        return

    start_time = time.time()
    print_color("Initializing neural net.", COLORS.GREEN)
    nn = NeuralNet(sizes,
                   learning_rate=learn_rate,
                   final_learning_rate=final_learn_rate,
                   verbose=args["--verbose"],
                   timer_interval=interval,
                   logging=args["--logging"])
    nn.train(X_train, Y_train, trials, batch_size=batch_size)

    report = 0
    if args["--validate"]:
        print_color("Starting validation.", COLORS.GREEN)
        report = nn.show_report(X_train, Y_train, X_valid, Y_valid)
    if args["--report"]:
        if not report:
            report = nn.get_report(X_train, Y_train, X_valid, Y_valid)
        report["validation ratio"] = validation_ratio
        report["normalized"] = args["--normalize"]
        report["random"] = args["--random"]
        report["duration"] = time.time() - start_time
        save_report(report)
    if target:
        raise NotImplementedError
        print_color("Making predictions.", COLORS.GREEN)
        nn.make_predictions_csv(target)

    print_color("Done after %s seconds." % round(time.time() - start_time, 1),
                COLORS.GREEN)
Example #2
0
def main(args):
    if not args["--random"]:
        random.seed(123)
        np.random.seed(123)

    train_csv=args["<train-csv>"]
    if not is_file(train_csv):
        return

    prediction_csv=args["<prediction-csv>"]
    if not is_file(prediction_csv):
        return

    target=args["<target-csv>"]
    if target and not is_file(target):
        return

    try:
        trials=int(args["--trials"])
    except ValueError:
        print_color("Bad value for trials.",COLORS.RED)
        return

    try:
        batch_size=int(args["--batch"])
    except ValueError:
        print_color("Bad value for batch.",COLORS.RED)
        return

    try:
        learn_rate=float(args["--learn-rate"])
    except ValueError:
        print_color("Bad value for learn rate.",COLORS.RED)
        return

    try:
        final_learn_rate=float(args["--final-learn-rate"])
    except ValueError:
        print_color("Bad value for final learn rate.",COLORS.RED)
        return

    try:
        interval=int(args["--timer"])
    except ValueError:
        print_color("Bad value for timer interval.",COLORS.RED)
        return

    try:
        sizes=[int(i) for i in args["--sizes"].split(",")]
    except ValueError:
        print_color("Bad value for sizes.",COLORS.RED)
        return

    try:
        validation_ratio=float(args["--validation-ratio"])
    except ValueError:
        print_color("Bad value for validation ratio.",COLORS.RED)
        return

    print_color("Opening file: %s"%train_csv,COLORS.YELLOW)

    X_train,Y_train,X_valid,Y_valid=get_data_2csv(train_csv,prediction_csv,
            validation_ratio,normalize=args["--normalize"])
    if validation_ratio==1 and args["--validate"]:
        X_valid,Y_valid=X_train,Y_train

    if sizes[0]!=len(X_train[0]):
        print_color("Bad 'sizes' parameter for this input data. sizes[0]=%s len(X[0])=%s"%(sizes[0],len(X_train[0])),COLORS.RED)
        return

    start_time=time.time()
    print_color("Initializing neural net.",COLORS.GREEN)
    nn=NeuralNet(sizes,learning_rate=learn_rate,final_learning_rate=final_learn_rate,
            verbose=args["--verbose"],timer_interval=interval,
            logging=args["--logging"])
    nn.train(X_train,Y_train,trials,batch_size=batch_size)

    report=0
    if args["--validate"]:
        print_color("Starting validation.",COLORS.GREEN)
        report=nn.show_report(X_train,Y_train,X_valid,Y_valid)
    if args["--report"]:
        if not report:
            report=nn.get_report(X_train,Y_train,X_valid,Y_valid)
        report["validation ratio"]=validation_ratio
        report["normalized"]=args["--normalize"]
        report["random"]=args["--random"]
        report["duration"]=time.time()-start_time
        save_report(report)
    if target:
        raise NotImplementedError
        print_color("Making predictions.",COLORS.GREEN)
        nn.make_predictions_csv(target)

    print_color("Done after %s seconds."%round(time.time()-start_time,1),COLORS.GREEN)