Exemplo n.º 1
0
 def tall_loss(self, positive, negative, query, lw=1):
     scores_p = self.distance_function(positive, query)
     scores_n = self.distance_function(negative, query)
     alpha_c = 1
     alpha_w = 1
     exp_p = L.Exp(scores_p, scale=-1)
     exp_n = L.Exp(scores_n)
     log_p = L.Log(exp_p, shift=1)
     log_n = L.Log(exp_n, shift=1)
     scale_p = L.Power(log_p, scale=alpha_c)
     scale_n = L.Power(log_n, scale=alpha_w)
     all_scores = L.Concat(scale_p, scale_n, axis=0)
     return L.Reduction(all_scores, operation=4, loss_weight=[lw])
Exemplo n.º 2
0
def logreg(hdf5, batch_size):
    # read in the data
    n = caffe.NetSpec()
    n.data, n.label = L.HDF5Data(batch_size=batch_size, source=hdf5, ntop=2)
    # a bit of preprocessing - helpful!
    n.log = L.Log(n.data, base=-1, scale=1, shift=1)
    n.norm = L.BatchNorm(n.log, use_global_stats=False)
    n.scaled = L.Scale(n.norm, bias_term=True)
    # the actual regression - the core of what we want to do!
    n.dropout = L.Dropout(n.scaled, dropout_ratio=0.5)
    n.ip = L.InnerProduct(n.dropout,
                          num_output=nCategories,
                          weight_filler=dict(type='xavier'))
    # don't mess with these. They don't affect learning.
    n.prob = L.Softmax(n.ip)
    n.accuracy1 = L.Accuracy(n.prob, n.label)
    if nCategories > 5:
        n.accuracy5 = L.Accuracy(n.prob, n.label, top_k=5)
    n.loss = L.SoftmaxWithLoss(n.ip, n.label)
    return n.to_proto()
 def test_log4(self):
     n = caffe.NetSpec()
     n.input1 = L.Input(shape=make_shape([6, 4, 64, 64]))
     n.log1 = L.Log(n.input1, base=4.0, scale=0.5)
     self._test_model(*self._netspec_to_model(n, 'log4'), nonnegative_input=True)
Exemplo n.º 4
0
 def net():
     n = caffe.NetSpec()
     n.data = L.Input(input_param=dict(shape=dict(dim=data_shape)))
     n.dataout = L.Log(n.data, base=_base, scale=_scale, shift=_shift)
     return n.to_proto()