From fccf7bdf4056f92486a0b19502d9ff341998e79a Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 7 Feb 2021 07:22:59 +0000 Subject: [PATCH] update doc [skip doc, skip tests] --- docs/build/html/_modules/homura/liblog.html | 33 ++++++------------ .../html/_modules/homura/utils/backends.html | 21 ++++++++--- .../_modules/homura/utils/environment.html | 4 +++ docs/build/html/genindex.html | 12 ++++--- docs/build/html/homura.utils.html | 20 +++++++++++ docs/build/html/objects.inv | Bin 979 -> 992 bytes docs/build/html/searchindex.js | 2 +- 7 files changed, 60 insertions(+), 32 deletions(-) diff --git a/docs/build/html/_modules/homura/liblog.html b/docs/build/html/_modules/homura/liblog.html index feee75e..159d8ec 100644 --- a/docs/build/html/_modules/homura/liblog.html +++ b/docs/build/html/_modules/homura/liblog.html @@ -164,6 +164,7 @@

Source code for homura.liblog

 import os
 import sys
 import threading
+import warnings
 from typing import Optional, TextIO
 
 import tqdm as _tqdm
@@ -291,22 +292,7 @@ 

Source code for homura.liblog

     _get_root_logger().addHandler(fh)
-# internal - -def _get_file_descripter(): - # check if stderr and stdout are two different ptys. - # this detects tampering by wandb which messes up tqdm logging. - # fix it by writing to stderr instead of stdout. - file_ = sys.stdout - try: - if os.ttyname(sys.stdout.fileno()) != os.ttyname(sys.stderr.fileno()): - file_ = sys.stderr - except OSError: - # stdout or stderr is not a pty. default to stdout. - pass - return file_ - - +# internal APIs def _set_tqdm_handler(level: str or int = logging.INFO, formatter: Optional[logging.Formatter] = None) -> None: """ An alternative handler to avoid disturbing tqdm @@ -315,13 +301,12 @@

Source code for homura.liblog

     import tqdm
 
     class TQDMHandler(logging.StreamHandler):
-        """A logging handler compatible with tqdm progress bars from
-        https://github.com/pesser/edflow/blob/317cb1b61bf810a68004788d08418a5352653264/edflow/custom_logging.py#L322
-        """
+        def __init__(self):
+            logging.StreamHandler.__init__(self)
 
         def emit(self, record):
             msg = self.format(record)
-            tqdm.tqdm.write(msg, file=_get_file_descripter())
+            tqdm.tqdm.write(msg)
 
     _configure_root_logger()
     th = TQDMHandler()
@@ -344,13 +329,17 @@ 

Source code for homura.liblog

     # Some libraries override sys.stdout, which causes OSError: [Errno 9] Bad file descriptor.
     # To avoid this, this if statement is necessary
     if isinstance(sys.stdout, io.TextIOWrapper):
-        sys.stdout, sys.stderr = map(DummyTqdmFile, _original_stds)
+ sys.stdout, sys.stderr = map(DummyTqdmFile, _original_stds) + elif not isinstance(sys.stdout, DummyTqdmFile): + warnings.warn(f"sys.stdout is unexpected type: {type(sys.stdout)}.\n" + f"If you use wandb, set WANDB_CONSOLE=off to avoid tqdm-related problems.", + UserWarning)
[docs]def tqdm(*args, **kwargs): # https://github.com/tqdm/tqdm/blob/master/examples/redirect_print.py if kwargs.get("file") is None: - kwargs["file"] = _get_file_descripter() + kwargs["file"] = _original_stds[0] # tqdm seems to prioritize dynamic_ncols over ncols if kwargs.get("ncols") is None and kwargs.get("dynamic_ncols") is None: kwargs["dynamic_ncols"] = True diff --git a/docs/build/html/_modules/homura/utils/backends.html b/docs/build/html/_modules/homura/utils/backends.html index b797ebf..e9a2c9e 100644 --- a/docs/build/html/_modules/homura/utils/backends.html +++ b/docs/build/html/_modules/homura/utils/backends.html @@ -162,12 +162,16 @@

Source code for homura.utils.backends

 import torch
 from torch.utils.dlpack import from_dlpack, to_dlpack
 
-from .environment import is_cupy_available
+from .environment import is_cupy_available, is_opteinsum_available
 
