Exemplo n.º 1
0
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,
    )
Exemplo n.º 2
0
Arquivo: mlp.py Projeto: kunglab/idp
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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',
Exemplo n.º 7
0
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),
Exemplo n.º 8
0
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,
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
        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)