def test_expand_dims_no_change(self): m = np.random.rand(3) x = mu.expand_dims(np.copy(m), 0) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) x = mu.expand_dims(np.copy(m), 1) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(3, 2) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(3, 2, 5) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(5, 4, 3, 2) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m))
def test_expand_dims_no_change(): m = np.random.rand(3) x = mu.expand_dims(np.copy(m), 0) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) x = mu.expand_dims(np.copy(m), 1) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(3, 2) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(3, 2, 5) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m)) m = np.random.rand(5, 4, 3, 2) for d in xrange(m.ndim): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, m.ndim) assert_equals(x.shape, m.shape) assert_true(np.any(x == m))
def test_expand_dims_vector(self): m = np.random.rand(3) x = mu.expand_dims(np.copy(m), 1) assert_equals(x.ndim, 1) assert_equals(x.shape, (3,)) x = mu.expand_dims(np.copy(m), 2) assert_equals(x.ndim, 2) assert_equals(x.shape, (1, 3)) x = mu.expand_dims(np.copy(m), 2) assert_equals(x.ndim, 2) assert_equals(x.shape, (1, 3))
def test_expand_dims_vector(): m = np.random.rand(3) x = mu.expand_dims(np.copy(m), 1) assert_equals(x.ndim, 1) assert_equals(x.shape, (3, )) x = mu.expand_dims(np.copy(m), 2) assert_equals(x.ndim, 2) assert_equals(x.shape, (1, 3)) x = mu.expand_dims(np.copy(m), 2) assert_equals(x.ndim, 2) assert_equals(x.shape, (1, 3))
def matfiles_to_lmdb(paths_src, path_dst, fieldname, lut=None): ''' Generate LMDB file from set of mat files with integer data Source: https://github.com/BVLC/caffe/issues/1698#issuecomment-70211045 credit: Evan Shelhamer ''' db = lmdb.open(path_dst, map_size=MAP_SZ) with db.begin(write=True) as in_txn: for idx, path_ in enumerate(paths_src): content_field = io.loadmat(path_)[fieldname] # get shape (1,H,W) content_field = expand_dims(content_field, 3) content_field = content_field.astype(int) if lut is not None: content_field = lut(content_field) img_dat = caffe.io.array_to_datum(content_field) in_txn.put(IDX_FMT.format(idx), img_dat.SerializeToString()) db.close() return 0
def test_expand_dims(self): m = np.random.rand(3, 2) for d in xrange(m.ndim+1, m.ndim*3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim-m.ndim:], m.shape) assert_equals(x.shape[:x.ndim-m.ndim], (1,)*(x.ndim-m.ndim)) m = np.random.rand(3, 2, 7) for d in xrange(m.ndim+1, m.ndim*3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim-m.ndim:], m.shape) assert_equals(x.shape[:x.ndim-m.ndim], (1,)*(x.ndim-m.ndim)) m = np.random.rand(3, 2, 7, 1, 2) for d in xrange(m.ndim+1, m.ndim*3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim-m.ndim:], m.shape) assert_equals(x.shape[:x.ndim-m.ndim], (1,)*(x.ndim-m.ndim))
def test_expand_dims(): m = np.random.rand(3, 2) for d in xrange(m.ndim + 1, m.ndim * 3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim - m.ndim:], m.shape) assert_equals(x.shape[:x.ndim - m.ndim], (1, ) * (x.ndim - m.ndim)) m = np.random.rand(3, 2, 7) for d in xrange(m.ndim + 1, m.ndim * 3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim - m.ndim:], m.shape) assert_equals(x.shape[:x.ndim - m.ndim], (1, ) * (x.ndim - m.ndim)) m = np.random.rand(3, 2, 7, 1, 2) for d in xrange(m.ndim + 1, m.ndim * 3): x = mu.expand_dims(np.copy(m), d) assert_equals(x.ndim, d) assert_equals(x.shape[x.ndim - m.ndim:], m.shape) assert_equals(x.shape[:x.ndim - m.ndim], (1, ) * (x.ndim - m.ndim))
def arrays_to_lmdb(arrs, path_dst): ''' Generate LMDB file from list of ndarrays ''' db = lmdb.open(path_dst, map_size=MAP_SZ) with db.begin(write=True) as in_txn: for idx, x in enumerate(arrs): content_field = expand_dims(x, 3) dat = caffe.io.array_to_datum(content_field) in_txn.put(IDX_FMT.format(idx), dat.SerializeToString()) db.close() return 0
def scalars_to_lmdb(scalars, path_dst, lut=None): ''' Generate LMDB file from list of scalars ''' db = lmdb.open(path_dst, map_size=MAP_SZ) with db.begin(write=True) as in_txn: if not hasattr(scalars, '__iter__'): scalars = np.array([scalars]) for idx, x in enumerate(scalars): if not hasattr(x, '__iter__'): content_field = np.array([x]) else: content_field = np.array(x) # validate these are scalars if content_field.size != 1: raise AttributeError( "Unexpected shape for scalar at i=%d (%s)" % (idx, str(content_field.shape))) # guarantee shape (1,1,1) content_field = expand_dims(content_field, 3) content_field = content_field.astype(int) if lut is not None: content_field = lut(content_field) dat = caffe.io.array_to_datum(content_field) in_txn.put(IDX_FMT.format(idx), dat.SerializeToString()) db.close() return 0