<i id='DBYLW'><tr id='DBYLW'><dt id='DBYLW'><q id='DBYLW'><span id='DBYLW'><b id='DBYLW'><form id='DBYLW'><ins id='DBYLW'></ins><ul id='DBYLW'></ul><sub id='DBYLW'></sub></form><legend id='DBYLW'></legend><bdo id='DBYLW'><pre id='DBYLW'><center id='DBYLW'></center></pre></bdo></b><th id='DBYLW'></th></span></q></dt></tr></i><div id='DBYLW'><tfoot id='DBYLW'></tfoot><dl id='DBYLW'><fieldset id='DBYLW'></fieldset></dl></div>

<small id='DBYLW'></small><noframes id='DBYLW'>

    1. <legend id='DBYLW'><style id='DBYLW'><dir id='DBYLW'><q id='DBYLW'></q></dir></style></legend>

        <tfoot id='DBYLW'></tfoot>
        • <bdo id='DBYLW'></bdo><ul id='DBYLW'></ul>
      1. 星图与tqdm结合?

        时间:2023-05-27
            <i id='kahgy'><tr id='kahgy'><dt id='kahgy'><q id='kahgy'><span id='kahgy'><b id='kahgy'><form id='kahgy'><ins id='kahgy'></ins><ul id='kahgy'></ul><sub id='kahgy'></sub></form><legend id='kahgy'></legend><bdo id='kahgy'><pre id='kahgy'><center id='kahgy'></center></pre></bdo></b><th id='kahgy'></th></span></q></dt></tr></i><div id='kahgy'><tfoot id='kahgy'></tfoot><dl id='kahgy'><fieldset id='kahgy'></fieldset></dl></div>

                  <tbody id='kahgy'></tbody>
                <legend id='kahgy'><style id='kahgy'><dir id='kahgy'><q id='kahgy'></q></dir></style></legend>
                <tfoot id='kahgy'></tfoot>

                <small id='kahgy'></small><noframes id='kahgy'>

                • <bdo id='kahgy'></bdo><ul id='kahgy'></ul>

                • 本文介绍了星图与tqdm结合?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我在做一些并行处理,如下:

                  I am doing some parallel processing, as follows:

                  with mp.Pool(8) as tmpPool:
                          results = tmpPool.starmap(my_function, inputs)
                  

                  输入如下所示:[(1,0.2312),(5,0.52) ...]即,int 和 float 的元组.

                  where inputs look like: [(1,0.2312),(5,0.52) ...] i.e., tuples of an int and a float.

                  代码运行良好,但我似乎无法将其包裹在加载栏 (tqdm) 周围,例如可以使用 imap 方法完成,如下所示:

                  The code runs nicely, yet I cannot seem to wrap it around a loading bar (tqdm), such as can be done with e.g., imap method as follows:

                  tqdm.tqdm(mp.imap(some_function,some_inputs))
                  

                  星图也可以这样做吗?

                  谢谢!

                  推荐答案

                  starmap() 是不行的,但是通过添加 Pool.istarmap() 的补丁是可以的>.它基于 imap() 的代码.您所要做的就是创建 istarmap.py-文件并导入模块以应用补丁,然后再进行常规的多处理导入.

                  It's not possible with starmap(), but it's possible with a patch adding Pool.istarmap(). It's based on the code for imap(). All you have to do, is create the istarmap.py-file and import the module to apply the patch before you make your regular multiprocessing-imports.

                  Python <3.8

                  # istarmap.py for Python <3.8
                  import multiprocessing.pool as mpp
                  
                  
                  def istarmap(self, func, iterable, chunksize=1):
                      """starmap-version of imap
                      """
                      if self._state != mpp.RUN:
                          raise ValueError("Pool not running")
                  
                      if chunksize < 1:
                          raise ValueError(
                              "Chunksize must be 1+, not {0:n}".format(
                                  chunksize))
                  
                      task_batches = mpp.Pool._get_tasks(func, iterable, chunksize)
                      result = mpp.IMapIterator(self._cache)
                      self._taskqueue.put(
                          (
                              self._guarded_task_generation(result._job,
                                                            mpp.starmapstar,
                                                            task_batches),
                              result._set_length
                          ))
                      return (item for chunk in result for item in chunk)
                  
                  
                  mpp.Pool.istarmap = istarmap
                  

                  Python 3.8+

                  # istarmap.py for Python 3.8+
                  import multiprocessing.pool as mpp
                  
                  
                  def istarmap(self, func, iterable, chunksize=1):
                      """starmap-version of imap
                      """
                      self._check_running()
                      if chunksize < 1:
                          raise ValueError(
                              "Chunksize must be 1+, not {0:n}".format(
                                  chunksize))
                  
                      task_batches = mpp.Pool._get_tasks(func, iterable, chunksize)
                      result = mpp.IMapIterator(self)
                      self._taskqueue.put(
                          (
                              self._guarded_task_generation(result._job,
                                                            mpp.starmapstar,
                                                            task_batches),
                              result._set_length
                          ))
                      return (item for chunk in result for item in chunk)
                  
                  
                  mpp.Pool.istarmap = istarmap
                  

                  然后在你的脚本中:

                  import istarmap  # import to apply patch
                  from multiprocessing import Pool
                  import tqdm    
                  
                  
                  def foo(a, b):
                      for _ in range(int(50e6)):
                          pass
                      return a, b    
                  
                  
                  if __name__ == '__main__':
                  
                      with Pool(4) as pool:
                          iterable = [(i, 'x') for i in range(10)]
                          for _ in tqdm.tqdm(pool.istarmap(foo, iterable),
                                             total=len(iterable)):
                              pass
                  

                  这篇关于星图与tqdm结合?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:扭曲与多处理事件和队列不兼容? 下一篇:结合 itertools 和多处理?

                  相关文章

                  最新文章

                    <tfoot id='6H4uL'></tfoot>
                  1. <i id='6H4uL'><tr id='6H4uL'><dt id='6H4uL'><q id='6H4uL'><span id='6H4uL'><b id='6H4uL'><form id='6H4uL'><ins id='6H4uL'></ins><ul id='6H4uL'></ul><sub id='6H4uL'></sub></form><legend id='6H4uL'></legend><bdo id='6H4uL'><pre id='6H4uL'><center id='6H4uL'></center></pre></bdo></b><th id='6H4uL'></th></span></q></dt></tr></i><div id='6H4uL'><tfoot id='6H4uL'></tfoot><dl id='6H4uL'><fieldset id='6H4uL'></fieldset></dl></div>

                  2. <legend id='6H4uL'><style id='6H4uL'><dir id='6H4uL'><q id='6H4uL'></q></dir></style></legend>

                    • <bdo id='6H4uL'></bdo><ul id='6H4uL'></ul>

                    <small id='6H4uL'></small><noframes id='6H4uL'>