예제 #1
0
        for i, n_unit in enumerate(self.hidden_units):
            net = self._fully_connected_linear(net, [current_dimension, n_unit], i)
            net = self._build_layer(i, net)
            current_dimension = n_unit
        appendix = "_final_projection"
        fc_shape = self.hidden_units[-1] if self.hidden_units else current_dimension
        self._output = self._fully_connected_linear(net, [fc_shape, self.n_class], appendix)


if __name__ == '__main__':
    from Util.Util import DataUtil

    for generator in (DataUtil.gen_xor, DataUtil.gen_spiral, DataUtil.gen_nine_grid):
        x_train, y_train = generator(size=1000, one_hot=False)
        x_test, y_test = generator(size=100, one_hot=False)
        nn = Basic(model_param_settings={"n_epoch": 200}).scatter2d(x_train, y_train).fit(
            x_train, y_train, x_test, y_test, snapshot_ratio=0
        ).draw_losses().visualize2d(
            x_train, y_train, title="Train"
        ).visualize2d(
            x_test, y_test, padding=2, title="Test"
        )

    for size in (256, 1000, 10000):
        (x_train, y_train), (x_test, y_test) = DataUtil.gen_noisy_linear(
            size=size, n_dim=2, n_valid=2, test_ratio=100 / size, one_hot=False
        )
        nn = Basic(model_param_settings={"n_epoch": 200}).scatter2d(x_train, y_train).fit(
            x_train, y_train, x_test, y_test, snapshot_ratio=0
        ).draw_losses().visualize2d(x_train, y_train, title="Train").visualize2d(x_test, y_test, title="Test")
예제 #2
0
import os
import sys
root_path = os.path.abspath("../../../../")
if root_path not in sys.path:
    sys.path.append(root_path)

from Util.Util import DataUtil
from _Dist.NeuralNetworks.c_BasicNN.NN import Basic
from _Dist.NeuralNetworks.e_AdvancedNN.NN import Advanced
from _Dist.NeuralNetworks._Tests.TestUtil import draw_acc

x_cv = y_cv = None
(x, y), (x_test, y_test) = DataUtil.gen_noisy_linear(one_hot=False)


def block_test(generator, **kwargs):
    (x_, y_), (x_test_, y_test_) = generator(**kwargs, one_hot=False)

    basic_ = Basic(**base_params).fit(x_, y_, x_test_, y_test_, snapshot_ratio=0)
    advanced_params["model_structure_settings"]["use_pruner"] = False
    wnd_dndf_ = Advanced(**advanced_params).fit(x_, y_, x_test_, y_test_, snapshot_ratio=0)
    advanced_params["model_structure_settings"]["use_pruner"] = True
    wnd_dndf_pruned_ = Advanced(**advanced_params).fit(x_, y_, x_test_, y_test_, snapshot_ratio=0)

    print("BasicNN              ", end="")
    basic_.evaluate(x_, y_, x_cv, y_cv, x_test_, y_test_)
    print("WnD & DNDF           ", end="")
    wnd_dndf_.evaluate(x_, y_, x_cv, y_cv, x_test_, y_test_)
    print("WnD & DNDF & Pruner  ", end="")
    wnd_dndf_pruned_.evaluate(x_, y_, x_cv, y_cv, x_test_, y_test_)
예제 #3
0
import os
import sys
root_path = os.path.abspath("../../../../")
if root_path not in sys.path:
    sys.path.append(root_path)

from copy import deepcopy

from Util.Util import DataUtil
from _Dist.NeuralNetworks._Tests.TestUtil import draw_acc
from _Dist.NeuralNetworks.b_TraditionalML.SVM import SVM
from _Dist.NeuralNetworks.f_AutoNN.DistNN import AutoAdvanced

base_params = {"model_param_settings": {"n_epoch": 30, "metric": "acc"}}
(x, y), (x_test, y_test) = DataUtil.gen_noisy_linear(n_dim=2, n_valid=2, test_ratio=0.01, one_hot=False)
svm = SVM(**deepcopy(base_params)).fit(
    x, y, x_test, y_test, snapshot_ratio=0).visualize2d(x_test, y_test)
nn = AutoAdvanced("NoisyLinear", **deepcopy(base_params)).fit(
    x, y, x_test, y_test, snapshot_ratio=0).visualize2d(x_test, y_test)
draw_acc(svm, nn)
예제 #4
0
import os
import sys
root_path = os.path.abspath("../../../../")
if root_path not in sys.path:
    sys.path.append(root_path)

from copy import deepcopy

from Util.Util import DataUtil
from _Dist.NeuralNetworks._Tests.TestUtil import draw_acc
from _Dist.NeuralNetworks.f_AutoNN.DistNN import AutoAdvanced
from _Dist.NeuralNetworks.b_TraditionalML.SVM import LinearSVM, AutoLinearSVM, DistLinearSVM

base_params = {"model_param_settings": {"n_epoch": 30, "metric": "acc"}}
(x, y), (x_test, y_test) = DataUtil.gen_noisy_linear(n_dim=2,
                                                     n_valid=2,
                                                     test_ratio=0.01,
                                                     one_hot=False)
svm = LinearSVM(**deepcopy(base_params)).fit(x,
                                             y,
                                             x_test,
                                             y_test,
                                             snapshot_ratio=0).visualize2d(
                                                 x_test, y_test)
nn = AutoAdvanced("NoisyLinear",
                  **deepcopy(base_params)).fit(x,
                                               y,
                                               x_test,
                                               y_test,
                                               snapshot_ratio=0).visualize2d(
                                                   x_test, y_test)
draw_acc(svm, nn)
예제 #5
0
import os
import sys
root_path = os.path.abspath("../../../../")
if root_path not in sys.path:
    sys.path.append(root_path)

import numpy as np
import matplotlib.pyplot as plt

from Util.Util import DataUtil
from _Dist.NeuralNetworks._Tests.Pruner.Advanced import Advanced

# (x, y), (x_test, y_test), *_ = DataUtil.get_dataset("mnist", "_Data/mnist.txt", n_train=1600, quantized=True)
(x, y), (x_test, y_test) = DataUtil.gen_noisy_linear(n_dim=100, n_valid=5, one_hot=False)

data_info = {
    "numerical_idx": [True] * 100 + [False],
    "categorical_columns": []
}

# nn = Advanced(
#     "NoisyLinear",
#     data_info=data_info,
#     model_param_settings={
#         "n_epoch": 40
#     },
#     model_structure_settings={
#         "use_wide_network": False,
#         "use_pruner": True,
#         "pruner_params": {
#             "prune_method": "surgery",