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: Gets values of the loss function on the last step for all models.
  
  :param layer_name: The name of the loss layer for which last losses will
      be returned. The class of the layer with that name must be `neoml.Dnn.Loss`.
  :type layer_name: str
  
  :return: The array of losses for all models.
  :rtype: *ndarray of shape (model_count,)*
docstr_tok: ["Gets","values","of","the","loss","function","on","the","last","step","for","all","models",".",":","param","layer_name",":","The","name","of","the","loss","layer","for","which","last","losses","will","be","returned",".","The","class","of","the","layer","with","that","name","must","be","`","neoml.Dnn.Loss","`",".",":","type","layer_name",":","str",":","return",":","The","array","of","losses","for","all","models",".",":","rtype",":","*","ndarray","of","shape","(","model_count",",",")","*"]
code: def last_losses(self, layer_name):
      """Gets values of the loss function on the last step for all models.
  
      :param layer_name: The name of the loss layer for which last losses will
          be returned. The class of the layer with that name must be `neoml.Dnn.Loss`.
      :type layer_name: str
  
      :return: The array of losses for all models.
      :rtype: *ndarray of shape (model_count,)*
      """
      return self._last_losses(str(layer_name))
  
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 6 for calling the DnnDistributed obj's underlying member method code with example usage: obj.last_losses(layer_name) and returns: self