def vector_stats(vectors, name, verbose=True): line_list = [] line_list.append('+--- Vector Stats --') line_list.append(' * vectors = %r' % name) key_list = ut.codeblock(''' vectors.shape vectors.dtype vectors.max() vectors.min() ''').split('\n') strlist_ = ut.parse_locals_keylist(locals(), key_list) line_list.extend(strlist_) #line_list.append(vectors) line_list.append('L--- Vector Stats --') statstr = '\n'.join(line_list) if verbose: print(statstr) return statstr
def vector_stats(vectors, name, verbose=True): line_list = [] line_list.append('+--- Vector Stats --') line_list.append(' * vectors = %r' % name) key_list = ut.codeblock( ''' vectors.shape vectors.dtype vectors.max() vectors.min() ''' ).split('\n') strlist_ = ut.parse_locals_keylist(locals(), key_list) line_list.extend(strlist_) #line_list.append(vectors) line_list.append('L--- Vector Stats --') statstr = '\n'.join(line_list) if verbose: print(statstr) return statstr
def invindex_dbgstr(invindex): """ >>> from ibeis.algo.hots.smk.smk_debug import * # NOQA >>> ibs, annots_df, daids, qaids, invindex = testdata_raw_internals0() >>> invindex_dbgstr(invindex) """ print('+--- INVINDEX DBGSTR ---') print('called by %r' % (ut.get_caller_name(),)) locals_ = {'invindex': invindex} #print(dictinfo(invindex.wx2_fxs)) key_list = [ 'invindex.words.shape', 'invindex.words.dtype', 'invindex.daids.dtype', 'invindex.idx2_dvec.shape', 'invindex.idx2_dvec.dtype', 'invindex.idx2_daid.shape', 'invindex.idx2_daid.dtype', 'invindex.idx2_dfx.shape', (dictinfo, 'invindex.daid2_sccw'), (dictinfo, 'invindex.wx2_drvecs'), (dictinfo, 'invindex.wx2_dmaws'), (dictinfo, 'invindex.wx2_dflags'), (dictinfo, 'invindex.wx2_idf'), (dictinfo, 'invindex.wx2_aids'), (dictinfo, 'invindex.wx2_fxs'), (dictinfo, 'invindex.wx2_idxs'), ] keystr_list = ut.parse_locals_keylist(locals_, key_list) append = keystr_list.append def stats_(arr): return wx_len_stats(arr) append('lenstats(invindex.wx2_idxs) = ' + stats_(invindex.wx2_idxs)) #append('lenstats(invindex.wx2_idf) = ' + stats_(invindex.wx2_idf)) append('lenstats(invindex.wx2_drvecs) = ' + stats_(invindex.wx2_drvecs)) append('lenstats(invindex.wx2_aids) = ' + stats_(invindex.wx2_aids)) def mapval(func, dict_): if isinstance(dict_, dict): return map(func, six.itervalues(dict_)) else: return map(func, dict_) def isunique(aids): return len(set(aids)) == len(aids) if invindex.wx2_aids is not None: wx_series = list(invindex.wx2_aids.keys()) aids_list = list(invindex.wx2_aids.values()) nAids_list = map(len, aids_list) invindex.wx2_aids append('sum(mapval(len, invindex.wx2_aids))) = ' + str(sum(nAids_list))) probably_asmk = all(mapval(isunique, invindex.wx2_aids)) if probably_asmk: append('All wx2_aids are unique. aggregate probably is True') else: append('Some wx2_aids are duplicates. aggregate probably is False') maxkey = wx_series[np.array(nAids_list).argmax()] print('wx2_aids[maxkey=%r] = \n' % (maxkey,) + str(invindex.wx2_aids[maxkey])) dbgstr = '\n'.join(keystr_list) print(dbgstr) print('L--- END INVINDEX DBGSTR ---')
def invindex_dbgstr(invindex): """ >>> from ibeis.algo.hots.smk.smk_debug import * # NOQA >>> ibs, annots_df, daids, qaids, invindex = testdata_raw_internals0() >>> invindex_dbgstr(invindex) """ print('+--- INVINDEX DBGSTR ---') print('called by %r' % (ut.get_caller_name(), )) locals_ = {'invindex': invindex} #print(dictinfo(invindex.wx2_fxs)) key_list = [ 'invindex.words.shape', 'invindex.words.dtype', 'invindex.daids.dtype', 'invindex.idx2_dvec.shape', 'invindex.idx2_dvec.dtype', 'invindex.idx2_daid.shape', 'invindex.idx2_daid.dtype', 'invindex.idx2_dfx.shape', (dictinfo, 'invindex.daid2_sccw'), (dictinfo, 'invindex.wx2_drvecs'), (dictinfo, 'invindex.wx2_dmaws'), (dictinfo, 'invindex.wx2_dflags'), (dictinfo, 'invindex.wx2_idf'), (dictinfo, 'invindex.wx2_aids'), (dictinfo, 'invindex.wx2_fxs'), (dictinfo, 'invindex.wx2_idxs'), ] keystr_list = ut.parse_locals_keylist(locals_, key_list) append = keystr_list.append def stats_(arr): return wx_len_stats(arr) append('lenstats(invindex.wx2_idxs) = ' + stats_(invindex.wx2_idxs)) #append('lenstats(invindex.wx2_idf) = ' + stats_(invindex.wx2_idf)) append('lenstats(invindex.wx2_drvecs) = ' + stats_(invindex.wx2_drvecs)) append('lenstats(invindex.wx2_aids) = ' + stats_(invindex.wx2_aids)) def mapval(func, dict_): if isinstance(dict_, dict): return map(func, six.itervalues(dict_)) else: return map(func, dict_) def isunique(aids): return len(set(aids)) == len(aids) if invindex.wx2_aids is not None: wx_series = list(invindex.wx2_aids.keys()) aids_list = list(invindex.wx2_aids.values()) nAids_list = map(len, aids_list) invindex.wx2_aids append('sum(mapval(len, invindex.wx2_aids))) = ' + str(sum(nAids_list))) probably_asmk = all(mapval(isunique, invindex.wx2_aids)) if probably_asmk: append('All wx2_aids are unique. aggregate probably is True') else: append('Some wx2_aids are duplicates. aggregate probably is False') maxkey = wx_series[np.array(nAids_list).argmax()] print('wx2_aids[maxkey=%r] = \n' % (maxkey, ) + str(invindex.wx2_aids[maxkey])) dbgstr = '\n'.join(keystr_list) print(dbgstr) print('L--- END INVINDEX DBGSTR ---')