Exemplo n.º 1
0
def _maxrandpool ( input, ds, p, ignore_border = False ):
    """ provide random pooling among the top 'p' sorted outputs p = 0 is maxpool """
    rng = numpy.random.RandomState(24546)
    out_shp = (input.shape[0], input.shape[1], input.shape[2]/ds[0], input.shape[3]/ds[1])        
    srng = RandomStreams(rng.randint(2147462579))
    pos = srng.random_integers(size=(1,1), low = ds[0]*ds[1]-1-p, high = ds[0]*ds[1]-1)
    neib = images2neibs(input, neib_shape = ds ,
                                mode = 'valid' if ignore_border is False else 'ignore_borders') 
    neib = neib.sort(axis = -1) 
    pooled_vectors = neib[:,pos]   
    return T.reshape(pooled_vectors, out_shp, ndim = 4 )   
Exemplo n.º 2
0
def _maxrandpool(input, ds, p, ignore_border=False):
    """ provide random pooling among the top 'p' sorted outputs p = 0 is maxpool """
    rng = numpy.random.RandomState(24546)
    out_shp = (input.shape[0], input.shape[1], input.shape[2] / ds[0],
               input.shape[3] / ds[1])
    srng = RandomStreams(rng.randint(2147462579))
    pos = srng.random_integers(size=(1, 1),
                               low=ds[0] * ds[1] - 1 - p,
                               high=ds[0] * ds[1] - 1)
    neib = images2neibs(
        input,
        neib_shape=ds,
        mode='valid' if ignore_border is False else 'ignore_borders')
    neib = neib.sort(axis=-1)
    pooled_vectors = neib[:, pos]
    return T.reshape(pooled_vectors, out_shp, ndim=4)