How to use the cgt.nn.Affine function in cgt

To help you get started, we’ve selected a few cgt examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github joschu / cgt / examples / cgt_theano_feedforward_comparison.py View on Github external
def build_fc_return_loss(X, y):
        """
        Build fully connected network and return loss
        """
        np.random.seed(0)        
        h1 = nn.rectify(nn.Affine(28*28, 256, weight_init=nn.IIDGaussian(std=.1))(X))
        h2 = nn.rectify(nn.Affine(256, 256, weight_init=nn.IIDGaussian(std=.1))(h1))
        logprobs = nn.logsoftmax(nn.Affine(256, 10, weight_init=nn.IIDGaussian(std=.1))(h2))
        neglogliks = -logprobs[cgt.arange(X.shape[0]), y]
        loss = neglogliks.mean()
        return loss
github joschu / cgt / examples / cgt_theano_feedforward_comparison.py View on Github external
def build_fc_return_loss(X, y):
        """
        Build fully connected network and return loss
        """
        np.random.seed(0)        
        h1 = nn.rectify(nn.Affine(28*28, 256, weight_init=nn.IIDGaussian(std=.1))(X))
        h2 = nn.rectify(nn.Affine(256, 256, weight_init=nn.IIDGaussian(std=.1))(h1))
        logprobs = nn.logsoftmax(nn.Affine(256, 10, weight_init=nn.IIDGaussian(std=.1))(h2))
        neglogliks = -logprobs[cgt.arange(X.shape[0]), y]
        loss = neglogliks.mean()
        return loss
github joschu / cgt / examples / cgt_theano_feedforward_comparison.py View on Github external
def build_fc_return_loss(X, y):
        """
        Build fully connected network and return loss
        """
        np.random.seed(0)        
        h1 = nn.rectify(nn.Affine(28*28, 256, weight_init=nn.IIDGaussian(std=.1))(X))
        h2 = nn.rectify(nn.Affine(256, 256, weight_init=nn.IIDGaussian(std=.1))(h1))
        logprobs = nn.logsoftmax(nn.Affine(256, 10, weight_init=nn.IIDGaussian(std=.1))(h2))
        neglogliks = -logprobs[cgt.arange(X.shape[0]), y]
        loss = neglogliks.mean()
        return loss
github joschu / cgt / examples / demo_char_rnn.py View on Github external
size_x = size_input
        else:
            x = outputs[(i_layer-1)*2]
            size_x = size_mem
        input_sums = nn.Affine(size_x, 4*size_mem)(x) + nn.Affine(size_x, 4*size_mem)(prev_h)
        sigmoid_chunk = cgt.sigmoid(input_sums[:,0:3*size_mem])
        in_gate = sigmoid_chunk[:,0:size_mem]
        forget_gate = sigmoid_chunk[:,size_mem:2*size_mem]
        out_gate = sigmoid_chunk[:,2*size_mem:3*size_mem]
        in_transform = cgt.tanh(input_sums[:,3*size_mem:4*size_mem])
        next_c = forget_gate*prev_c + in_gate * in_transform
        next_h = out_gate*cgt.tanh(next_c)
        outputs.append(next_c)
        outputs.append(next_h)

    category_activations = nn.Affine(size_mem, size_output)(outputs[-1])
    logprobs = nn.logsoftmax(category_activations)
    outputs.append(logprobs)

    return nn.Module(inputs, outputs)
github joschu / cgt / examples / cgt_theano_feedforward_comparison.py View on Github external
def build_convnet_return_loss(X, y):
        np.random.seed(0)        
        conv1 = nn.rectify(
            nn.SpatialConvolution(1, 32, kernelshape=(3,3), pad=(0,0), 
            weight_init=nn.IIDGaussian(std=.1))(X))
        pool1 = nn.max_pool_2d(conv1, kernelshape=(3,3), stride=(2,2))
        conv2 = nn.rectify(
            nn.SpatialConvolution(32, 32, kernelshape=(3,3), pad=(0,0), 
            weight_init=nn.IIDGaussian(std=.1))(pool1))
        pool2 = nn.max_pool_2d(conv2, kernelshape=(3,3), stride=(2,2))
        d0,d1,d2,d3 = pool2.shape
        flatlayer = pool2.reshape([d0,d1*d2*d3])
        nfeats = cgt.infer_shape(flatlayer)[1]
        logprobs = nn.logsoftmax(nn.Affine(nfeats, 10)(flatlayer))
        loss = -logprobs[cgt.arange(X.shape[0]), y].mean()
        return loss
github joschu / cgt / examples / demo_char_rnn.py View on Github external
prev_h = inputs[i_layer+1] # note that inputs[0] is the external input, so we add 1
        x = inputs[0] if i_layer==0 else outputs[i_layer-1]
        size_x = size_input if i_layer==0 else size_mem
        update_gate = cgt.sigmoid(
            nn.Affine(size_x, size_mem,name="i2u")(x)
            + nn.Affine(size_mem, size_mem, name="h2u")(prev_h))
        reset_gate = cgt.sigmoid(
            nn.Affine(size_x, size_mem,name="i2r")(x)
            + nn.Affine(size_mem, size_mem, name="h2r")(prev_h))
        gated_hidden = reset_gate * prev_h
        p2 = nn.Affine(size_mem, size_mem)(gated_hidden)
        p1 = nn.Affine(size_x, size_mem)(x)
        hidden_target = cgt.tanh(p1+p2)
        next_h = (1.0-update_gate)*prev_h + update_gate*hidden_target
        outputs.append(next_h)
    category_activations = nn.Affine(size_mem, size_output,name="pred")(outputs[-1])
    logprobs = nn.logsoftmax(category_activations)
    outputs.append(logprobs)

    return nn.Module(inputs, outputs)