-IS_CUPY_AVAILABLE = is_cupy_available()
-if IS_CUPY_AVAILABLE:
+has_cupy = is_cupy_available()
+if has_cupy:
     import cupy
 
+has_opt_einsum = is_opteinsum_available()
+if has_opt_einsum:
+    import opt_einsum
+
 
 
[docs]def torch_to_xp(input: torch.Tensor ) -> np.ndarray: @@ -177,7 +181,7 @@

Source code for homura.utils.backends

     if not isinstance(input, torch.Tensor):
         raise RuntimeError(f'torch_to_numpy expects torch.Tensor as input, but got {type(input)}')
 
-    if IS_CUPY_AVAILABLE and input.is_cuda:
+    if has_cupy and input.is_cuda:
         return cupy.fromDlpack(to_dlpack(input))
     else:
         return input.numpy()
@@ -190,10 +194,17 @@

Source code for homura.utils.backends

 
     if isinstance(input, np.ndarray):
         return torch.from_numpy(input)
-    elif IS_CUPY_AVAILABLE and isinstance(input, cupy.ndarray):
+    elif has_cupy and isinstance(input, cupy.ndarray):
         return from_dlpack(cupy.ToDlpack(input))
     else:
         raise RuntimeError(f'xp_to_torch expects numpy/cupy.ndarray as input, but got {type(input)}')
+ + +
[docs]def einsum(expr: str, + *xs): + if has_opt_einsum: + return opt_einsum.contract(expr, *xs, backend='torch') + return torch.einsum(expr, *xs)
diff --git a/docs/build/html/_modules/homura/utils/environment.html b/docs/build/html/_modules/homura/utils/environment.html index dd7e65f..d6a3572 100644 --- a/docs/build/html/_modules/homura/utils/environment.html +++ b/docs/build/html/_modules/homura/utils/environment.html @@ -197,6 +197,10 @@

Source code for homura.utils.environment

     return importlib.util.find_spec("cupy") is not None
+
[docs]def is_opteinsum_available() -> bool: + return importlib.util.find_spec("opt_einsum") is not None
+ + # get environment information
[docs]def get_git_hash() -> str: diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index a7e4176..52556f3 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -209,12 +209,14 @@

D

E

- +
diff --git a/docs/build/html/homura.utils.html b/docs/build/html/homura.utils.html index 830ea9e..4f7d36a 100644 --- a/docs/build/html/homura.utils.html +++ b/docs/build/html/homura.utils.html @@ -176,6 +176,16 @@

Submodules

homura.utils.backends module

Helper functions to convert PyTorch Tensors <-> Cupy/Numpy arrays. These functions are useful to write device-agnostic extensions.

+
+
+homura.utils.backends.einsum(expr, *xs)[source]
+
+
Parameters
+

expr (str) –

+
+
+
+
homura.utils.backends.torch_to_xp(input)[source]
@@ -565,6 +575,16 @@

Submodules +
+homura.utils.environment.is_opteinsum_available()[source]
+
+
Return type
+

bool

+
+
+

+

homura.utils.reproducibility module

diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 32d13d55385386a6936c10f967a6443136b039b3..d9b72d904c9ab320924224a3e13d1e110b290f0a 100644 GIT binary patch delta 860 zcmV-i1Ec)Y2jB;gk$;wUftfY zO{I7vAp4S)p{KN!_!Js9pR>(XITYj^4c!VL9Cox3mXuU-0lEe48p$jwnO%=i^Nd=n znikY+mgqqyo6sTFT2O!`?zdPtYb)D>-Vy$R91#w_OZPviUp{js$l~Q|?YYYGF1imm)7sgZdJjSI~+Sn(_qL6G)@< zEw%Kk_xfu0Pe3k5lC64bY5}Phc}SWy)`JLlYh%5WmVadm_pg|3V}Y+sl>uS+O#JO4 z$sm6rDuminK{S=m=`f+##aObbh*TU*I_j^|!W|6w3TZ6d5j3Qt{i`#9B+-&dY$VXk z|6-Bjbt#!zDy{bFlEk$e0dkL8$qGXLtjNg$p|52qV_4AwlFaeZN_An zcWpf1gS{N_r^W&$6-(?aK%(UElDT64#zmPc+J86KS>Ni%Wq0jkH@_dp6>CQginZ=J zt6iDmmem{Uu1*@6iHN$Mq4+p@3hAoV2qg53A$@Hdh2(v3QSlD%G$@81GA6S~SD3%W zy4De=9W@b#0{5--6#3b>6dudN)<*Q*o(}=t*eJmV$2{g3I+6Anpz|3-S2pU8K|5s} z>s7K*nw`?sJLuDx7=A$Lr#K}-#~bH>|6oHU&un`bn=5BvBz5Y;rtb*KAK@ShNfe3Y mNDyBQARo{l4z4(n<4FwA_Uph%7}|p7G4wyQYyJmEnlHg1*`(?K delta 847 zcmV-V1F-zy2h#_Tk$;kQf(XH5TL?4c!VL917YBODZb40NsI#Rx*o9X4ezcX-1<} zLrdy4OY|UB!6l&O1oTUoS6kW_pI@3 zC$@ihO^oHLwcQu!<%pGT>SjJqprJ%#!{W|NfkBf0@(+67X_=tLd_2uTlhYkV;iE6~ zX$0eq09z@(gv2U^Y^}Hg(X3Nq-6(BI@XyNGC*EJJCWTft;mGVcoYtZ+vF-L9r#3xw zZYg^P$y4RIRezdQ#47UA#KUw1J570MI)rDfpnzmmP4)BY#T)>+#Tw8qw}B~XDN4|5 zZ8!q*M+?nu9|E&vJkNv!!5y-cy90|_I2lw+k(Z`Ha|zBXXhlj*c>?SSq*3~oTKd&{ zeYN{%AeSS_Rz0=tvB62pGKKp$#DBK6z*nZqh%kO8{&J9HkiXBA zLT#xan#$*Nm{9CuEZNpXDh?(c^;c=(4hDRMG!_;F4XNqy=1U++v}6_=2{iM+Smbcq zNv2jxtDU+eaqUKc+@V&ohLAria&kl%N)gH!*0h8qb9}T?U7B=C|2rL2VppP>Dvji} zYw%D?1b@tstZnue#1#~cN#SX56)A5SZc(7!uZ*r4#n)3DT&UOX*f17ZvSA)+VA)x* zL*qu}-ODidZ$m7Q9cu6SI>)0=toAf8|Mp@vef<6XK5_|oLp~3A*TvpF*vk=rYAjJw zvBb_2BuWl1nX9XBT$H)`cypZ%t$ti~*FE<0`+spXL)HSk-kYn^bqQ8QtvCErSq zk)KVg&Z#_XZA9Pi`54fTjS_rtoW>kNC(?cb=zIpzl}-9%&|VqGx@?rDP`Z8xeH;_R zk4Ol^6vss9dD9&5|BX<|Gus`;=E@luNu6fD89IXUM>vQ=5=CM;62w;{$OrU?y(=W- ZbP@x!tK=ub&=xe0q5q*<^FK*>_;~JcoO=KO diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 854e4dc..098511e 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["homura","homura.metrics","homura.modules","homura.modules.functional","homura.nlp","homura.utils","homura.vision","homura.vision.data","homura.vision.models","homura.vision.transforms","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["homura.rst","homura.metrics.rst","homura.modules.rst","homura.modules.functional.rst","homura.nlp.rst","homura.utils.rst","homura.vision.rst","homura.vision.data.rst","homura.vision.models.rst","homura.vision.transforms.rst","index.rst","modules.rst"],objects:{"homura.liblog":{disable_default_handler:[0,1,1,""],disable_propagation:[0,1,1,""],enable_default_handler:[0,1,1,""],enable_propagation:[0,1,1,""],get_logger:[0,1,1,""],get_verb_level:[0,1,1,""],log_once:[0,1,1,""],print_once:[0,1,1,""],set_file_handler:[0,1,1,""],set_tqdm_stdout_stderr:[0,1,1,""],set_verb_level:[0,1,1,""],tqdm:[0,1,1,""]},"homura.register":{Registry:[0,2,1,""]},"homura.register.Registry":{available_registries:[0,3,1,""],choices:[0,3,1,""],help:[0,3,1,""],import_modules:[0,3,1,""],register:[0,3,1,""],register_from_dict:[0,3,1,""]},"homura.utils":{backends:[5,0,0,"-"],benchmarks:[5,0,0,"-"],containers:[5,0,0,"-"],distributed:[5,0,0,"-"],environment:[5,0,0,"-"],reproducibility:[5,0,0,"-"]},"homura.utils.backends":{torch_to_xp:[5,1,1,""],xp_to_torch:[5,1,1,""]},"homura.utils.benchmarks":{timeit:[5,1,1,""]},"homura.utils.containers":{StepDict:[5,2,1,""],TensorDataClass:[5,2,1,""],TensorTuple:[5,2,1,""],tensor_dataclass:[5,1,1,""]},"homura.utils.containers.StepDict":{load_state_dict:[5,3,1,""],state_dict:[5,3,1,""],step:[5,3,1,""],zero_grad:[5,3,1,""]},"homura.utils.containers.TensorDataClass":{to:[5,3,1,""]},"homura.utils.containers.TensorTuple":{to:[5,3,1,""]},"homura.utils.distributed":{distributed_print:[5,1,1,""],get_global_rank:[5,1,1,""],get_local_rank:[5,1,1,""],get_num_nodes:[5,1,1,""],get_world_size:[5,1,1,""],if_is_master:[5,1,1,""],init_distributed:[5,1,1,""],is_distributed:[5,1,1,""],is_distributed_available:[5,1,1,""],is_horovod_available:[5,1,1,""],is_master:[5,1,1,""]},"homura.utils.environment":{enable_accimage:[5,1,1,""],get_args:[5,1,1,""],get_environ:[5,1,1,""],get_git_hash:[5,1,1,""],is_accimage_available:[5,1,1,""],is_cupy_available:[5,1,1,""],is_faiss_available:[5,1,1,""]},"homura.utils.reproducibility":{set_deterministic:[5,1,1,""],set_seed:[5,1,1,""]},"homura.vision.data":{classification:[7,0,0,"-"]},"homura.vision.data.classification":{ExtraSVHN:[7,2,1,""],ImageNet:[7,2,1,""],OriginalSVHN:[7,2,1,""]},homura:{liblog:[0,0,0,"-"],register:[0,0,0,"-"],utils:[5,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"000021u":5,"100":5,"2019":5,"class":[0,5,7],"default":5,"function":[0,2,5],"int":[0,5],"return":[0,5],"static":0,"true":7,"void":5,These:5,Useful:5,__slots__:5,_print_if_mast:5,_type:5,about:5,activ:5,adam:5,agnost:5,all:5,alreadi:0,ani:5,anyth:0,arg:[0,5],arrai:5,assum:5,attent:[0,11],available_registri:0,backend:[0,11],base:[0,5,7],becaus:5,benchmark:[0,11],bool:[0,5],by_rank:5,callabl:5,can:5,check:[0,5],choic:0,cifar_resnet:[0,6],classif:[0,6],classmethod:0,cls:5,common:[0,11],contain:[0,11],content:11,context:5,convert:5,creat:5,cuda:5,cupi:5,data:[0,6],dataclass:5,dataset:[0,7],decor:5,def:[0,5],densenet:[0,6],detail:0,detect:[0,6],determinist:5,devic:5,dict:[0,5],dictionari:5,disable_default_handl:0,disable_distributed_print:5,disable_propag:0,discret:[0,11],discrimin:5,distribut:[0,11],distributed_print:5,do_some_random_th:5,document:10,doe:5,download:7,dtype:5,easi:5,easili:5,ema:[0,11],enable_accimag:5,enable_default_handl:0,enable_propag:0,end:5,environ:[0,11],equival:5,everyth:5,expect:5,extens:5,extrasvhn:7,fals:[0,5,7],fast:10,file:5,fix:5,folder:7,formatt:0,from:0,func:[0,5],gener:5,generator_opt:5,get:5,get_arg:5,get_environ:5,get_git_hash:5,get_global_rank:5,get_local_rank:5,get_logg:0,get_num_nod:5,get_verb_level:0,get_world_s:5,given:5,global:5,gpu:5,grad_approxim:[0,2],handl:5,have:5,help:0,helper:5,homura:10,horovod:5,howev:5,if_is_mast:5,imagefold:7,imagenet:7,import_modul:0,index:10,info:[0,5],inform:5,init_distribut:5,init_method:5,init_process_group:5,initi:5,input:5,int32:5,intend:5,is_accimage_avail:5,is_cupy_avail:5,is_distribut:5,is_distributed_avail:5,is_faiss_avail:5,is_horovod_avail:5,is_mast:5,iter:5,kei:0,knn:[0,2],kwarg:[0,5],larger:5,level:0,liblog:11,librari:10,like:0,limit:5,list:5,load_state_dict:5,loader:7,local:5,log:0,log_fil:0,log_onc:0,logger:0,loss:[0,2,5],lr_schedul:[5,11],make:5,master:5,messag:[0,5],metric:[0,10,11],mixup:[0,6],model:[0,6],model_registri:0,model_registry2:0,modul:[10,11],move:5,name:[0,5],name_to_func:0,ndarrai:5,nlp:[0,10,11],node:5,none:[0,5,7],nonetyp:0,note:5,num_it:5,number:5,numpi:5,object:[0,5,7],onc:0,onli:[0,5],oper:5,optim:[5,11],option:[0,5],optuna:0,originalsvhn:7,other:5,packag:[10,11],package_nam:0,page:10,paramet:[0,5],per:5,port:0,pred:5,predict:5,prefetch:[0,6],print:[0,5],print_mast:5,print_onc:0,process:5,prototyp:10,pytorch:5,random:5,rank:5,refer:10,regist:11,registe:0,register_from_dict:0,registri:0,registry_nam:5,report:11,reproduc:[0,11],requir:5,research:10,root:7,same:5,search:10,seed:5,segment:[0,6,11],self:5,sep:5,set:5,set_determinist:5,set_file_handl:0,set_se:5,set_tqdm_stdout_stderr:0,set_verb_level:0,simpl:5,size:5,someth:5,sourc:[0,5,7],state_dict:5,statist:[0,6],step:5,stepdict:5,store:5,str:[0,5],submodul:[6,11],subpackag:11,substitut:5,svhn:7,tensor:5,tensor_dataclass:5,tensordataclass:5,tensortupl:5,than:5,thi:5,timeit:5,tool:0,torch:5,torch_to_xp:5,torchvis:7,total:5,tqdm:0,train:[5,7],trainer:11,transform:[0,6,7,11],tupl:5,type:[0,5],unet:[0,6],union:0,use:5,use_horovod:5,used:[0,5],useful:5,util:[0,10,11],version:0,vision:[0,10,11],visionset:[0,6],warmup_it:5,welcom:10,when:0,world:5,wrap:5,write:5,x_cuda:5,x_int:5,xp_to_torch:5,you:0,your_model:0,your_model_inst:0,yourtensorclass:5,zero_grad:5},titles:["homura package","homura.metrics package","homura.modules package","homura.modules.functional package","homura.nlp package","homura.utils package","homura.vision package","homura.vision.data package","homura.vision.models package","homura.vision.transforms package","Indices and tables","homura"],titleterms:{"function":3,attent:[2,3],backend:5,benchmark:5,cifar_resnet:8,classif:7,common:1,contain:5,content:[0,1,2,3,4,5,6,7,8,9],data:7,densenet:8,detect:7,discret:[2,3],distribut:5,ema:2,environ:5,grad_approxim:3,homura:[0,1,2,3,4,5,6,7,8,9,11],indic:10,knn:3,liblog:0,loss:3,lr_schedul:0,metric:1,mixup:9,model:8,modul:[0,1,2,3,4,5,6,7,8,9],nlp:4,optim:0,packag:[0,1,2,3,4,5,6,7,8,9],prefetch:7,regist:0,report:0,reproduc:5,segment:[1,7],statist:7,submodul:[0,1,2,3,4,5,7,8,9],subpackag:[0,2,6],tabl:10,trainer:0,transform:[4,9],unet:8,util:5,vision:[6,7,8,9],visionset:7}}) \ No newline at end of file +Search.setIndex({docnames:["homura","homura.metrics","homura.modules","homura.modules.functional","homura.nlp","homura.utils","homura.vision","homura.vision.data","homura.vision.models","homura.vision.transforms","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["homura.rst","homura.metrics.rst","homura.modules.rst","homura.modules.functional.rst","homura.nlp.rst","homura.utils.rst","homura.vision.rst","homura.vision.data.rst","homura.vision.models.rst","homura.vision.transforms.rst","index.rst","modules.rst"],objects:{"homura.liblog":{disable_default_handler:[0,1,1,""],disable_propagation:[0,1,1,""],enable_default_handler:[0,1,1,""],enable_propagation:[0,1,1,""],get_logger:[0,1,1,""],get_verb_level:[0,1,1,""],log_once:[0,1,1,""],print_once:[0,1,1,""],set_file_handler:[0,1,1,""],set_tqdm_stdout_stderr:[0,1,1,""],set_verb_level:[0,1,1,""],tqdm:[0,1,1,""]},"homura.register":{Registry:[0,2,1,""]},"homura.register.Registry":{available_registries:[0,3,1,""],choices:[0,3,1,""],help:[0,3,1,""],import_modules:[0,3,1,""],register:[0,3,1,""],register_from_dict:[0,3,1,""]},"homura.utils":{backends:[5,0,0,"-"],benchmarks:[5,0,0,"-"],containers:[5,0,0,"-"],distributed:[5,0,0,"-"],environment:[5,0,0,"-"],reproducibility:[5,0,0,"-"]},"homura.utils.backends":{einsum:[5,1,1,""],torch_to_xp:[5,1,1,""],xp_to_torch:[5,1,1,""]},"homura.utils.benchmarks":{timeit:[5,1,1,""]},"homura.utils.containers":{StepDict:[5,2,1,""],TensorDataClass:[5,2,1,""],TensorTuple:[5,2,1,""],tensor_dataclass:[5,1,1,""]},"homura.utils.containers.StepDict":{load_state_dict:[5,3,1,""],state_dict:[5,3,1,""],step:[5,3,1,""],zero_grad:[5,3,1,""]},"homura.utils.containers.TensorDataClass":{to:[5,3,1,""]},"homura.utils.containers.TensorTuple":{to:[5,3,1,""]},"homura.utils.distributed":{distributed_print:[5,1,1,""],get_global_rank:[5,1,1,""],get_local_rank:[5,1,1,""],get_num_nodes:[5,1,1,""],get_world_size:[5,1,1,""],if_is_master:[5,1,1,""],init_distributed:[5,1,1,""],is_distributed:[5,1,1,""],is_distributed_available:[5,1,1,""],is_horovod_available:[5,1,1,""],is_master:[5,1,1,""]},"homura.utils.environment":{enable_accimage:[5,1,1,""],get_args:[5,1,1,""],get_environ:[5,1,1,""],get_git_hash:[5,1,1,""],is_accimage_available:[5,1,1,""],is_cupy_available:[5,1,1,""],is_faiss_available:[5,1,1,""],is_opteinsum_available:[5,1,1,""]},"homura.utils.reproducibility":{set_deterministic:[5,1,1,""],set_seed:[5,1,1,""]},"homura.vision.data":{classification:[7,0,0,"-"]},"homura.vision.data.classification":{ExtraSVHN:[7,2,1,""],ImageNet:[7,2,1,""],OriginalSVHN:[7,2,1,""]},homura:{liblog:[0,0,0,"-"],register:[0,0,0,"-"],utils:[5,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"000021u":5,"100":5,"2019":5,"class":[0,5,7],"default":5,"function":[0,2,5],"int":[0,5],"return":[0,5],"static":0,"true":7,"void":5,These:5,Useful:5,__slots__:5,_print_if_mast:5,_type:5,about:5,activ:5,adam:5,agnost:5,all:5,alreadi:0,ani:5,anyth:0,arg:[0,5],arrai:5,assum:5,attent:[0,11],available_registri:0,backend:[0,11],base:[0,5,7],becaus:5,benchmark:[0,11],bool:[0,5],by_rank:5,callabl:5,can:5,check:[0,5],choic:0,cifar_resnet:[0,6],classif:[0,6],classmethod:0,cls:5,common:[0,11],contain:[0,11],content:11,context:5,convert:5,creat:5,cuda:5,cupi:5,data:[0,6],dataclass:5,dataset:[0,7],decor:5,def:[0,5],densenet:[0,6],detail:0,detect:[0,6],determinist:5,devic:5,dict:[0,5],dictionari:5,disable_default_handl:0,disable_distributed_print:5,disable_propag:0,discret:[0,11],discrimin:5,distribut:[0,11],distributed_print:5,do_some_random_th:5,document:10,doe:5,download:7,dtype:5,easi:5,easili:5,einsum:5,ema:[0,11],enable_accimag:5,enable_default_handl:0,enable_propag:0,end:5,environ:[0,11],equival:5,everyth:5,expect:5,expr:5,extens:5,extrasvhn:7,fals:[0,5,7],fast:10,file:5,fix:5,folder:7,formatt:0,from:0,func:[0,5],gener:5,generator_opt:5,get:5,get_arg:5,get_environ:5,get_git_hash:5,get_global_rank:5,get_local_rank:5,get_logg:0,get_num_nod:5,get_verb_level:0,get_world_s:5,given:5,global:5,gpu:5,grad_approxim:[0,2],handl:5,have:5,help:0,helper:5,homura:10,horovod:5,howev:5,if_is_mast:5,imagefold:7,imagenet:7,import_modul:0,index:10,info:[0,5],inform:5,init_distribut:5,init_method:5,init_process_group:5,initi:5,input:5,int32:5,intend:5,is_accimage_avail:5,is_cupy_avail:5,is_distribut:5,is_distributed_avail:5,is_faiss_avail:5,is_horovod_avail:5,is_mast:5,is_opteinsum_avail:5,iter:5,kei:0,knn:[0,2],kwarg:[0,5],larger:5,level:0,liblog:11,librari:10,like:0,limit:5,list:5,load_state_dict:5,loader:7,local:5,log:0,log_fil:0,log_onc:0,logger:0,loss:[0,2,5],lr_schedul:[5,11],make:5,master:5,messag:[0,5],metric:[0,10,11],mixup:[0,6],model:[0,6],model_registri:0,model_registry2:0,modul:[10,11],move:5,name:[0,5],name_to_func:0,ndarrai:5,nlp:[0,10,11],node:5,none:[0,5,7],nonetyp:0,note:5,num_it:5,number:5,numpi:5,object:[0,5,7],onc:0,onli:[0,5],oper:5,optim:[5,11],option:[0,5],optuna:0,originalsvhn:7,other:5,packag:[10,11],package_nam:0,page:10,paramet:[0,5],per:5,port:0,pred:5,predict:5,prefetch:[0,6],print:[0,5],print_mast:5,print_onc:0,process:5,prototyp:10,pytorch:5,random:5,rank:5,refer:10,regist:11,registe:0,register_from_dict:0,registri:0,registry_nam:5,report:11,reproduc:[0,11],requir:5,research:10,root:7,same:5,search:10,seed:5,segment:[0,6,11],self:5,sep:5,set:5,set_determinist:5,set_file_handl:0,set_se:5,set_tqdm_stdout_stderr:0,set_verb_level:0,simpl:5,size:5,someth:5,sourc:[0,5,7],state_dict:5,statist:[0,6],step:5,stepdict:5,store:5,str:[0,5],submodul:[6,11],subpackag:11,substitut:5,svhn:7,tensor:5,tensor_dataclass:5,tensordataclass:5,tensortupl:5,than:5,thi:5,timeit:5,tool:0,torch:5,torch_to_xp:5,torchvis:7,total:5,tqdm:0,train:[5,7],trainer:11,transform:[0,6,7,11],tupl:5,type:[0,5],unet:[0,6],union:0,use:5,use_horovod:5,used:[0,5],useful:5,util:[0,10,11],version:0,vision:[0,10,11],visionset:[0,6],warmup_it:5,welcom:10,when:0,world:5,wrap:5,write:5,x_cuda:5,x_int:5,xp_to_torch:5,you:0,your_model:0,your_model_inst:0,yourtensorclass:5,zero_grad:5},titles:["homura package","homura.metrics package","homura.modules package","homura.modules.functional package","homura.nlp package","homura.utils package","homura.vision package","homura.vision.data package","homura.vision.models package","homura.vision.transforms package","Indices and tables","homura"],titleterms:{"function":3,attent:[2,3],backend:5,benchmark:5,cifar_resnet:8,classif:7,common:1,contain:5,content:[0,1,2,3,4,5,6,7,8,9],data:7,densenet:8,detect:7,discret:[2,3],distribut:5,ema:2,environ:5,grad_approxim:3,homura:[0,1,2,3,4,5,6,7,8,9,11],indic:10,knn:3,liblog:0,loss:3,lr_schedul:0,metric:1,mixup:9,model:8,modul:[0,1,2,3,4,5,6,7,8,9],nlp:4,optim:0,packag:[0,1,2,3,4,5,6,7,8,9],prefetch:7,regist:0,report:0,reproduc:5,segment:[1,7],statist:7,submodul:[0,1,2,3,4,5,7,8,9],subpackag:[0,2,6],tabl:10,trainer:0,transform:[4,9],unet:8,util:5,vision:[6,7,8,9],visionset:7}}) \ No newline at end of file