is assigned an index (dense). The index-to-object mapping is stored in files "entity_ids.del" and "relation_ids.del", resp. The triples (as indexes) are stored in files "train.del", "valid.del", and "test.del". Additionally, the splits "train_sample.del" (a random subset of train) and "valid_without_unseen.del" and "test_without_unseen.del" are stored. The "test/valid_without_unseen.del" files are subsets of "valid.del" and "test.del" resp. where all triples containing entities or relations not existing in "train.del" have been filtered out. Metadata information is stored in a file "dataset.yaml". """ import util if __name__ == "__main__": args = util.default_parser().parse_args() field_map = { "S": args.subject_field, "P": args.predicate_field, "O": args.object_field, } print(f"Preprocessing {args.folder}...") # register raw splits train_raw = util.RawSplit( file="train.txt", field_map=field_map, collect_entities=True, collect_relations=True, )
colors = [vz.colors.all_one_lg, vz.colors.linear_lg] models = [ MLP.MLP(10, cg.uniform, n_units=100), MLP.MLP(10, cg.linear, n_units=100), ] comp_ratios = np.linspace(0.1, 1.0, 20) acc_dict = {} ratios_dict = {} for name, model in zip(names, models): util.load_or_train_model(model, train, test, args) acc_dict[name] = util.sweep_idp(model, test, comp_ratios, args) ratios_dict[name] = [100. * cr for cr in comp_ratios] filename = "MLP_{}".format(args.dataset) vz.plot(ratios_dict, acc_dict, names, filename, colors=colors, folder=args.figure_path, ext=args.ext, title='MLP (MNIST)', xlabel='IDP (%)', ylabel='Classification Accuracy (%)', ylim=(85, 100)) if __name__ == '__main__': args = util.default_parser('MLP Example').parse_args() run(args)
colors = [vz.colors.all_one_lg, vz.colors.linear_lg] models = [ BinaryNet.BinaryConvNet(10, cg.uniform, 'all'), BinaryNet.BinaryConvNet(10, cg.linear, 'slow_exp'), ] comp_ratios = np.linspace(0.1, 1.0, 20) acc_dict = {} ratios_dict = {} for name, model in zip(names, models): util.load_or_train_model(model, train, test, args) acc_dict[name] = util.sweep_idp(model, test, comp_ratios, args) ratios_dict[name] = [100. * cr for cr in comp_ratios] filename = "BinaryNet_{}".format(args.dataset) vz.plot(ratios_dict, acc_dict, names, filename, colors=colors, folder=args.figure_path, ext=args.ext, title='BinaryNet (MNIST)', xlabel='IDP (%)', ylabel='Classification Accuracy (%)', ylim=(90, 100)) if __name__ == '__main__': args = util.default_parser('BinaryNet Example').parse_args() run(args)
colors = [vz.colors.all_one_lg, vz.colors.linear_lg] models = [ VGG.VGG(10, cg.uniform, 'all'), VGG.VGG(10, cg.linear, 'slow_exp') ] comp_ratios = np.linspace(0.1, 1.0, 20) acc_dict = {} ratios_dict = {} for name, model in zip(names, models): util.load_or_train_model(model, train, test, args) acc_dict[name] = util.sweep_idp(model, test, comp_ratios, args) ratios_dict[name] = [100. * cr for cr in comp_ratios] filename = "VGG_{}".format(args.dataset) vz.plot(ratios_dict, acc_dict, names, filename, colors=colors, folder=args.figure_path, ext=args.ext, title='VGG (CIFAR-10)', xlabel='IDP (%)', ylabel='Classification Accuracy (%)', ylim=(90, 100)) if __name__ == '__main__': args = util.default_parser('VGG Example').parse_args() run(args)
import os import sys sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) import util from ebnn.utils import binary_util if __name__ == '__main__': parser = util.default_parser('MLP Example') args = parser.parse_args() # get the dataset (default is MNIST) train, test = util.get_dataset(args.dataset) x_str = binary_util.np_to_floatC(train._datasets[0][0:20], 'train_data', 'row_major') y_str = binary_util.np_to_floatC(train._datasets[1][0:20], 'train_labels', 'row_major') with open(args.dataset, 'w+') as fp: fp.write(x_str) fp.write(y_str)
import visualize import cupy import chainer from chainer.datasets import get_mnist, get_cifar10 import chainer.functions as F import numpy as np from binary.bst import bst import net import util from binary.ww_bconv_v3 import uniform_seq, harmonic_seq, linear_seq, exp_seq, uniform_exp_seq parser = util.default_parser('Activation Function Experiment') args = parser.parse_args() train, test = util.get_dataset(args.dataset) nclass = np.bincount(test._datasets[1]).shape[0] large_settings = util.get_net_settings(args.dataset, size='large') comp_ratios = [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] names = [ 'binary', r'ternary $(\epsilon=0.5)$', r'ternary $(\epsilon=1)$', r'ternary $(\epsilon=2)$' ] colors = ['#762a83', '#5aae61', '#1b7837', '#00441b'] models = [ net.ApproxNet(nclass, *large_settings, m=0, comp_f='id', act='binary',
import visualize import cupy import chainer from chainer.datasets import get_mnist, get_cifar10 import chainer.functions as F import numpy as np from binary.bst import bst import net import util from binary.ww_bconv_v3 import uniform_seq, harmonic_seq, linear_seq, exp_seq, uniform_exp_seq parser = util.default_parser('Weight Coefficents Experiment') args = parser.parse_args() train, test = util.get_dataset(args.dataset) nclass = np.bincount(test._datasets[1]).shape[0] large_settings = util.get_net_settings(args.dataset, size='large') comp_ratios = [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] acc_dict = {} ratios_dict = {} names = ['all-one (standard)', 'harmonic', 'linear', 'exp', 'half-one'] colors = ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00'] models = [ net.ApproxNet(nclass, *large_settings, m=1, comp_f='id', act='ternary', coeffs_generator=uniform_seq),
import os import sys sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) import numpy as np import visualize as vz import util import idp.coeffs_generator as cg args = util.default_parser('Generate Weight Functions').parse_args() funcs = [cg.uniform, cg.harmonic, cg.linear, cg.uniform_exp] names = ['all-one', 'harmonic', 'linear', 'half_one'] colors = [ vz.colors.all_one_lg, vz.colors.harmonic_lg, vz.colors.linear_lg, vz.colors.half_one_lg ] xs = {} ys = {} n = 16 for name, func in zip(names, funcs): xs[name] = np.arange(n) + 1 ys[name] = func(n) vz.plot( xs, ys, names, 'coef_functions', colors,
colors = [vz.colors.all_one_lg, vz.colors.linear_lg] models = [ MobileNet.MobileNet(10, cg.uniform, 'all'), MobileNet.MobileNet(10, cg.linear, 'slow_exp'), ] comp_ratios = np.linspace(.1, 1, 20) acc_dict = {} ratios_dict = {} for name, model in zip(names, models): util.load_or_train_model(model, train, test, args) acc_dict[name] = util.sweep_idp(model, test, comp_ratios, args) ratios_dict[name] = [100. * cr for cr in comp_ratios] filename = "MobileNet_{}".format(args.dataset) vz.plot(ratios_dict, acc_dict, names, filename, colors=colors, folder=args.figure_path, ext=args.ext, title='MobileNet (CIFAR-10)', xlabel='IDP (%)', ylabel='Classification Accuracy (%)') if __name__ == '__main__': args = util.default_parser('MobileNet Example').parse_args() run(args)
MLP.MLP(10, cg.harmonic), MLP.MLP(10, cg.linear), MLP.MLP(10, cg.uniform_exp), ] comp_ratios = np.linspace(0.1, 1.0, 20) acc_dict = {} ratios_dict = {} for name, model in zip(names, models): util.load_or_train_model(model, train, test, args) acc_dict[name] = util.sweep_idp(model, test, comp_ratios, args) ratios_dict[name] = [100. * cr for cr in comp_ratios] filename = "MLP_coef_comparison_{}".format(args.dataset) vz.plot(ratios_dict, acc_dict, names, filename, colors=colors, folder=args.figure_path, ext=args.ext, xlabel='IDP (%)', ylabel='Classification Accuracy (%)', title='MLP (MNIST)', legend_loc='lower right', ylim=(85, 100)) if __name__ == '__main__': args = util.default_parser('MLP Coef Functions Comparison').parse_args() run(args)