class_docstr: Single process, multiple threads distributed training.
  
  :param dnn: The dnn or the archive with the dnn to learn distributed.
  :type dnn: neoml.Dnn.Dnn or str
  :param type: Learn on cpu or gpu.
  :type type: str, ("cpu", "gpu"), default="cpu"
  :param count: Count of models to use.
  :type count: int, default=0
  :param devs: Numbers of gpus to use
  :type devs: list, default=None
  :param initializer: The initializer that will fill initial weight values.
  :type path: str, ("xavier", "xavier_uniform", "uniform"), default="xavier"
  :param seed: Random seed number.
  :type seed: int, default=42
class_docstr_tok: ["Single","process",",","multiple","threads","distributed","training",".",":","param","dnn",":","The","dnn","or","the","archive","with","the","dnn","to","learn","distributed",".",":","type","dnn",":","neoml.Dnn.Dnn","or","str",":","param","type",":","Learn","on","cpu","or","gpu",".",":","type","type",":","str",",","(","``","cpu","''",",","``","gpu","''",")",",","default=","''","cpu","''",":","param","count",":","Count","of","models","to","use",".",":","type","count",":","int",",","default=0",":","param","devs",":","Numbers","of","gpus","to","use",":","type","devs",":","list",",","default=None",":","param","initializer",":","The","initializer","that","will","fill","initial","weight","values",".",":","type","path",":","str",",","(","``","xavier","''",",","``","xavier_uniform","''",",","``","uniform","''",")",",","default=","''","xavier","''",":","param","seed",":","Random","seed","number",".",":","type","seed",":","int",",","default=42"]
docstr: Runs the network.
  
  :param set_data_callback: A callback that takes a math_engine and thread number
      as its arguments. It must return a tuple(int, dict) where
      int is the size of this batch and dict contains input blobs for the
      dnn on a given thread, this dict must be the same as for the
      run method of a dnn. Zero batch size (no data for this thread during this run)
      is supported on any run except the first.
  :type set_data_callback: callable
docstr_tok: ["Runs","the","network",".",":","param","set_data_callback",":","A","callback","that","takes","a","math_engine","and","thread","number","as","its","arguments",".","It","must","return","a","tuple","(","int",",","dict",")","where","int","is","the","size","of","this","batch","and","dict","contains","input","blobs","for","the","dnn","on","a","given","thread",",","this","dict","must","be","the","same","as","for","the","run","method","of","a","dnn",".","Zero","batch","size","(","no","data","for","this","thread","during","this","run",")","is","supported","on","any","run","except","the","first",".",":","type","set_data_callback",":","callable"]
code: def run(self, set_data_callback):
      """Runs the network.
  
      :param set_data_callback: A callback that takes a math_engine and thread number
          as its arguments. It must return a tuple(int, dict) where
          int is the size of this batch and dict contains input blobs for the
          dnn on a given thread, this dict must be the same as for the
          run method of a dnn. Zero batch size (no data for this thread during this run)
          is supported on any run except the first.
      :type set_data_callback: callable
      """
      self._run(set_data_callback)
  
file_path: neoml/NeoML/Python/neoml/Dnn/DnnDistributed.py
imports: import uuid
  import os
  from neoml.MathEngine import MathEngine
  import neoml.PythonWrapper
  from neoml.Blob import Blob
  from neoml.Dnn import Dnn
label_desc: Use image node_id 2 for calling the DnnDistributed obj's underlying member method code with example usage: obj.run(set_data_callback) without return types