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")
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_)
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)
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)
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",