Python numpy.logical_or() Examples
The following are 30
code examples of numpy.logical_or().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
numpy
, or try the search function
.
Example #1
Source File: pose_error.py From bop_toolkit with MIT License | 6 votes |
def cou_mask(mask_est, mask_gt): """Complement over Union of 2D binary masks. :param mask_est: hxw ndarray with the estimated mask. :param mask_gt: hxw ndarray with the ground-truth mask. :return: The calculated error. """ mask_est_bool = mask_est.astype(np.bool) mask_gt_bool = mask_gt.astype(np.bool) inter = np.logical_and(mask_gt_bool, mask_est_bool) union = np.logical_or(mask_gt_bool, mask_est_bool) union_count = float(union.sum()) if union_count > 0: e = 1.0 - inter.sum() / union_count else: e = 1.0 return e
Example #2
Source File: build_dataset.py From hgru4rec with MIT License | 6 votes |
def make_sessions(data, session_th=30 * 60, is_ordered=False, user_key='user_id', item_key='item_id', time_key='ts'): """Assigns session ids to the events in data without grouping keys""" if not is_ordered: # sort data by user and time data.sort_values(by=[user_key, time_key], ascending=True, inplace=True) # compute the time difference between queries tdiff = np.diff(data[time_key].values) # check which of them are bigger then session_th split_session = tdiff > session_th split_session = np.r_[True, split_session] # check when the user chenges is data new_user = data['user_id'].values[1:] != data['user_id'].values[:-1] new_user = np.r_[True, new_user] # a new sessions stars when at least one of the two conditions is verified new_session = np.logical_or(new_user, split_session) # compute the session ids session_ids = np.cumsum(new_session) data['session_id'] = session_ids return data
Example #3
Source File: dataset.py From TheCannon with MIT License | 6 votes |
def diagnostics_test_step_flagstars(self): """ Write files listing stars whose inferred labels lie outside 2 standard deviations from the reference label space """ label_names = self.get_plotting_labels() nlabels = len(label_names) reference_labels = self.tr_label test_labels = self.test_label_vals test_IDs = np.array(self.test_ID) mean = np.mean(reference_labels, 0) stdev = np.std(reference_labels, 0) lower = mean - 2 * stdev upper = mean + 2 * stdev for i in range(nlabels): label_name = label_names[i] test_vals = test_labels[:,i] warning = np.logical_or(test_vals < lower[i], test_vals > upper[i]) filename = "flagged_stars_%s.txt" % i with open(filename, 'w') as output: for star in test_IDs[warning]: output.write('{0:s}\n'.format(star)) print("Reference label %s" % label_name) print("flagged %s stars beyond 2-sig of ref labels" % sum(warning)) print("Saved list %s" % filename)
Example #4
Source File: test_kproxy_supercell_hf.py From pyscf with Apache License 2.0 | 6 votes |
def test_class(self): """Tests container behavior.""" model = kproxy_supercell.TDProxy(self.model_krhf, "hf", [self.k, 1, 1], density_fitting_hf) model.nroots = self.td_model_krhf.nroots assert not model.fast model.kernel() testing.assert_allclose(model.e, self.td_model_krhf.e, atol=1e-5) # Test real testing.assert_allclose(model.e.imag, 0, atol=1e-8) nocc = nvirt = 4 testing.assert_equal(model.xy.shape, (len(model.e), 2, self.k, self.k, nocc, nvirt)) # Test only non-degenerate roots d = abs(model.e[1:] - model.e[:-1]) < 1e-8 d = numpy.logical_or(numpy.concatenate(([False], d)), numpy.concatenate((d, [False]))) d = numpy.logical_not(d) assert_vectors_close(self.td_model_krhf.xy[d], model.xy[d], atol=1e-5)
Example #5
Source File: aaomega_munge_data.py From TheCannon with MIT License | 6 votes |
def make_full_ivar(): """ take the scatters and skylines and make final ivars """ # skylines come as an ivar # don't use them for now, because I don't really trust them... # skylines = np.load("%s/skylines.npz" %DATA_DIR)['arr_0'] ref_flux = np.load("%s/ref_flux_all.npz" %DATA_DIR)['arr_0'] ref_scat = np.load("%s/ref_spec_scat_all.npz" %DATA_DIR)['arr_0'] test_flux = np.load("%s/test_flux.npz" %DATA_DIR)['arr_0'] test_scat = np.load("%s/test_spec_scat.npz" %DATA_DIR)['arr_0'] ref_ivar = np.ones(ref_flux.shape) / ref_scat[:,None]**2 test_ivar = np.ones(test_flux.shape) / test_scat[:,None]**2 # ref_ivar = (ref_ivar_temp * skylines[None,:]) / (ref_ivar_temp + skylines) # test_ivar = (test_ivar_temp * skylines[None,:]) / (test_ivar_temp + skylines) ref_bad = np.logical_or(ref_flux <= 0, ref_flux > 1.1) test_bad = np.logical_or(test_flux <= 0, test_flux > 1.1) SMALL = 1.0 / 1000000000.0 ref_ivar[ref_bad] = SMALL test_ivar[test_bad] = SMALL np.savez("%s/ref_ivar_corr.npz" %DATA_DIR, ref_ivar) np.savez("%s/test_ivar_corr.npz" %DATA_DIR, test_ivar)
Example #6
Source File: test_utils.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def assert_almost_equal_ignore_nan(a, b, rtol=None, atol=None, names=('a', 'b')): """Test that two NumPy arrays are almost equal (ignoring NaN in either array). Combines a relative and absolute measure of approximate eqality. If either the relative or absolute check passes, the arrays are considered equal. Including an absolute check resolves issues with the relative check where all array values are close to zero. Parameters ---------- a : np.ndarray b : np.ndarray rtol : None or float The relative threshold. Default threshold will be used if set to ``None``. atol : None or float The absolute threshold. Default threshold will be used if set to ``None``. """ a = np.copy(a) b = np.copy(b) nan_mask = np.logical_or(np.isnan(a), np.isnan(b)) a[nan_mask] = 0 b[nan_mask] = 0 assert_almost_equal(a, b, rtol, atol, names)
Example #7
Source File: test_utils.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def almost_equal_ignore_nan(a, b, rtol=None, atol=None): """Test that two NumPy arrays are almost equal (ignoring NaN in either array). Combines a relative and absolute measure of approximate eqality. If either the relative or absolute check passes, the arrays are considered equal. Including an absolute check resolves issues with the relative check where all array values are close to zero. Parameters ---------- a : np.ndarray b : np.ndarray rtol : None or float The relative threshold. Default threshold will be used if set to ``None``. atol : None or float The absolute threshold. Default threshold will be used if set to ``None``. """ a = np.copy(a) b = np.copy(b) nan_mask = np.logical_or(np.isnan(a), np.isnan(b)) a[nan_mask] = 0 b[nan_mask] = 0 return almost_equal(a, b, rtol, atol)
Example #8
Source File: apogee.py From TheCannon with MIT License | 6 votes |
def get_pixmask(fluxes, flux_errs): """ Create and return a bad pixel mask for an APOGEE spectrum Bad pixels are defined as follows: fluxes or errors are not finite, or reported errors are <= 0, or fluxes are 0 Parameters ---------- fluxes: ndarray Flux data values flux_errs: ndarray Flux uncertainty data values Returns ------- mask: ndarray Bad pixel mask, value of True corresponds to bad pixels """ bad_flux = np.logical_or(~np.isfinite(fluxes), fluxes == 0) bad_err = (~np.isfinite(flux_errs)) | (flux_errs <= 0) bad_pix = bad_err | bad_flux return bad_pix
Example #9
Source File: postprocess_utils.py From coded with MIT License | 6 votes |
def min_max_years(config, image, before): """ Exclude data outside of min and max year desired """ min_year = int(config['postprocessing']['minimum_year']) if not min_year: min_year = 1980 max_year = int(config['postprocessing']['maximum_year']) if not max_year: max_year = 2200 year_image = image[0,:,:].astype(np.str).view(np.chararray).ljust(4) year_image = np.array(year_image).astype(np.float) bad_indices = np.logical_or(year_image < min_year, year_image > max_year) for i in range(image.shape[0] - 1): image[i,:,:][bad_indices] = 0 image[image.shape[0]-1,:,:][bad_indices] = before[bad_indices] return image
Example #10
Source File: main.py From tensorflow-XNN with MIT License | 6 votes |
def load_test_data(chunksize=350000*2): types_dict_test = { 'test_id': 'int32', 'item_condition_id': 'int32', 'shipping': 'int8', 'name': 'str', 'brand_name': 'str', 'item_description': 'str', 'category_name': 'str', } chunks = pd.read_csv('../input/test.tsv', delimiter='\t', low_memory=True, dtype=types_dict_test, chunksize=chunksize) for df in chunks: df.rename(columns={"test_id": "id"}, inplace=True) df.rename(columns={"item_description": "item_desc"}, inplace=True) df["missing_brand_name"] = df["brand_name"].isnull().astype(int) df["missing_category_name"] = df["category_name"].isnull().astype(int) missing_ind = np.logical_or(df["item_desc"].isnull(), df["item_desc"].str.lower().str.contains("no\s+description\s+yet")) df["missing_item_desc"] = missing_ind.astype(int) df["item_desc"][missing_ind] = df["name"][missing_ind] yield df
Example #11
Source File: test_ufunc.py From recruit with Apache License 2.0 | 6 votes |
def test_object_logical(self): a = np.array([3, None, True, False, "test", ""], dtype=object) assert_equal(np.logical_or(a, None), np.array([x or None for x in a], dtype=object)) assert_equal(np.logical_or(a, True), np.array([x or True for x in a], dtype=object)) assert_equal(np.logical_or(a, 12), np.array([x or 12 for x in a], dtype=object)) assert_equal(np.logical_or(a, "blah"), np.array([x or "blah" for x in a], dtype=object)) assert_equal(np.logical_and(a, None), np.array([x and None for x in a], dtype=object)) assert_equal(np.logical_and(a, True), np.array([x and True for x in a], dtype=object)) assert_equal(np.logical_and(a, 12), np.array([x and 12 for x in a], dtype=object)) assert_equal(np.logical_and(a, "blah"), np.array([x and "blah" for x in a], dtype=object)) assert_equal(np.logical_not(a), np.array([not x for x in a], dtype=object)) assert_equal(np.logical_or.reduce(a), 3) assert_equal(np.logical_and.reduce(a), None)
Example #12
Source File: pull_data.py From TheCannon with MIT License | 6 votes |
def find_colors(ref_id, ref_flux, ref_ivar): # Find colors print("Finding colors") a = pyfits.open(DATA_DIR + "/lamost_catalog_colors.fits") data = a[1].data a.close() all_ids = data['LAMOST_ID_1'] all_ids = np.array([val.strip() for val in all_ids]) ref_id_col = np.intersect1d(all_ids, ref_id) inds = np.array([np.where(all_ids==val)[0][0] for val in ref_id_col]) all_col, all_col_ivar = get_colors( DATA_DIR + "/lamost_catalog_colors.fits") col = all_col[:,inds] col_ivar = all_col_ivar[:,inds] bad_ivar = np.logical_or(np.isnan(col_ivar), col_ivar==np.inf) col_ivar[bad_ivar] = 0.0 bad_flux = np.logical_or(np.isnan(col), col==np.inf) col[bad_flux] = 1.0 col_ivar[bad_flux] = 0.0 # add them to the wl, flux and ivar arrays inds = np.array([np.where(ref_id==val)[0][0] for val in ref_id_col]) ref_flux_col = np.hstack((ref_flux[inds], col.T)) ref_ivar_col = np.hstack((ref_ivar[inds], col_ivar.T)) return ref_id_col, ref_flux_col, ref_ivar_col
Example #13
Source File: env.py From cwcf with MIT License | 6 votes |
def _get_random_batch(self, size, zero_prob): idx = np.random.randint(len(self.data_x), size=size) x = self.data_x[idx] y = self.data_y[idx] p = self.hpc_p[idx] n = self.data_n[idx] m = Environment._random_mask(size, zero_prob) * ~n # can take only available features s = Environment._get_state(x, m) a = ~np.logical_or(m, n) # available actions c = np.sum(a * self.costs * config.FEATURE_FACTOR, axis=1) # cost of remaining actions return (s, x, y, p, c) #==============================
Example #14
Source File: visibility.py From bop_toolkit with MIT License | 6 votes |
def estimate_visib_mask_est(d_test, d_est, visib_gt, delta, visib_mode='bop19'): """Estimates a mask of the visible object surface in the estimated pose. For an explanation of why the visibility mask is calculated differently for the estimated and the ground-truth pose, see equation (14) and related text in Hodan et al., On Evaluation of 6D Object Pose Estimation, ECCVW'16. :param d_test: Distance image of a scene in which the visibility is estimated. :param d_est: Rendered distance image of the object model in the est. pose. :param visib_gt: Visibility mask of the object model in the GT pose (from function estimate_visib_mask_gt). :param delta: Tolerance used in the visibility test. :param visib_mode: See _estimate_visib_mask. :return: Visibility mask. """ visib_est = _estimate_visib_mask(d_test, d_est, delta, visib_mode) visib_est = np.logical_or(visib_est, np.logical_and(visib_gt, d_est > 0)) return visib_est
Example #15
Source File: test_ufunc.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def test_object_logical(self): a = np.array([3, None, True, False, "test", ""], dtype=object) assert_equal(np.logical_or(a, None), np.array([x or None for x in a], dtype=object)) assert_equal(np.logical_or(a, True), np.array([x or True for x in a], dtype=object)) assert_equal(np.logical_or(a, 12), np.array([x or 12 for x in a], dtype=object)) assert_equal(np.logical_or(a, "blah"), np.array([x or "blah" for x in a], dtype=object)) assert_equal(np.logical_and(a, None), np.array([x and None for x in a], dtype=object)) assert_equal(np.logical_and(a, True), np.array([x and True for x in a], dtype=object)) assert_equal(np.logical_and(a, 12), np.array([x and 12 for x in a], dtype=object)) assert_equal(np.logical_and(a, "blah"), np.array([x and "blah" for x in a], dtype=object)) assert_equal(np.logical_not(a), np.array([not x for x in a], dtype=object)) assert_equal(np.logical_or.reduce(a), 3) assert_equal(np.logical_and.reduce(a), None)
Example #16
Source File: DataSearch.py From pandas-qt with MIT License | 6 votes |
def indexSearch(self, indexes): """Filters the data by a list of indexes. Args: indexes (list of int): List of index numbers to return. Returns: list: A list containing all indexes with filtered data. Matches will be `True`, the remaining items will be `False`. If the dataFrame is empty, an empty list will be returned. """ if not self._dataFrame.empty: filter0 = self._dataFrame.index == -9999 for index in indexes: filter1 = self._dataFrame.index == index filter0 = np.logical_or(filter0, filter1) return filter0 else: return []
Example #17
Source File: test_ufunc.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def test_NotImplemented_not_returned(self): # See gh-5964 and gh-2091. Some of these functions are not operator # related and were fixed for other reasons in the past. binary_funcs = [ np.power, np.add, np.subtract, np.multiply, np.divide, np.true_divide, np.floor_divide, np.bitwise_and, np.bitwise_or, np.bitwise_xor, np.left_shift, np.right_shift, np.fmax, np.fmin, np.fmod, np.hypot, np.logaddexp, np.logaddexp2, np.logical_and, np.logical_or, np.logical_xor, np.maximum, np.minimum, np.mod ] # These functions still return NotImplemented. Will be fixed in # future. # bad = [np.greater, np.greater_equal, np.less, np.less_equal, np.not_equal] a = np.array('1') b = 1 for f in binary_funcs: assert_raises(TypeError, f, a, b)
Example #18
Source File: test_umath.py From recruit with Apache License 2.0 | 6 votes |
def test_truth_table_logical(self): # 2, 3 and 4 serves as true values input1 = [0, 0, 3, 2] input2 = [0, 4, 0, 2] typecodes = (np.typecodes['AllFloat'] + np.typecodes['AllInteger'] + '?') # boolean for dtype in map(np.dtype, typecodes): arg1 = np.asarray(input1, dtype=dtype) arg2 = np.asarray(input2, dtype=dtype) # OR out = [False, True, True, True] for func in (np.logical_or, np.maximum): assert_equal(func(arg1, arg2).astype(bool), out) # AND out = [False, False, False, True] for func in (np.logical_and, np.minimum): assert_equal(func(arg1, arg2).astype(bool), out) # XOR out = [False, True, True, False] for func in (np.logical_xor, np.not_equal): assert_equal(func(arg1, arg2).astype(bool), out)
Example #19
Source File: np_deterministic.py From xskillscore with Apache License 2.0 | 6 votes |
def _match_nans(a, b, weights): """ Considers missing values pairwise. If a value is missing in a, the corresponding value in b is turned to nan, and vice versa. Returns ------- a, b, weights : ndarray a, b, and weights (if not None) with nans placed at pairwise locations. """ if np.isnan(a).any() or np.isnan(b).any(): # Find pairwise indices in a and b that have nans. idx = np.logical_or(np.isnan(a), np.isnan(b)) a[idx], b[idx] = np.nan, np.nan if weights is not None: weights = weights.copy() weights[idx] = np.nan return a, b, weights
Example #20
Source File: ext_beyond1_std.py From feets with MIT License | 6 votes |
def fit(self, magnitude, error): n = len(magnitude) weighted_mean = np.average(magnitude, weights=1 / error ** 2) # Standard deviation with respect to the weighted mean var = sum((magnitude - weighted_mean) ** 2) std = np.sqrt((1.0 / (n - 1)) * var) count = np.sum( np.logical_or( magnitude > weighted_mean + std, magnitude < weighted_mean - std, ) ) return {"Beyond1Std": float(count) / n}
Example #21
Source File: extras.py From lambda-packs with MIT License | 5 votes |
def _covhelper(x, y=None, rowvar=True, allow_masked=True): """ Private function for the computation of covariance and correlation coefficients. """ x = ma.array(x, ndmin=2, copy=True, dtype=float) xmask = ma.getmaskarray(x) # Quick exit if we can't process masked data if not allow_masked and xmask.any(): raise ValueError("Cannot process masked data.") # if x.shape[0] == 1: rowvar = True # Make sure that rowvar is either 0 or 1 rowvar = int(bool(rowvar)) axis = 1 - rowvar if rowvar: tup = (slice(None), None) else: tup = (None, slice(None)) # if y is None: xnotmask = np.logical_not(xmask).astype(int) else: y = array(y, copy=False, ndmin=2, dtype=float) ymask = ma.getmaskarray(y) if not allow_masked and ymask.any(): raise ValueError("Cannot process masked data.") if xmask.any() or ymask.any(): if y.shape == x.shape: # Define some common mask common_mask = np.logical_or(xmask, ymask) if common_mask is not nomask: xmask = x._mask = y._mask = ymask = common_mask x._sharedmask = False y._sharedmask = False x = ma.concatenate((x, y), axis) xnotmask = np.logical_not(np.concatenate((xmask, ymask), axis)).astype(int) x -= x.mean(axis=rowvar)[tup] return (x, xnotmask, rowvar)
Example #22
Source File: test_util.py From lambda-packs with MIT License | 5 votes |
def assertAllEqual(self, a, b): """Asserts that two numpy arrays have the same values. Args: a: a numpy ndarray or anything can be converted to one. b: a numpy ndarray or anything can be converted to one. """ a = self._GetNdArray(a) b = self._GetNdArray(b) self.assertEqual(a.shape, b.shape, "Shape mismatch: expected %s, got %s." % (a.shape, b.shape)) same = (a == b) if a.dtype == np.float32 or a.dtype == np.float64: same = np.logical_or(same, np.logical_and(np.isnan(a), np.isnan(b))) if not np.all(same): # Prints more details than np.testing.assert_array_equal. diff = np.logical_not(same) if a.ndim: x = a[np.where(diff)] y = b[np.where(diff)] print("not equal where = ", np.where(diff)) else: # np.where is broken for scalars x, y = a, b print("not equal lhs = ", x) print("not equal rhs = ", y) np.testing.assert_array_equal(a, b) # pylint: disable=g-doc-return-or-yield
Example #23
Source File: test_util.py From lambda-packs with MIT License | 5 votes |
def _assertArrayLikeAllClose(self, a, b, rtol=1e-6, atol=1e-6, msg=None): a = self._GetNdArray(a) b = self._GetNdArray(b) self.assertEqual(a.shape, b.shape, "Shape mismatch: expected %s, got %s." % (a.shape, b.shape)) if not np.allclose(a, b, rtol=rtol, atol=atol): # Prints more details than np.testing.assert_allclose. # # NOTE: numpy.allclose (and numpy.testing.assert_allclose) # checks whether two arrays are element-wise equal within a # tolerance. The relative difference (rtol * abs(b)) and the # absolute difference atol are added together to compare against # the absolute difference between a and b. Here, we want to # print out which elements violate such conditions. cond = np.logical_or( np.abs(a - b) > atol + rtol * np.abs(b), np.isnan(a) != np.isnan(b)) if a.ndim: x = a[np.where(cond)] y = b[np.where(cond)] print("not close where = ", np.where(cond)) else: # np.where is broken for scalars x, y = a, b print("not close lhs = ", x) print("not close rhs = ", y) print("not close dif = ", np.abs(x - y)) print("not close tol = ", atol + rtol * np.abs(y)) print("dtype = %s, shape = %s" % (a.dtype, a.shape)) np.testing.assert_allclose(a, b, rtol=rtol, atol=atol, err_msg=msg)
Example #24
Source File: cli_shared.py From lambda-packs with MIT License | 5 votes |
def parse_ranges_highlight(ranges_string): """Process ranges highlight string. Args: ranges_string: (str) A string representing a numerical range of a list of numerical ranges. See the help info of the -r flag of the print_tensor command for more details. Returns: An instance of tensor_format.HighlightOptions, if range_string is a valid representation of a range or a list of ranges. """ ranges = None def ranges_filter(x): r = np.zeros(x.shape, dtype=bool) for range_start, range_end in ranges: r = np.logical_or(r, np.logical_and(x >= range_start, x <= range_end)) return r if ranges_string: ranges = command_parser.parse_ranges(ranges_string) return tensor_format.HighlightOptions( ranges_filter, description=ranges_string) else: return None
Example #25
Source File: coo.py From lambda-packs with MIT License | 5 votes |
def _setdiag(self, values, k): M, N = self.shape if values.ndim and not len(values): return idx_dtype = self.row.dtype # Determine which triples to keep and where to put the new ones. full_keep = self.col - self.row != k if k < 0: max_index = min(M+k, N) if values.ndim: max_index = min(max_index, len(values)) keep = np.logical_or(full_keep, self.col >= max_index) new_row = np.arange(-k, -k + max_index, dtype=idx_dtype) new_col = np.arange(max_index, dtype=idx_dtype) else: max_index = min(M, N-k) if values.ndim: max_index = min(max_index, len(values)) keep = np.logical_or(full_keep, self.row >= max_index) new_row = np.arange(max_index, dtype=idx_dtype) new_col = np.arange(k, k + max_index, dtype=idx_dtype) # Define the array of data consisting of the entries to be added. if values.ndim: new_data = values[:max_index] else: new_data = np.empty(max_index, dtype=self.dtype) new_data[:] = values # Update the internal structure. self.row = np.concatenate((self.row[keep], new_row)) self.col = np.concatenate((self.col[keep], new_col)) self.data = np.concatenate((self.data[keep], new_data)) self.has_canonical_format = False # needed by _data_matrix
Example #26
Source File: sparse_image_warp_np.py From SpecAugment with Apache License 2.0 | 5 votes |
def _get_boundary_locations(image_height, image_width, num_points_per_edge): """Compute evenly-spaced indices along edge of image.""" y_range = np.linspace(0, image_height - 1, num_points_per_edge + 2) x_range = np.linspace(0, image_width - 1, num_points_per_edge + 2) ys, xs = np.meshgrid(y_range, x_range, indexing='ij') is_boundary = np.logical_or( np.logical_or(xs == 0, xs == image_width - 1), np.logical_or(ys == 0, ys == image_height - 1)) return np.stack([ys[is_boundary], xs[is_boundary]], axis=-1)
Example #27
Source File: batch_major_attention_test.py From lingvo with Apache License 2.0 | 5 votes |
def testAttenProbs(self): (query_vec, key_vec, paddings, per_step_padding, query_vec_p, key_vec_p, paddings_p, per_step_padding_p) = _AttentionInputs() p = attention.MultiHeadedAttention.Params().Set( name='atten', input_dim=4, hidden_dim=4) l = p.Instantiate() probs = l.AttenProbs( l.theta, tf.expand_dims(query_vec, 2), tf.expand_dims(key_vec, 2), paddings, segment_mask=None, per_step_padding=per_step_padding) with self.session(use_gpu=False) as sess: tf.global_variables_initializer().run() prob_out = sess.run(tf.squeeze(probs)) # Use numpy to perform the same computation to generate expected results. query_vec_p = np.array(query_vec_p) key_vec_p = np.array(key_vec_p) key_vec_p = np.transpose(key_vec_p, (0, 2, 1)) expected_logit = np.matmul(query_vec_p, key_vec_p) paddings_p = np.array(paddings_p) paddings_p = np.expand_dims(paddings_p, axis=1) paddings_p = np.tile(paddings_p, (1, 6, 1)) per_step_padding_p = np.array(per_step_padding_p) paddings_p = 1.0 * np.logical_or(paddings_p, per_step_padding_p) elexp = np.exp(expected_logit) elexp *= (1.0 - paddings_p) elexp += 1e-9 expected_prob_out = elexp / np.expand_dims(np.sum(elexp, axis=-1), axis=-1) expected_prob_out = np.reshape(expected_prob_out, (6, 6, 6)) self.assertAllClose(expected_prob_out, prob_out)
Example #28
Source File: pose_error.py From bop_toolkit with MIT License | 5 votes |
def cus(R_est, t_est, R_gt, t_gt, K, renderer, obj_id): """Complement over Union of projected 2D masks. :param R_est: 3x3 ndarray with the estimated rotation matrix. :param t_est: 3x1 ndarray with the estimated translation vector. :param R_gt: 3x3 ndarray with the ground-truth rotation matrix. :param t_gt: 3x1 ndarray with the ground-truth translation vector. :param K: 3x3 ndarray with an intrinsic camera matrix. :param renderer: Instance of the Renderer class (see renderer.py). :param obj_id: Object identifier. :return: The calculated error. """ # Render depth images of the model at the estimated and the ground-truth pose. fx, fy, cx, cy = K[0, 0], K[1, 1], K[0, 2], K[1, 2] depth_est = renderer.render_object( obj_id, R_est, t_est, fx, fy, cx, cy)['depth'] depth_gt = renderer.render_object( obj_id, R_gt, t_gt, fx, fy, cx, cy)['depth'] # Masks of the rendered model and their intersection and union. mask_est = depth_est > 0 mask_gt = depth_gt > 0 inter = np.logical_and(mask_gt, mask_est) union = np.logical_or(mask_gt, mask_est) union_count = float(union.sum()) if union_count > 0: e = 1.0 - inter.sum() / union_count else: e = 1.0 return e
Example #29
Source File: extras.py From auto-alt-text-lambda-api with MIT License | 5 votes |
def _covhelper(x, y=None, rowvar=True, allow_masked=True): """ Private function for the computation of covariance and correlation coefficients. """ x = ma.array(x, ndmin=2, copy=True, dtype=float) xmask = ma.getmaskarray(x) # Quick exit if we can't process masked data if not allow_masked and xmask.any(): raise ValueError("Cannot process masked data.") # if x.shape[0] == 1: rowvar = True # Make sure that rowvar is either 0 or 1 rowvar = int(bool(rowvar)) axis = 1 - rowvar if rowvar: tup = (slice(None), None) else: tup = (None, slice(None)) # if y is None: xnotmask = np.logical_not(xmask).astype(int) else: y = array(y, copy=False, ndmin=2, dtype=float) ymask = ma.getmaskarray(y) if not allow_masked and ymask.any(): raise ValueError("Cannot process masked data.") if xmask.any() or ymask.any(): if y.shape == x.shape: # Define some common mask common_mask = np.logical_or(xmask, ymask) if common_mask is not nomask: xmask = x._mask = y._mask = ymask = common_mask x._sharedmask = False y._sharedmask = False x = ma.concatenate((x, y), axis) xnotmask = np.logical_not(np.concatenate((xmask, ymask), axis)).astype(int) x -= x.mean(axis=rowvar)[tup] return (x, xnotmask, rowvar)
Example #30
Source File: visibility.py From bop_toolkit with MIT License | 5 votes |
def _estimate_visib_mask(d_test, d_model, delta, visib_mode='bop19'): """Estimates a mask of the visible object surface. :param d_test: Distance image of a scene in which the visibility is estimated. :param d_model: Rendered distance image of the object model. :param delta: Tolerance used in the visibility test. :param visib_mode: Visibility mode: 1) 'bop18' - Object is considered NOT VISIBLE at pixels with missing depth. 2) 'bop19' - Object is considered VISIBLE at pixels with missing depth. This allows to use the VSD pose error function also on shiny objects, which are typically not captured well by the depth sensors. A possible problem with this mode is that some invisible parts can be considered visible. However, the shadows of missing depth measurements, where this problem is expected to appear and which are often present at depth discontinuities, are typically relatively narrow and therefore this problem is less significant. :return: Visibility mask. """ assert (d_test.shape == d_model.shape) if visib_mode == 'bop18': mask_valid = np.logical_and(d_test > 0, d_model > 0) d_diff = d_model.astype(np.float32) - d_test.astype(np.float32) visib_mask = np.logical_and(d_diff <= delta, mask_valid) elif visib_mode == 'bop19': d_diff = d_model.astype(np.float32) - d_test.astype(np.float32) visib_mask = np.logical_and( np.logical_or(d_diff <= delta, d_test == 0), d_model > 0) else: raise ValueError('Unknown visibility mode.') return visib_mask