Пример #1
0
def net():
    net = cn.Network(name='my tikz test network', directed=True)
    net.add_edges_from([('ab', 'a', 'b'), ('ac', 'a', 'c'), ('cd', 'c', 'd'),
                        ('de', 'd', 'e'), ('ec', 'e', 'c'), ('cf', 'c', 'f'),
                        ('fa', 'f', 'a'), ('fg', 'f', 'g'), ('gd', 'g', 'd'),
                        ('gg', 'g', 'g')])
    net.edges['ab']['force'] = 3
    net.edges['ac']['force'] = 2
    net.edges['cd']['force'] = 1
    net.edges['de']['force'] = 1
    net.edges['ec']['force'] = 3
    net.edges['cf']['force'] = 1
    net.edges['fa']['force'] = 1
    net.edges['fg']['force'] = 1
    net.edges['gd']['force'] = 1
    net.edges['gg']['force'] = 1

    net.nodes['name'] = [
        'Alice', 'Bob', 'Claire', 'Dennis', 'Esther', 'Frank', 'George'
    ]
    net.nodes['age'] = [25, 31, 18, 47, 22, 23, 50]
    net.nodes['gender'] = ['f', 'm', 'f', 'm', 'f', 'm', 'm']

    net.edges['is_formal'] = [
        False, False, True, True, True, False, True, False, False, False
    ]
    return net
Пример #2
0
def net_2():
    net = cn.Network(name='my tikz test network number 2', directed=True)
    net.add_edges_from([('uv', 'u', 'v'), ('vw', 'v', 'w')])
    return net
Пример #3
0
def net_1():
    net = cn.Network(name='my tikz test network number 1', directed=True)
    net.add_edges_from([('ab', 'a', 'b'), ('bc', 'b', 'c')])
    return net
Пример #4
0
del train, train_label

train_data, valid_data = shared((X, y)), shared((Xval, yval))
del X, Xval


## Training
# Experiment 1: sigmoid
num_epochs = 60
mini_batch_size = 10
eta = 0.1
net = cn.Network([
    cn.ConvPoolLayer(image_shape=(1, 28, 28), 
                  filter_shape=(20, 1, 5, 5), 
                  poolsize=(2, 2)),
    cn.ConvPoolLayer(image_shape=(20, 12, 12), 
                  filter_shape=(40, 20, 5, 5), 
                  poolsize=(2, 2)),
    cn.FullyConnectedLayer(n_in=40*4*4, n_out=100),
    cn.SoftmaxLayer(n_in=100, n_out=10)])
t0 = time()
net.fit(train_data, num_epochs, mini_batch_size, eta, valid_data, early_stop=True)
time() - t0
# 99.79% train accu, 98.87% val accu, 98.94% test accu

# Experiment 2: relu
num_epochs = 20
mini_batch_size = 16
eta = 0.05
net = cn.Network([
    cn.ConvPoolLayer(image_shape=(1, 28, 28), 
Пример #5
0
def main():
    # Network
    # -------
    net = cn.Network(name='my tikz test network', directed=True)
    net.add_edges_from([('ab', 'a', 'b'), ('ac', 'a', 'c'), ('cd', 'c', 'd'),
                        ('de', 'd', 'e'), ('ec', 'e', 'c'), ('cf', 'c', 'f'),
                        ('fa', 'f', 'a'), ('fg', 'f', 'g'), ('gd', 'g', 'd'),
                        ('gg', 'g', 'g')])

    # Network attributes
    # ------------------
    net.nodes['name'] = [
        'Alice', 'Bob', 'Claire', 'Dennis', 'Esther', 'Frank', 'George'
    ]
    net.nodes['age'] = [25, 31, 18, 47, 22, 23, 50]
    net.nodes['gender'] = ['f', 'm', 'f', 'm', 'f', 'm', 'm']

    net.edges['is_formal'] = [
        False, False, True, True, True, False, True, False, False, False
    ]

    # Network dicts
    # -------------
    color_dict = {"m": "blue", "f": "red"}
    shape_dict = {"m": "circle", "f": "rectangle"}
    style_dict = {"m": "{shading=ball}", "f": None}
    layout = {
        'a': (4.3191, -3.5352),
        'b': (0.5292, -0.5292),
        'c': (8.6559, -3.8008),
        'd': (12.4117, -7.5239),
        'e': (12.7, -1.7069),
        'f': (6.0022, -9.0323),
        'g': (9.7608, -12.7)
    }

    # Visual style dict
    # -----------------
    visual_style = {}

    # node styles
    # -----------
    visual_style['node_size'] = 5
    visual_style['node_color'] = [color_dict[g] for g in net.nodes('gender')]
    visual_style['node_opacity'] = .7
    visual_style['node_label'] = net.nodes['name']
    visual_style['node_label_position'] = 'below'
    visual_style['node_label_distance'] = 15
    visual_style['node_label_color'] = 'gray'
    visual_style['node_label_size'] = 3
    visual_style['node_shape'] = [shape_dict[g] for g in net.nodes('gender')]
    visual_style['node_style'] = [style_dict[g] for g in net.nodes('gender')]
    visual_style['node_label_off'] = {'e': True}
    visual_style['node_math_mode'] = [True]
    visual_style['node_label_as_id'] = {'f': True}
    visual_style['node_pseudo'] = {'d': True}

    # edge styles
    # -----------
    visual_style['edge_width'] = [
        .3 + .3 * int(f) for f in net.edges('is_formal')
    ]
    visual_style['edge_color'] = 'black'
    visual_style['edge_opacity'] = .8
    visual_style['edge_curved'] = 0.1
    visual_style['edge_label'] = [e for e in net.edges]
    visual_style['edge_label_position'] = 'above'
    visual_style['edge_label_distance'] = .6
    visual_style['edge_label_color'] = 'gray'
    visual_style['edge_label_size'] = {'ac': 5}
    visual_style['edge_style'] = 'dashed'
    visual_style['edge_arrow_size'] = .2
    visual_style['edge_arrow_width'] = .2

    visual_style['edge_loop_size'] = 15
    visual_style['edge_loop_position'] = 90
    visual_style['edge_loop_shape'] = 45
    visual_style['edge_directed'] = [
        True, True, False, True, True, False, True, True, True, True
    ]
    visual_style['edge_label'][1] = '\\frac{\\alpha}{\\beta}'
    visual_style['edge_math_mode'] = {'ac': True}
    visual_style['edge_not_in_bg'] = {'fa': True}

    # general options
    # ---------------
    visual_style['unit'] = 'mm'
    visual_style['layout'] = layout
    visual_style["margin"] = {'top': 5, 'bottom': 8, 'left': 5, 'right': 5}
    visual_style["canvas"] = (100, 60)
    visual_style['keep_aspect_ratio'] = False

    # Create a latex file
    plot(net, 'network.tex', **visual_style)