Pytorch: рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 12.50 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 10.92 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 8.57 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 9.28 GiB рдореБрдХреНрдд; 4.68 MiB рдХреИрд╢реНрдб)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬрдире░ 2019  ┬╖  91рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pytorch/pytorch

CUDA рдЖрдЙрдЯ рдСрдлрд╝ рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рд▓реЗрдХрд┐рди CUDA рдореЗрдореЛрд░реА рд▓рдЧрднрдЧ рдЦрд╛рд▓реА рд╣реИ

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ (рд▓рдЧрднрдЧ 70GiB рдЯреЗрдХреНрд╕реНрдЯ) рдкрд░ рдПрдХ рд╣рд▓реНрдХреЗ рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗ рд░рд╣рд╛ рд╣реВрдВред
рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдПрдХ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ( рдЧреНрд░рд┐рдб 5000 рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ 'рдЧреНрд░реЗрд▓' )ред

рдореИрдВ 3 рдШрдВрдЯреЗ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдмрд╛рдж рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд╕реАрдпреВрдбреАрдП рдЖрдЙрдЯ рдСрдл рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
RuntimeError: CUDA out of memory. Tried to allocate 12.50 MiB (GPU 0; 10.92 GiB total capacity; 8.57 MiB already allocated; 9.28 GiB free; 4.68 MiB cached) ред
рд╕рдВрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореЗрд░реЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлреНрд▓рд╛рдИ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреА рддрд░реНрдЬ рдкрд░ torch.multiprocessing.Queue рдФрд░ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдкреВрд░реНрдг рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕

Traceback (most recent call last):
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/memory_profiler.py", line 1228, in <module>
    exec_with_profiler(script_filename, prof, args.backend, script_args)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/memory_profiler.py", line 1129, in exec_with_profiler
    exec(compile(f.read(), filename, 'exec'), ns, ns)
  File "run.py", line 293, in <module>
    main(args, save_folder, load_file)
  File "run.py", line 272, in main
    trainer.all_epochs()
  File "/home/emarquer/papud-bull-nn/trainer/trainer.py", line 140, in all_epochs
    self.single_epoch()
  File "/home/emarquer/papud-bull-nn/trainer/trainer.py", line 147, in single_epoch
    tracker.add(*self.single_batch(data, target))
  File "/home/emarquer/papud-bull-nn/trainer/trainer.py", line 190, in single_batch
    result = self.model(data)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/emarquer/papud-bull-nn/model/model.py", line 54, in forward
    emb = self.emb(input)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/modules/sparse.py", line 118, in forward
    self.norm_type, self.scale_grad_by_freq, self.sparse)
  File "/home/emarquer/miniconda3/envs/pytorch/lib/python3.6/site-packages/torch/nn/functional.py", line 1454, in embedding
    return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: CUDA out of memory. Tried to allocate 12.50 MiB (GPU 0; 10.92 GiB total capacity; 8.57 MiB already allocated; 9.28 GiB free; 4.68 MiB cached)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдорд┐рдиреА-рдмреИрдЪ GPU рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред рдЬрдм рдореИрдВрдиреЗ cifar10 рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рдЖрдХрд╛рд░ = 256 рд╕реЗрдЯ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА; рдлрд┐рд░ рдореИрдВрдиреЗ рдмреИрдЪ рдЖрдХрд╛рд░ = 128 рд╕реЗрдЯ рдХрд┐рдпрд╛, рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╕рднреА 91 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рд╣реИ:

Traceback (most recent call last):
  File "carn\train.py", line 52, in <module>
    main(cfg)
  File "carn\train.py", line 48, in main
    solver.fit()
  File "C:\Users\Omar\Desktop\CARN-pytorch\carn\solver.py", line 95, in fit
    psnr = self.evaluate("dataset/Urban100", scale=cfg.scale, num_step=self.step)
  File "C:\Users\Omar\Desktop\CARN-pytorch\carn\solver.py", line 136, in evaluate
    sr = self.refiner(lr_patch, scale).data
  File "C:\Program Files\Python37\lib\site-packages\torch\nn\modules\module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\Users\Omar\Desktop\CARN-pytorch\carn\model\carn.py", line 74, in forward
    b3 = self.b3(o2)
  File "C:\Program Files\Python37\lib\site-packages\torch\nn\modules\module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\Users\Omar\Desktop\CARN-pytorch\carn\model\carn.py", line 30, in forward
    c3 = torch.cat([c2, b3], dim=1)
RuntimeError: CUDA out of memory. Tried to allocate 195.25 MiB (GPU 0; 4.00 GiB total capacity; 2.88 GiB already allocated; 170.14 MiB free; 2.00 MiB cached)

@EMarquer @OmarBazaraa рдХреНрдпрд╛ рдЖрдк рдПрдХ рдиреНрдпреВрдирддрдо

рдореИрдВ рдЕрдм рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред
рд╕рдорд╕реНрдпрд╛ рддрдм рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рдЬрдм рдореИрдВрдиреЗ рд░реИрдо рдореЗрдВ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕реНрдб рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред

@OmarBazaraa , рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдореЗрд░реА рдЬреИрд╕реА рд╣реА рд╣реИ, рдЬреИрд╕реЗ:

  • рдореИрдВ 12.50 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, 9.28 GiB рдореБрдХреНрдд рдХреЗ рд╕рд╛рде
  • рдЖрдк 170.14 рдПрдордЖрдИрдмреА рдореБрдХреНрдд рдХреЗ рд╕рд╛рде 195.25 рдПрдордЖрдИрдмреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдпрд╛ рддреЛ рдЖрдк CUDA рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк CUDA рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
CUDA рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рди рдХрд░рдХреЗ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА CUDA рдореЗрдВ рдЯреЗрдирд░реНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХреЛ рдЯреЗрдВрд╕рд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рдореБрдХреНрдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХреЗрдВрдЧреЗред

рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИ?

CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 196.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 2.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 359.38 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 192.29 MiB рдореБрдХреНрдд; 152.37 MiB рдХреИрд╢реНрдб)

@ aniks23 рд╣рдо рдПрдХ рдкреИрдЪ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдЕрдиреБрднрд╡ рджреЗрдЧрд╛ред рдмрдиреЗ рд░рд╣реЗрдВ

рдХреНрдпрд╛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рдореЙрдбрд▓ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ
рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧреЗ рдмрд┐рдирд╛?

рд╢реБрдХреНрд░, 1 рдлрд░рд╡рд░реА, 2019 рдХреЛ рдкреВрд░реНрд╡рд╛рд╣реНрди 3:55 рдлрд╝реНрд░рд╛рдВрд╕рд┐рд╕реНрдХреЛ рдорд╕реНрд╕рд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@aniks23 https://github.com/aniks23 рд╣рдо рдПрдХ рдРрд╕реЗ рдкреИрдЪ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдореИрдВ
рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдЕрдиреБрднрд╡ рджреЗрдЧрд╛ред рдмрдиреЗ рд░рд╣реЗрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pytorch/pytorch/issues/16417#issuecomment-459530332 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AUEJD4SYN4gnRkrLgFYEKY6y14P1TMgLks5vI21wgaJpZM4aUowv
.

рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╢ рднреА рдорд┐рд▓рд╛:

RuntimeError: CUDA out of memory. Tried to allocate 32.75 MiB (GPU 0; 4.93 GiB total capacity; 3.85 GiB already allocated; 29.69 MiB free; 332.48 MiB cached)

рдпрд╣ рддрдм рд╣реБрдЖ рдЬрдм рдореИрдВ Fast.ai рдкрд╛рда1 рдкреЗрдЯреНрд╕ https://course.fast.ai/ (рд╕реЗрд▓ 31) рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореИрдВ рднреА рдЙрдиреНрд╣реАрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рдореЙрдбрд▓ рдкрд╣рд▓реЗ рд╕рдЯреАрдХ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдХреБрдЫ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗ рд░рд╣рд╛ рд╣реВрдВред

RuntimeError: CUDA out of memory. Tried to allocate 1.34 GiB (GPU 0; 22.41 GiB total capacity; 11.42 GiB already allocated; 59.19 MiB free; 912.00 KiB cached)

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░рд╛ рдкрд░рд┐рджреГрд╢реНрдп рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ (рдкрд┐рдЫрд▓реЗ рд╕рдВрджреЗрд╢ рдореЗрдВ OOM рддреНрд░реБрдЯрд┐ рдЪрд▓реА рдЧрдИ) nn рдХреЛ рддреЛрдбрд╝рдХрд░ред рдореЗрд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкрд░рддреЗрдВ, рдЬреИрд╕реЗ

self.input_layer = nn.Sequential(
    nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0),
    nn.BatchNorm3d(32),
    nn.ReLU()
)

output = self.input_layer(x)

рдкреНрд░рддрд┐

self.input_conv = nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0)
self.input_bn = nn.BatchNorm3d(32)

output = F.relu(self.input_bn(self.input_conv(x)))

рдореЗрд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ (рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 5 рдФрд░)ред рдХреНрдпрд╛ рдореИрдВ nn.рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ? @yf225 @fmassa

рдореБрдЭреЗ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:

CUDA out of memory. Tried to allocate 196.50 MiB (GPU 0; 15.75 GiB total capacity; 7.09 GiB already allocated; 20.62 MiB free; 72.48 MiB cached)

@ рдЯреНрд░реЗрдмрд▓-рдореЗрдХрд░123, рдХреНрдпрд╛ рдЖрдк рдирд┐рд░реНрдгрд╛рдпрдХ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдХрд┐ nn.Sequential рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдореЗрд░реА рднреА рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ pytorch dataloader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХрд╣рддреЗ рд╣реИрдВ рдореЗрд░реЗ рдкрд╛рд╕ 5 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдореБрдлреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдпрд╣ 0 рдмрд╛рдЗрдЯ рдореБрдлреНрдд рджреЗрддрд╛ рд╣реИред

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо)
рдореЗрдВ
22
23 рдбреЗрдЯрд╛, рдЗрдирдкреБрдЯреНрд╕ = рд╕реНрдЯреЗрдЯреНрд╕_рдЗрдирдкреБрдЯреНрд╕
---> 24 рдбреЗрдЯрд╛, рдЗрдирдкреБрдЯ = рд╡реИрд░рд┐рдПрдмрд▓ (рдбреЗрдЯрд╛)ред рдлреНрд▓реЛрдЯ ()ред рд╕реЗ (рдбрд┐рд╡рд╛рдЗрд╕), рд╡реЗрд░рд┐рдПрдмрд▓ (рдЗрдирдкреБрдЯ)ред рдлреНрд▓реЛрдЯ ()ред рд╕реЗ (рдбрд┐рд╡рд╛рдЗрд╕)
25 рдкреНрд░рд┐рдВрдЯ (рдбреЗрдЯрд╛ред рдбрд┐рд╡рд╛рдЗрд╕)
26 enc_out = рдПрдиреНрдХреЛрдбрд░ (рдбреЗрдЯрд╛)

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 11.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 6.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 448.58 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 0 рдмрд╛рдЗрдЯреНрд╕ рдореБрдХреНрдд; 942.00 KiB рдХреИрд╢реНрдб)

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИред

 File "xxx", line 151, in __call__
    logits = self.model(x_hat)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "unet.py", line 67, in forward
    x = up(x, blocks[-i-1])
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "unet.py", line 120, in forward
    out = self.conv_block(out)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "unet.py", line 92, in forward
    out = self.block(x)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/container.py", line 92, in forward
    input = module(input)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "anaconda3/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 320, in forward
    self.padding, self.dilation, self.groups)
RuntimeError: CUDA out of memory. Tried to allocate 8.00 MiB (GPU 1; 11.78 GiB total capacity; 10.66 GiB already allocated; 1.62 MiB free; 21.86 MiB cached)

рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛ред

RuntimeError: CUDA out of memory. Tried to allocate 1.33 GiB (GPU 1; 31.72 GiB total capacity; 5.68 GiB already allocated; 24.94 GiB free; 5.96 MiB cached)

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рддреНрд░реБрдЯрд┐ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╣реБрдИ рд╣реИред рд╕рд╛рде рд╣реА рдРрд╕реА рд╡рд╛рдпрд░реНрдб рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдореЗрд░реА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд░рдгрдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдбреЗрдЯрд╛ рд╡реГрджреНрдзрд┐ рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ??? RuntimeError: CUDA out of memory. Tried to allocate 18.00 MiB (GPU 0; 4.00 GiB total capacity; 2.94 GiB already allocated; 10.22 MiB free; 18.77 MiB cached)

рдпрд╣рд╛рдВ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ RuntimeError: CUDA out of memory. Tried to allocate 54.00 MiB (GPU 0; 11.00 GiB total capacity; 7.89 GiB already allocated; 7.74 MiB free; 478.37 MiB cached)

@fmassa рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ?

https://github.com/pytorch/pytorch/issues/16417#issuecomment -484264163

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рдореБрджреНрджрд╛
рдкреНрд░рд┐рдп, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?
(рдЖрдзрд╛рд░) рдПрдл: рд╕реБрд░реЗрд╢
C:\Users\cudalab10\Anaconda3lib\site-packages\torch\cuda__init__.py:117: UserWarning:
GPU0 TITAN Xp рдорд┐рд▓рд╛ рдЬреЛ рдХрд┐ cuda рдХреНрд╖рдорддрд╛ 1.1 рдХрд╛ рд╣реИред
PyTorch рдЕрдм рдЗрд╕ GPU рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред

рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБред рдЪреЗрддрд╛рд╡рдиреА (old_gpu_warn% (d, рдирд╛рдо, рдкреНрд░рдореБрдЦ, рдХреНрд╖рдорддрд╛ [1]))
[05.22.19|12:02:41] рдкреИрд░рд╛рдореАрдЯрд░реНрд╕:
{'base_lr': 0.1, 'ignore_weights': [], 'рдореЙрдбрд▓': 'net.st_gcn.Model', 'eval_interval': 5, 'weight_decay': 0.0001, 'work_dir': './work_dir', 'save_interval' ': 10, 'model_args': {'in_channels': 3, 'рдбреНрд░реЙрдкрдЖрдЙрдЯ': 0.5, 'num_class': 60, 'edge_importance_weighting': True, 'graph_args': {'strategy': 'spatial', 'layout': 'ntu-rgb+d'}}, 'рдбреАрдмрдЧ': рдЧрд▓рдд, 'pavi_log': рдЧрд▓рдд, 'save_result': рдЧрд▓рдд, 'рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди': 'config/st_gcn/ntu-xsub/train.yaml', 'рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░': 'SGD', 'рд╡реЗрдЯ': рдХреЛрдИ рдирд╣реАрдВ, 'num_epoch': 80, 'batch_size': 64, 'show_topk': [1, 5], 'test_batch_size': 64, 'рд╕реНрдЯреЗрдк': [10, 50], 'use_gpu ': рдЯреНрд░реВ, 'рдлреЗрдЬ': 'рдЯреНрд░реЗрди', 'рдкреНрд░рд┐рдВрдЯ_рд▓реЙрдЧ': рдЯреНрд░реВ, 'рд▓реЙрдЧ_рдЗрдВрдЯрд░рд╡рд▓': 100, 'рдлреАрдбрд░': 'рдлреАрдбрд░.рдлреАрдбрд░.рдлреАрдбрд░', 'рд╕реНрдЯрд╛рд░реНрдЯ_рдПрдкреЛрдЪ': 0, 'рдиреЗрд╕реНрдЯрд░реЛрд╡': рдЯреНрд░реВ, 'рдбрд┐рд╡рд╛рдЗрд╕' ': [0], 'save_log': рд╕рдЪ, 'test_feeder_args': {'data_path': './data/NTU-RGB-D/xsub/val_data.npy', 'label_path': './data/NTU- RGB-D/xsub/val_label.pkl'}, 'train_feeder_args': {'data_path': './data/NTU-RGB-D/xsub/train_data.npy', 'debug': False, 'label_path': ' ./рдбреЗрдЯрд╛/рдПрдирдЯреАрдпреВ-рдЖрд░рдЬреАрдмреА-рдбреА/xsub/train_l abel.pkl'}, 'num_worker': 4}

[05.22.19|12:02:41] рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ: 0
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "main1.py", рд▓рд╛рдЗрди 31, in
рдкреА.рд╕реНрдЯрд╛рд░реНрдЯ ()
рдлрд╝рд╛рдЗрд▓ "F:\рд╕реБрд░реЗрд╢\st-gcn\processor\processor.py", рд▓рд╛рдЗрди 113, рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ
рд╕реЗрд▓реНрдл.рдЯреНрд░реЗрди ()
рдлрд╝рд╛рдЗрд▓ "F:\рд╕реБрд░реЗрд╢\st-gcn\рдкреНрд░реЛрд╕реЗрд╕рд░\рд░рд┐рдХрдЧреНрдирд┐рд╢рди.py", рд▓рд╛рдЗрди 91, рдЯреНрд░реЗрди рдореЗрдВ
рдЖрдЙрдЯрдкреБрдЯ = рд╕реНрд╡рдпрдВ рдореЙрдбрд▓ (рдбреЗрдЯрд╛)
рдлрд╝рд╛рдЗрд▓ "C:\Users\cudalab10\Anaconda3lib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 489, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "F:\рд╕реБрд░реЗрд╢\st-gcn\net\st_gcn.py", рдкрдВрдХреНрддрд┐ 82, рдЖрдЧреЗ рдХреА рдУрд░
рдПрдХреНрд╕, _ = рдЬреАрд╕реАрдПрди (рдПрдХреНрд╕, рд╕реНрд╡рдпрдВред рдП * рдорд╣рддреНрд╡)
рдлрд╝рд╛рдЗрд▓ "C:\Users\cudalab10\Anaconda3lib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 489, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "F:\рд╕реБрд░реЗрд╢\st-gcn\net\st_gcn.py", рдкрдВрдХреНрддрд┐ 194, рдЖрдЧреЗ рдХреА рдУрд░
рдПрдХреНрд╕, рдП = рд╕реНрд╡рдпрдВ рдЬреАрд╕реАрдПрди (рдПрдХреНрд╕, рдП)
рдлрд╝рд╛рдЗрд▓ "C:\Users\cudalab10\Anaconda3lib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 489, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "F:\рд╕реБрд░реЗрд╢\st-gcn\net\utils\tgcn.py", рд▓рд╛рдЗрди 60, рдЖрдЧреЗ рдХреА рдУрд░
рдПрдХреНрд╕ = рд╕реНрд╡.рд░реВрдкрд╛рдВрддрд░рдг (рдПрдХреНрд╕)
рдлрд╝рд╛рдЗрд▓ "C:\Users\cudalab10\Anaconda3lib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 489, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "C:\Users\cudalab10\Anaconda3lib\site-packages\torch\nn\modules\conv.py", рд▓рд╛рдЗрди 320, рдЖрдЧреЗ рдХреА рдУрд░
рд╕реЗрд▓реНрдлрд╝.рдкреИрдбрд┐рдВрдЧ, рд╕реЗрд▓реНрдлрд╝.рдбреАрд▓реЗрд╢рди, рд╕реЗрд▓реНрдлрд╝.рдЧреНрд░реБрдкреНрд╕)
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 1.37 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 12.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 8.28 GiB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 652.75 MiB рдореБрдХреНрдд; 664.38 MiB рдХреИрд╢реНрдб)

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдорд┐рдиреА-рдмреИрдЪ GPU рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред рдЬрдм рдореИрдВрдиреЗ cifar10 рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рдЖрдХрд╛рд░ = 256 рд╕реЗрдЯ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА; рдлрд┐рд░ рдореИрдВрдиреЗ рдмреИрдЪ рдЖрдХрд╛рд░ = 128 рд╕реЗрдЯ рдХрд┐рдпрд╛, рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рдБ @balcilar рд╕рд╣реА рд╣реИ, рдореИрдВрдиреЗ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореЗрд░рд╛ рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ:

RuntimeError: CUDA out of memory. Tried to allocate 11.88 MiB (GPU 4; 15.75 GiB total capacity; 10.50 GiB already allocated; 1.88 MiB free; 3.03 GiB cached)

рдореИрдВ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8 V100 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрднреА рднреА 3.03GB рдХреИрд╢реНрдб рд╣реИ рдФрд░ рдЗрд╕реЗ 11.88MB рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдЖрдзрд╛ рдХрд░ рджреЗрдВред рдмреИрдЪ рдХрд╣реЛ
рдЖрдХрд╛рд░ 16 рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, 8 рдХреЗ рдмреИрдЪ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЖрдирдВрдж рд▓реЗрдирд╛

рд╕реЛрдо, рдЬреВрди 10, 2019 рдХреЛ рджреЛрдкрд╣рд░ 2:10 рдмрдЬреЗ рдореИрдЬрд┐рдХ282 рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореЗрд░рд╛ рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ:

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 11.88 рдПрдордЖрдИрдмреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (рдЬреАрдкреАрдпреВ 4; 15.75 рдЬреАрдЖрдИрдмреА рдХреБрд▓ рдХреНрд╖рдорддрд╛; 10.50 рдЬреАрдЖрдИрдмреА рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 1.88 рдПрдордЖрдИрдмреА рдореБрдХреНрдд; 3.03 рдЬреАрдмреА рдХреИрд╢реНрдб)

рдореИрдВ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8 V100 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рд╣реИ
рдЕрднреА рднреА 3.03GB рдХреИрд╢реНрдб рд╣реИ рдФрд░ рдЗрд╕реЗ 11.88MB рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pytorch/pytorch/issues/16417?email_source=notifications&email_token=AGGVQNIXGPJ3HXGSVRPOYUTPZXV5NA5CNFSM4GSSRQX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW#TNMVW500XHJ
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AGGVQNPVGT5RLM6ZV5KMSULPZXV5NANCNFSM4GSSRQXQ
.

рдореИрдВрдиреЗ рдмреИрдЪ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ рдХрд┐ рдХреИрд╢реНрдб рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рд╕реЗ рдмрдбрд╝реА рд╣реИред

рдЬрдм рдореИрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред

рдпрджрд┐ рдЖрдк PyTorch рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рддрд░рд╣ рдХреА рдХрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ

рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рддреНрд░реБрдЯрд┐ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреБрдбрд╝рддреА рд╣реИрдВ ?!
рдореБрдЭреЗ (рдЖрдк рд╕рднреА рдХреА рддрд░рд╣) рдорд┐рд▓рддрд╛ рд╣реИ:
Tried to allocate 20.00 MiB (GPU 0; 1.95 GiB total capacity; 763.17 MiB already allocated; 6.31 MiB free; 28.83 MiB cached)
рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рдЧрднрдЧ рд╕рддреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
1.95 (GB total) - 20 (MiB needed) == 763.17 (MiB already used) + 6.31 (MiB free) + 28.83 (MiB cached)
рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рдЬрдм рдореИрдВрдиреЗ рдпреВ-рдиреЗрдЯ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рднреА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ, рдХреИрд╢ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реИ

рдореБрдЭреЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИ ...
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 312.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 10.91 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 1.07 GiB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 109.62 MiB рдореБрдХреНрдд; 15.21 MiB рдХреИрд╢реНрдб)

рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╣реИрд▓реЛ, рдореИрдВ рдмреИрдЪ_рд╕рд╛рдЗрдЬ рдХреЛ 1 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!

рдХреНрдпрд╛ рдЖрдкрдХреЛ рджреВрд╕рд░рд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡реАрдУ 21:50, рд╕реАрдПрди, 14 рде7, 2019 рдмреАрд╕реАрдбрдмреНрд▓реНрдпреВ93 рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com viс║┐t:

рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╣реИрд▓реЛ, рдореИрдВ рдмреИрдЪ_рд╕рд╛рдЗрдЬ рдХреЛ 1 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pytorch/pytorch/issues/16417?email_source=notifications&email_token=AHLNPF7MWQ7U5ULGIT44VRTP7MOKFA5CNFSM4GSSRQX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LN37WZWZ5K
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AHLNPF4227GHH32PI4WC4SDP7MOKFANCNFSM4GSSRQXQ
.

рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 2.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 7.94 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 7.33 GiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 1.12 MiB рдореБрдХреНрдд; 40.48 MiB рдХреИрд╢реНрдб)

рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ
рдЧреБрд░реБ рдЕрдЧрд╕реНрдд 22 21:05:52 2019
+-------------------------------------------------------- -----------------------------+
| NVIDIA-SMI 430.40 рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг: 430.40 CUDA рд╕рдВрд╕реНрдХрд░рдг: 10.1 |
|------------------------------------------+----------------- -----+---------------------+
| GPU рдирд╛рдо рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдВрд╕-рдПрдо| рдмрд╕-рдЖрдИрдбреА рдбрд┐рд╕реНрдк.рдП | рдЕрд╕реНрдерд┐рд░ рдИрд╕реАрд╕реА |
| рдлреИрди рдЯреЗрдореНрдк рдкрд░рдл рдкреАрдЖрд░: рдЙрдкрдпреЛрдЧ/рдХреИрдк | рдореЗрдореЛрд░реА-рдЙрдкрдпреЛрдЧ | рдЬреАрдкреАрдпреВ-рдпреВрдЯрд┐рд▓ рдХрдВрдкреНрдпреВрдЯ рдПрдо. |
|=============================+================ =====+======================|
| 0 рдХреНрд╡рд╛рдбреНрд░реЛ M4000 рдСрдл | 00000000:09: 00.0 рдкрд░ | рдПрди/рдП |
| 46% 37C P8 12W / 120W | 71MiB / 8126MiB | 10% рдбрд┐рдлрд╝реЙрд▓реНрдЯ |
+---------------------------------------------------------------------- -----+---------------------+
| 1 GeForce GTX 105... рдСрдл | 00000000:41:00.0 рдкрд░ | рдПрди/рдП |
| 29% 33рд╕реА рдкреА8 рдПрди/рдП / 75рдбрдмреНрд▓реНрдпреВ | 262MiB / 4032MiB | 0% рдбрд┐рдлрд╝реЙрд▓реНрдЯ |
+---------------------------------------------------------------------- -----+---------------------+

+-------------------------------------------------------- -----------------------------+
| рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ: рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА |
| GPU PID рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рдЙрдкрдпреЛрдЧ |
|============================================ ===========================|
| 0 1909 рдЬреА /usr/lib/xorg/Xorg 50MiB |
| 1 1909 рдЬреА /usr/lib/xorg/Xorg 128MiB |
| 1 5236 рдЬреА ...рдЦреЛрдЬ-рдЪреИрдирд▓-рдЯреЛрдХрди=9884100064965360199 130MiB |
+-------------------------------------------------------- -----------------------------+

рдУрдПрд╕: рдЙрдмрдВрдЯреВ 18.04 рдмрд╛рдпреЛрдирд┐рдХ
рдХрд░реНрдиреЗрд▓: x86_64 рд▓рд┐рдирдХреНрд╕ 4.15.0-58-рдЬреЗрдиреЗрд░рд┐рдХ
рдЕрдкрдЯрд╛рдЗрдо: 29m
рдкреИрдХреЗрдЬ: 2002
рд╢реИрд▓: рдмреИрд╢ 4.4.20
рд╕рдВрдХрд▓реНрдк: 1920x1080 1080x1920
рдбреЗ: рдПрд▓рдПрдХреНрд╕рдбреАрдИ
рдбрдмреНрд▓реНрдпреВрдПрдо: рдУрдкрдирдмреЙрдХреНрд╕
GTK рдереАрдо: рд▓реБрдмрдВрдЯреВ-рдбрд┐рдлреЙрд▓реНрдЯ [GTK2]
рдЖрдЗрдХрди рдереАрдо: рд▓реБрдмрдВрдЯреВ
рдлрд╝реЙрдиреНрдЯ: рдЙрдмрдВрдЯреВ 11
CPU: AMD Ryzen Threadripper 2970WX 24-рдХреЛрд░ @ 48x 3GHz [61.8┬░C]
GPU: рдХреНрд╡рд╛рдбреНрд░реЛ M4000, GeForce GTX 1050 Ti
рд░реИрдо: 3194MiB / 64345MiB

рдХреНрдпрд╛ рдпрд╣ рддрдп рд╣реИ? рдореИрдВрдиреЗ рдЖрдХрд╛рд░ рдФрд░ рдмреИрдЪ рдЖрдХрд╛рд░ рджреЛрдиреЛрдВ рдХреЛ рдШрдЯрд╛рдХрд░ 1 рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯрд┐рдХрдЯ рдмрдВрдж рд╣реИред рдореБрдЭреЗ Cuda 10.1 Windows 10, Pytorch 1.2.0 . рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ

@hughkf рдХреЛрдб рдореЗрдВ рдЖрдк

@aidoshacks , рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣ рдЙрди рдиреЛрдЯрдмреБрдХреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдордЬрд╝рдмреВрддреА рд╕реЗ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ: https://github.com/fastai/course-v3/blob/master/nbs/dl1/lesson3-camvid-tiramisu.ipynbред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдмрджрд▓рддрд╛ рд╣реВрдВ,

bs,size = 8,src_size//2 рд╕реЗ bs,size = 1,1 рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕реЗ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ рдХреЛ 128 рд╕реЗ 64 рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХрд╛рдо рдЪрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ? рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛, рд▓реЗрдХрд┐рди рдХрдИ рдмрд╛рд░ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ:

"рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ред 40.00 MiB (GPU 0; 15.77 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 13.97 GiB рдкрд╣рд▓реЗ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд; 256.00 KiB рдореБрдХреНрдд; 824.57 MiB рдХреИрд╢реНрдб)" рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдирд╕реБрд▓рдЭреЗ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдмреИрдЪ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рдХрд░рдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмреИрдЪ рдЖрдХрд╛рд░ 1 рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдм рд╕реЗ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕рдВрдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ (рдпрд╛рдиреА рдмрд╣реБрдд рд╕рд╛рд░реА рдореБрдлреНрдд рдореЗрдореЛрд░реА рдФрд░ рдмрд╣реБрдд рдХрдо рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЬреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдлреНрдд рдореЗрдо рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)?

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 1.33 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 1; 31.72 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 5.68 GiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 24.94 GiB рдореБрдХреНрдд ; 5.96 MiB рдХреИрд╢реНрдб)

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрджреНрджрд╛ 'рдмрдВрдж' рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпреЛрдВ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдирд╡реАрдирддрдо рдкрд╛рдЗрдЯреЛрд░рдЪ рд╡рд░реН (1.2) рдФрд░ рдЖрдзреБрдирд┐рдХ рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдЬреАрдкреАрдпреВ (рд╡реА -100) рдкрд░ рд╣реЛрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ fastai рдкреИрдХреЗрдЬ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкрде рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреЗ рдмреИрдЪ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдореИрдВ pytorch0.4.1, рдмреИрдЪ рдЖрдХрд╛рд░ = 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ pytorch1.3 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ 1 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдореЗрд░реЗ pytorch рдХреЛ рдирд╡реАрдирддрдо рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛... conda update pytorch

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдорд┐рдиреА-рдмреИрдЪ GPU рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред рдЬрдм рдореИрдВрдиреЗ cifar10 рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рдЖрдХрд╛рд░ = 256 рд╕реЗрдЯ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА; рдлрд┐рд░ рдореИрдВрдиреЗ рдмреИрдЪ рдЖрдХрд╛рд░ = 128 рд╕реЗрдЯ рдХрд┐рдпрд╛, рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ рдХреЛ рдШрдЯрд╛рдХрд░ 8 рдХрд░ рджрд┐рдпрд╛, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯрд╛ рдмреИрдЪ_рд╕рд╛рдЗрдЬ рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрд▓ рдЗрдирдкреБрдЯ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд░рдд рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ 256 (32x32) рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдмреИрдЪ рдПрдХ рдкрд░рдд рдореЗрдВ 128 рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рдХреБрд▓ рдЗрдирдкреБрдЯ рдЖрдХрд╛рд░ 256x32x32x128 = 2^25 рд╣реИред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреБрдЫ рджрд╣рд▓реАрдЬ рд╕реЗ рдиреАрдЪреЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╢реАрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП AWS p3.2xlarge рдХреЗ рд▓рд┐рдП, рдпрд╣ 2^26 рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ CuDA рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВ, рддреЛ рдмреИрдЪ рдЖрдХрд╛рд░ рдпрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдпрд╛ рд╕реНрдЯреНрд░рд╛рдЗрдб рдпрд╛ рдкреВрд▓рд┐рдВрдЧ рд▓реЗрдпрд░реНрд╕ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдбрд╛рд▓реЗрдВ

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 7.93 GiB total capacity; 0 bytes already allocated; 3.83 GiB free; 0 bytes cached)
рдирд╡реАрдирддрдо рдкрд╛рдЗрдЯреЛрд░рдЪ (1.3) рдФрд░ рдХреНрдпреВрдбрд╛ (10.1) рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рдеред рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ рдЖрдзрд╛ рдЦрд╛рд▓реА рдЬреАрдкреАрдпреВ рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕рд╣реА рд╣реИред рдЗрд╕реЗ рдЕрднреА рддрдХ рд╕рд░рд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛

рдХрд░реНрдиреЗрд▓ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░ рдЧрдпрд╛! рдмреИрдЪ рдЖрдХрд╛рд░ = 1 рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛

рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреИрдЪ рдХреЛ рдЖрдзреЗ рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред

RuntimeError: CUDA out of memory. Tried to allocate 2.00 MiB (GPU 0; 3.95 GiB total capacity; 0 bytes already allocated; 2.02 GiB free; 0 bytes cached)

рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рдХреНрд╕реНрдб

рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ 64 (rtx2080 ti) рд╕реЗ 32 (rtx 2060) рдореЗрдВ рдмрджрд▓рд╛ рдЧрдпрд╛, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрдм рдореИрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реВрдБ !
рдореИрдВрдиреЗ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ 1024 рд╕реЗ рдмрджрд▓рдХрд░ 8 рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ 82% рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╣реЛрдиреЗ рдкрд░ рднреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред

рдЬрдм рдореИрдВрдиреЗ with torch.no_grad() рдЬреЛрдбрд╝рд╛ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ред

test_loader = init_data_loader(X_test, y_test, torch.device('cpu'), batch_size, num_workers=0)

print("Starting inference ...")
result = []
model.eval()
valid_loss = 0

with torch.no_grad():
    for batch_x, batch_y in tqdm(test_loader):
        batch_x, batch_y = batch_x.to(device), batch_y.to(device)
        output = model(batch_x)
        result.extend(output[:, 0, 0])
        loss =  torch.sqrt(criterion(output, batch_y))
        valid_loss += loss

valid_loss /= len(train_loader)
print("Done!")

рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА

loader = DataLoader(dataset, batch_size=128, shuffle=True, num_workers=4)
рдкреНрд░рддрд┐
loader = DataLoader(dataset, batch_size=64, shuffle=True, num_workers=4)

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ GPU рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдБрдЪ рдХреАред рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рдерд╛ рдФрд░ рдмрд╣реБрдд рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдмрдЪреА рдереАред рдореИрдВрдиреЗ рдЕрдкрдиреА рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЛ рдорд╛рд░ рдбрд╛рд▓рд╛ рдФрд░ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдпрд╛ред рд╕реНрдореГрддрд┐ рдореБрдХреНрдд рд╣реЛ рдЧрдИ рдФрд░ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреАрдВред рдЖрдк рдиреАрдЪреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

nvidia-smi - To check the memory utilization on GPU
ps -ax | grep jupyter - To get PID of jupyter process
sudo kill PID

рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╢ рднреА рдорд┐рд▓рд╛:

RuntimeError: CUDA out of memory. Tried to allocate 32.75 MiB (GPU 0; 4.93 GiB total capacity; 3.85 GiB already allocated; 29.69 MiB free; 332.48 MiB cached)

рдпрд╣ рддрдм рд╣реБрдЖ рдЬрдм рдореИрдВ Fast.ai рдкрд╛рда1 рдкреЗрдЯреНрд╕ https://course.fast.ai/ (рд╕реЗрд▓ 31) рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рдмреИрдЪ рдЖрдХрд╛рд░ (рдмреАрдПрд╕) рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдмреИрдЪ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрд╛ред

рдУрдкрди рдЯрд░реНрдорд┐рдирд▓ рдФрд░ рдПрдХ рдкрд╛рдпрдерди рдкреНрд░реЙрдореНрдкреНрдЯ

import torch
torch.cuda.empty_cache()

рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдЕрдкрдиреЗ рдореВрд▓ PyTorch рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ (рдЙрдореНрдореАрдж рд╣реИ) CUDA рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬрдм рдореЗрд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ CPU RAM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдорддреМрд░ рдкрд░ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдПрдХ рдмрдбрд╝рд╛ рдмреИрдЪ рдЖрдХрд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо CPU RAM рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛ рдерд╛ред
рдмреИрдЪ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдбрдо рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЛ SGD рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓рдиреЗ рд╕реЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдареАрдХ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, with torch.no_grad(): (train model) , output.to("cpu") рдФрд░ torch.cuda.empty_cache() рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 54.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 3.95 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 2.65 GiB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 39.00 MiB рдореБрдХреНрдд; 87.29 MiB рдХреИрд╢реНрдб)

рдореБрдЭреЗ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рдФрд░ рдореИрдВ рдмреИрдЪ_рд╕рд╛рдЗрдЬ рдорд╛рди рдШрдЯрд╛рддрд╛ рд╣реВрдВред

рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ Darknet53 рднрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ YOLOv3 рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ GPU рдПрдХ NVIDIA RTX 2080 рд╣реИ рдФрд░ рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдмреИрдЪ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдиреБрдорд╛рди рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдорд┐рд▓ рд░рд╣реА рд╣реИ .... рдореИрдВ ru . рд╣реВрдБ
CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 102.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 15.78 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 14.54 GiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 48.44 MiB рдореБрдХреНрдд; 14.67 GiB рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ PyTorch рджреНрд╡рд╛рд░рд╛ рдЖрд░рдХреНрд╖рд┐рдд)

-------------------------------------------------- ---------------------------+
| NVIDIA-SMI 440.59 рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг: 440.59 CUDA рд╕рдВрд╕реНрдХрд░рдг: 10.2 |
|------------------------------------------+----------------- -----+---------------------+
| GPU рдирд╛рдо рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдВрд╕-рдПрдо| рдмрд╕-рдЖрдИрдбреА рдбрд┐рд╕реНрдк.рдП | рдЕрд╕реНрдерд┐рд░ рдИрд╕реАрд╕реА |
| рдлреИрди рдЯреЗрдореНрдк рдкрд░рдл рдкреАрдЖрд░: рдЙрдкрдпреЛрдЧ/рдХреИрдк | рдореЗрдореЛрд░реА-рдЙрдкрдпреЛрдЧ | рдЬреАрдкреАрдпреВ-рдпреВрдЯрд┐рд▓ рдХрдВрдкреНрдпреВрдЯ рдПрдо. |
|=============================+================ =====+======================|
| 0 рдЯреЗрд╕реНрд▓рд╛ V100-SXM2... рдСрди | 00000000:00:1E.0 рдмрдВрдж | 0 |
| рдПрди/рдП 35рд╕реА рдкреА0 41рдбрдмреНрд▓реНрдпреВ / 300рдбрдмреНрд▓реНрдпреВ | 16112MiB / 16160MiB | 0% рдбрд┐рдлрд╝реЙрд▓реНрдЯ |
+---------------------------------------------------------------------- -----+---------------------+

+-------------------------------------------------------- -----------------------------+
| рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ: рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА |
| GPU PID рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рдЙрдкрдпреЛрдЧ |
|============================================ ===========================|
| 0 13978 C /.conda/envs/ /bin/python 16101MiB |
+-------------------------------------------------------- -----------------------------+

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдорд┐рдиреА-рдмреИрдЪ GPU рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред рдЬрдм рдореИрдВрдиреЗ cifar10 рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреИрдЪ рдЖрдХрд╛рд░ = 256 рд╕реЗрдЯ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА; рдлрд┐рд░ рдореИрдВрдиреЗ рдмреИрдЪ рдЖрдХрд╛рд░ = 128 рд╕реЗрдЯ рдХрд┐рдпрд╛, рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рддреБрдо рд╕рд╣реА рд╣реЛ

рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬреАрдкреАрдпреВ рдореЗрдореЛрд░реА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдлреЗрдВрдХ рджреА рдЧрдИ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдбреЗрдЯрд╛рд▓реЛрдбрд░ рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рдкреГрд╖реНрдарднреВрдорд┐

py36, pytorch1.4, tf2.0, conda
рд░реЙрдмрд░реНрдЯрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ

рдореБрджреНрджрд╛

@EMarquer рдЬреИрд╕рд╛ рд╣реА рдореБрджреНрджрд╛: pycharm рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдореГрддрд┐ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА

  1. "рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ = 1" рд╡рд┐рдлрд▓
  2. "torch.cuda.empty_cache ()" рд╡рд┐рдлрд▓ рд░рд╣рд╛
  3. CUDA_VISIBLE_DEVICES="0" python Run.py рд╡рд┐рдлрд▓ рд░рд╣рд╛
  4. рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЬреНрдпреВрдкрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рд╕рдлрд▓ рддрд░реАрдХрд╛

  1. рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ
    хЫ╛чЙЗ
    хЫ╛чЙЗ
  2. рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЛ pycharm рджрд┐рдЦрд╛рддрд╛ рд╣реИ рд╡рд╣ "nvidia-smi" рд╢реЛ рд╕реЗ рдЕрд▓рдЧ рд╣реИ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ pycharm рдХреА рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рд╕рд╣реЗрдЬреА), рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ ред
  3. рдкреНрд░рдХреНрд░рд┐рдпрд╛ 6123 рдФрд░ 32644 рдкрд╣рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдЪрд▓рддреА рд╣реИред
  4. рд╕реБрдбреЛ рдХрд┐рд▓ -9 6123
  5. рд╕реБрдбреЛ рдХрд┐рд▓ -9 32644

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╕ рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛:

import gc 

# Your code with pytorch using GPU

gc.collect() 

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдмреИрдЪ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдпрд╛ред

рдУрдкрди рдЯрд░реНрдорд┐рдирд▓ рдФрд░ рдПрдХ рдкрд╛рдпрдерди рдкреНрд░реЙрдореНрдкреНрдЯ

import torch
torch.cuda.empty_cache()

рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдЕрдкрдиреЗ рдореВрд▓ PyTorch рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ (рдЙрдореНрдореАрдж рд╣реИ) CUDA рдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд▓реЙрдЯ 0 рдкрд░ --device_ids 0 . рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЛ рдХреБрдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдЖрдИрдбреА рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк GPU рдХреЗ рдмрдЬрд╛рдп CPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ:
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 4.84 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 7.44 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 5.22 GiB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 1.75 GiB рдореБрдХреНрдд; 18.51 MiB рдХреИрд╢реНрдб)

рдЬрдм рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рдмреИрдЪ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдорд╢рд╛рд▓.cuda.empty_cache() , рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рдХрд╛рд░рдЧрд░ рддрд░реАрдХрд╛ рд╣реИ?

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░рд╛ рдкрд░рд┐рджреГрд╢реНрдп рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ (рдкрд┐рдЫрд▓реЗ рд╕рдВрджреЗрд╢ рдореЗрдВ OOM рддреНрд░реБрдЯрд┐ рдЪрд▓реА рдЧрдИ) nn рдХреЛ рддреЛрдбрд╝рдХрд░ред рдореЗрд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкрд░рддреЗрдВ, рдЬреИрд╕реЗ

self.input_layer = nn.Sequential(
    nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0),
    nn.BatchNorm3d(32),
    nn.ReLU()
)

output = self.input_layer(x)

рдкреНрд░рддрд┐

self.input_conv = nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0)
self.input_bn = nn.BatchNorm3d(32)

output = F.relu(self.input_bn(self.input_conv(x)))

рдореЗрд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ (рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 5 рдФрд░)ред рдХреНрдпрд╛ рдореИрдВ nn.рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ? @yf225 @fmassa

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
рдореИрдВ рд╕рдм рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдБ

self.input_layer = nn.Sequential(
    nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0),
    nn.BatchNorm3d(32),
    nn.ReLU()
)

output = self.input_layer(x)

рдкреНрд░рддрд┐

self.input_layer = nn.Sequential(
    nn.Conv3d(num_channels, 32, kernel_size=3, stride=1, padding=0),
    nn.BatchNorm3d(32),
    nn.ReLU()
)

output = self.input_layer(x)

рдореЗрд░реЗ рд▓рд┐рдП рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ рдмрджрд▓рдиреЗ рдпрд╛ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реА .cfg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рдд рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдЧрд▓рдд рдорд╛рди рдереЗред рддреЛ рдЕрдЧрд░ рдХреБрдЫ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ .cfg рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪреЗрдВред

рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ

рдкрд╣рд▓рд╛ рдкреНрд░рдХрд╛рд░
рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ

рдлрд┐рд░ рдЙрд╕ рдкреАрдЖрдИрдбреА тАЛтАЛрдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬреЛ рдЕрдЬрдЧрд░ рдпрд╛ рдПрдирд╛рдХреЛрдВрдбрд╛ рдкрде рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдФрд░ рд▓рд┐рдЦреЗрдВ
рд╕реВрдбреЛ рдХрд┐рд▓ -9 рдкреАрдЖрдИрдбреА

рдореБрдЭреЗ рдпрд╣ рдмрдЧ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рдЪрд░ (рдпрд╛рдиреА рдорд╢рд╛рд▓ рдЯреЗрдВрд╕рд░) рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдореЙрдбрд▓ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдХреЛрдб рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p)

рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ p рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рддреЛ, рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p.tolist())

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ predictions рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рдорд╛рди рд░рдЦрддрд╛ рд╣реИ, GPU рдореЗрдВ рдЯреЗрдВрд╕рд░ рдирд╣реАрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдмрдЧ fastai.vision рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ pytorch рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдореИрдВ CUDA 10.1 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

training_args = TrainingArguments(
    output_dir="./",
    overwrite_output_dir=True,
    num_train_epochs=5,
    per_gpu_train_batch_size=4,  #  4;  8    ;16 out of  memory  
    save_steps=10_000,
    save_total_limit=2,
)

per_gpu_train_batch_size рдХреЛ 16 рд╕реЗ рдШрдЯрд╛рдХрд░ 8 рдХрд░ рджреЗрдВ, рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдпрджрд┐ рдЖрдк PyTorch рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рддрд░рд╣ рдХреА рдХрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ

рд╕рдЪ рдореЗрдВя╝МрдЖрдк рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд╣рддреЗ рд╣реИрдВ

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдореБрдЦреНрдп рдкреНрд░рд╢реНрди рдЕрднреА рднреА рдПрдХ рдЦреБрд▓реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╣реА рдЕрдЬреАрдм рд╕реАрдпреВрдбреАрдП рд╕реНрдореГрддрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдиреЗ 4.08 GiB рдлреНрд░реА рдореЗрдВ 2.26 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдореГрддрд┐ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА: рдмреИрдЪ-рдЖрдХрд╛рд░ 4 рдХреЗ рд╕рд╛рде рдПрдХреНрдЯрд┐рд╡рд┐рдЯреАрдиреЗрдЯ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдПрдХ рд░реЗрд╕рдиреЗрдЯ 10 рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛, рдпрд╣ рдкрд╣рд▓реЗ рдпреБрдЧ рдХреЗ рдлрд╛рдЗрдирд▓ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд: рдХреБрдЫ рдзрд╛рд░рдгрд╛рдПрдВ: рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреА рд░реИрдо рдореЗрдореЛрд░реА рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдХреЛрдб рдЪрд╛рд▓реВ рд░рдЦрддрд╛ рд╣реВрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдЙрдард╛рдИ рдЬрд╛рддреА рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ GPU рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рд╣реЛ, рд▓реЗрдХрд┐рди RAM рдореЗрдореЛрд░реА рдЕрдиреНрдп рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред
рдХрдВрдкреНрдпреВрдЯрд░ рдЬрд╛рдирдХрд╛рд░реА: Dell G5 - i7 9th - GTX 1660Ti 6GB - 16 GB RAM
EDITED2: рдореИрдВ 4 рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде "_MultiProcessingDataLoaderIter" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдпрд╣ рдлреЙрд░рд╡рд░реНрдб рдХреЙрд▓ рдореЗрдВ рдореЗрдореЛрд░реА рд╕рдВрджреЗрд╢ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдШрдЯрд╛рдХрд░ 1 рдХрд░ рджреВрдВ рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред 1 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде, рд░реИрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ 11/16GB рд░рд╣рддрд╛ рд╣реИ, 4 рдХреЗ рд╕рд╛рде рдпрд╣ 14.5/16GB рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреЗрд╡рд▓ 1 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдмреИрдЪ-рдЖрдХрд╛рд░ рдХреЛ 32 рддрдХ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ GPU рдореЗрдореЛрд░реА рдХреЛ 3.5GB/6GB рддрдХ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 2.26 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 6.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 209.63 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 4.08 GiB рдореБрдХреНрдд; 246.00 MiB рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ PyTorch рджреНрд╡рд╛рд░рд╛ рдЖрд░рдХреНрд╖рд┐рдд)

рд╕рдВрдкреВрд░реНрдг рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "main.py", рд▓рд╛рдЗрди 450, in
рдЕрдЧрд░ рдСрдкреНрдЯред рд╡рд┐рддрд░рд┐рдд:
рдлрд╝рд╛рдЗрд▓ "main.py", рд▓рд╛рдЗрди 409, main_worker . рдореЗрдВ
рдСрдкреНрдЯ.рдбрд┐рд╡рд╛рдЗрд╕, current_lr, train_logger,
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\training.py", рд▓рд╛рдЗрди 37, train_epoch рдореЗрдВ
рдЖрдЙрдЯрдкреБрдЯ = рдореЙрдбрд▓ (рдЗрдирдкреБрдЯ)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 532, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nnparallel\data_parallel.py", рд▓рд╛рдЗрди 150, рдЖрдЧреЗ рдХреА рдУрд░
рд╕реНрд╡.рдореЙрдбреНрдпреВрд▓ ( рдЗрдирдкреБрдЯреНрд╕ [0], * рдХреНрд╡рд╛рд░реНрдЧреНрд╕ [0])
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 532, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\models\resnet.py", рд▓рд╛рдЗрди 205, рдЖрдЧреЗ рдореЗрдВ
x = рд╕реНрд╡рдпрдВ рдкрд░рдд3(x)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 532, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\container.py", рд▓рд╛рдЗрди 100, рдЖрдЧреЗ рдХреА рдУрд░
рдЗрдирдкреБрдЯ = рдореЙрдбреНрдпреВрд▓ (рдЗрдирдкреБрдЯ)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 532, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\models\resnet.py", рд▓рд╛рдЗрди 51, рдЖрдЧреЗ рдХреА рдУрд░
рдмрд╛рд╣рд░ = рд╕реНрд╡рдпрдВ.conv2 (рдмрд╛рд╣рд░)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\module.py", рд▓рд╛рдЗрди 532, __call__ рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рд╕реНрд╡рдпрдВ рдЖрдЧреЗ ( рдЗрдирдкреБрдЯ, * kwargs)
рдлрд╝рд╛рдЗрд▓ "D:\Guilherme\Google Drive\Professional\Cursos\Mestrado\Pesquisa\HMDB51\envlib\site-packages\torch\nn\modules\conv.py", рд▓рд╛рдЗрди 480, рдЖрдЧреЗ рдХреА рдУрд░
рд╕реЗрд▓реНрдлрд╝.рдкреИрдбрд┐рдВрдЧ, рд╕реЗрд▓реНрдлрд╝.рдбреАрд▓реЗрд╢рди, рд╕реЗрд▓реНрдлрд╝.рдЧреНрд░реБрдкреНрд╕)
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 2.26 GiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 6.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 209.63 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 4.08 GiB рдореБрдХреНрдд; 246.00 MiB рдЖрд░рдХреНрд╖рд┐рдд)
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ PyTorch рджреНрд╡рд╛рд░рд╛)

image

image

рдмреИрдЪ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореБрдЭреЗ рдпрд╣ рдмрдЧ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рдЪрд░ (рдпрд╛рдиреА рдорд╢рд╛рд▓ рдЯреЗрдВрд╕рд░) рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдореЙрдбрд▓ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдХреЛрдб рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p)

рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ p рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рддреЛ, рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p.tolist())

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ predictions рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рдорд╛рди рд░рдЦрддрд╛ рд╣реИ, GPU рдореЗрдВ рдЯреЗрдВрд╕рд░ рдирд╣реАрдВред

@abdelrahmanhosny рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ PyTorch 1.5.0 рдореЗрдВ рдареАрдХ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ OOM рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рдЪрд░ (рдпрд╛рдиреА рдорд╢рд╛рд▓ рдЯреЗрдВрд╕рд░) рдХреЛ рднреА рдкрдХрдбрд╝реЗ рд░рд╣рд╛, рдЬреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк GPU рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдмреИрдЪреЛрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рджред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдкрдбрд╝реЗ:

predictions.append(p.detach().cpu().numpy()) 

рдЗрд╕рдиреЗ рддрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛!

рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИ?

CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 196.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 2.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 359.38 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 192.29 MiB рдореБрдХреНрдд; 152.37 MiB рдХреИрд╢реНрдб)

рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИ?

CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред 196.00 MiB рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 0; 2.00 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 359.38 MiB рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; 192.29 MiB рдореБрдХреНрдд; 152.37 MiB рдХреИрд╢реНрдб)

рдореБрдЭреЗ рдпрд╣ рдмрдЧ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рдЪрд░ (рдпрд╛рдиреА рдорд╢рд╛рд▓ рдЯреЗрдВрд╕рд░) рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдореЙрдбрд▓ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░рд╛ рдХреЛрдб рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p)

рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ p рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рддреЛ, рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

predictions = []
for batch in dataloader:
     p = model(batch.to(torch.device("cuda:0")))
     predictions.append(p.tolist())

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ predictions рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рдорд╛рди рд░рдЦрддрд╛ рд╣реИ, GPU рдореЗрдВ рдЯреЗрдВрд╕рд░ рдирд╣реАрдВред

@abdelrahmanhosny рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ PyTorch 1.5.0 рдореЗрдВ рдареАрдХ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ OOM рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рдЪрд░ (рдпрд╛рдиреА рдорд╢рд╛рд▓ рдЯреЗрдВрд╕рд░) рдХреЛ рднреА рдкрдХрдбрд╝реЗ рд░рд╣рд╛, рдЬреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк GPU рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдмреИрдЪреЛрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рджред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдкрдбрд╝реЗ:

predictions.append(p.detach().cpu().numpy()) 

рдЗрд╕рдиреЗ рддрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛!

рдореЗрд░реЗ рдкрд╛рд╕ ParrallelWaveGAN рдореЙрдбрд▓ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ #16417 рдореЗрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

y = self.model_gan(*x).view(-1).detach().cpu().numpy()
рдЬреАрд╕реА.рд╕рдВрдЧреНрд░рд╣ ()
рдорд╢рд╛рд▓.рдХреБрдбрд╛.рдЦрд╛рд▓реА_рдХреИрд╢ ()

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рдмрд╛рдж рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдХреВрдбрд╛ рдореЗрдореЛрд░реА рдЦрд╛рд▓реА рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

gc.collect()
torch.cuda.empty_cache()

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╕ рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛:

import gc 

# Your code with pytorch using GPU

gc.collect() 

рд╢реБрдХреНрд░рд┐рдпрд╛!! рдореБрдЭреЗ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдФрд░ рдХреБрддреНрддреЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рдереА рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рдмрд╛рдж рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдХреВрдбрд╛ рдореЗрдореЛрд░реА рдЦрд╛рд▓реА рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

gc.collect()
torch.cuda.empty_cache()

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдРрд╕рд╛

рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдШрдЯрд╛рдПрдВ рдФрд░ рдпреБрдЧреЛрдВ рдХреЛ рдмрдврд╝рд╛рдПрдВред рдЗрд╕ рддрд░рд╣ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

@areebsyed рд░рд╛рдо рд╕реНрдореГрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереАред

рдореБрдЭреЗ рдПрдХ рд╣реА рдпреБрдЧ рдкреВрд░рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрд▓рд╛рдм рдореЗрдВ рдкрд╛рдЗрдЯреЛрд░рдЪ рдореЗрдВ рдмрд░реНрдЯ2рдмрд░реНрдЯ рдПрдирдХреЛрдбрд░рдбреАрдХреЛрдбрд░рдореЙрдбрд▓ рдХреЛ рдлрд╛рдЗрдирдЯреНрдпреВрдирд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред

RuntimeError: CUDA out of memory. Tried to allocate 96.00 MiB (GPU 0; 15.90 GiB total capacity; 13.77 GiB already allocated; 59.88 MiB free; 14.98 GiB reserved in total by PyTorch)

@ Aakash12980 рдХреНрдпрд╛ рдЖрдкрдиреЗ рдмреИрдЪ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? рд╕рд╛рде рд╣реА рдЬрд┐рди рдЗрдирдкреБрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЖрдк рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рд╢рд╛рдпрдж рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

@areebsyed рд╣рд╛рдБ, рдореИрдВрдиреЗ рдмреИрдЪ рдХрд╛ рдЖрдХрд╛рд░ рдШрдЯрд╛рдХрд░ 4 рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рд╡реИрд╕рд╛ рд╣реА

RuntimeError                              Traceback (most recent call last)
<ipython-input-116-11ebb3420695> in <module>
     28         landmarks = landmarks.view(landmarks.size(0),-1).cuda()
     29 
---> 30         predictions = network(images)
     31 
     32         # clear all the gradients before calculating them

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

<ipython-input-112-174da452c85d> in forward(self, x)
     13         ##out = self.first_conv(x)
     14         x = x.float()
---> 15         out = self.model(x)
     16         return out

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/lib/python3.7/site-packages/torchvision/models/resnet.py in forward(self, x)
    218 
    219     def forward(self, x):
--> 220         return self._forward_impl(x)
    221 
    222 

~/anaconda3/lib/python3.7/site-packages/torchvision/models/resnet.py in _forward_impl(self, x)
    204         x = self.bn1(x)
    205         x = self.relu(x)
--> 206         x = self.maxpool(x)
    207 
    208         x = self.layer1(x)

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/pooling.py in forward(self, input)
    157         return F.max_pool2d(input, self.kernel_size, self.stride,
    158                             self.padding, self.dilation, self.ceil_mode,
--> 159                             self.return_indices)
    160 
    161 

~/anaconda3/lib/python3.7/site-packages/torch/_jit_internal.py in fn(*args, **kwargs)
    245             return if_true(*args, **kwargs)
    246         else:
--> 247             return if_false(*args, **kwargs)
    248 
    249     if if_true.__doc__ is None and if_false.__doc__ is not None:

~/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py in _max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode, return_indices)
    574         stride = torch.jit.annotate(List[int], [])
    575     return torch.max_pool2d(
--> 576         input, kernel_size, stride, padding, dilation, ceil_mode)
    577 
    578 max_pool2d = boolean_dispatch(

RuntimeError: CUDA out of memory. Tried to allocate 80.00 MiB (GPU 0; 7.80 GiB total capacity; 1.87 GiB already allocated; 34.69 MiB free; 1.93 GiB reserved in total by PyTorch)

рд╡реИрд╕рд╛ рд╣реА

RuntimeError                              Traceback (most recent call last)
<ipython-input-116-11ebb3420695> in <module>
     28         landmarks = landmarks.view(landmarks.size(0),-1).cuda()
     29 
---> 30         predictions = network(images)
     31 
     32         # clear all the gradients before calculating them

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

<ipython-input-112-174da452c85d> in forward(self, x)
     13         ##out = self.first_conv(x)
     14         x = x.float()
---> 15         out = self.model(x)
     16         return out

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/lib/python3.7/site-packages/torchvision/models/resnet.py in forward(self, x)
    218 
    219     def forward(self, x):
--> 220         return self._forward_impl(x)
    221 
    222 

~/anaconda3/lib/python3.7/site-packages/torchvision/models/resnet.py in _forward_impl(self, x)
    204         x = self.bn1(x)
    205         x = self.relu(x)
--> 206         x = self.maxpool(x)
    207 
    208         x = self.layer1(x)

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/pooling.py in forward(self, input)
    157         return F.max_pool2d(input, self.kernel_size, self.stride,
    158                             self.padding, self.dilation, self.ceil_mode,
--> 159                             self.return_indices)
    160 
    161 

~/anaconda3/lib/python3.7/site-packages/torch/_jit_internal.py in fn(*args, **kwargs)
    245             return if_true(*args, **kwargs)
    246         else:
--> 247             return if_false(*args, **kwargs)
    248 
    249     if if_true.__doc__ is None and if_false.__doc__ is not None:

~/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py in _max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode, return_indices)
    574         stride = torch.jit.annotate(List[int], [])
    575     return torch.max_pool2d(
--> 576         input, kernel_size, stride, padding, dilation, ceil_mode)
    577 
    578 max_pool2d = boolean_dispatch(

RuntimeError: CUDA out of memory. Tried to allocate 80.00 MiB (GPU 0; 7.80 GiB total capacity; 1.87 GiB already allocated; 34.69 MiB free; 1.93 GiB reserved in total by PyTorch)

@monajalal рдмреИрдЪ рдЖрдХрд╛рд░ рдпрд╛ рдЗрдирдкреБрдЯ рдЖрдпрд╛рдо рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕рдВрдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ (рдпрд╛рдиреА рдмрд╣реБрдд рд╕рд╛рд░реА _free_ рдореЗрдореЛрд░реА рдФрд░ рдмрд╣реБрдд рдХрдо рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЬреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ _some_ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдлреНрдд рдореЗрдо рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)?

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐: CUDA рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ред _ 1.33 GiB _ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ (GPU 1; 31.72 GiB рдХреБрд▓ рдХреНрд╖рдорддрд╛; 5.68 GiB рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рдВрдЯрд┐рдд; _ 24.94 GiB рдореБрдХреНрдд _; 5.96 MiB рдХреИрд╢реНрдб)

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрджреНрджрд╛ 'рдмрдВрдж' рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпреЛрдВ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдирд╡реАрдирддрдо рдкрд╛рдЗрдЯреЛрд░рдЪ рд╡рд░реН (1.2) рдФрд░ рдЖрдзреБрдирд┐рдХ рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдЬреАрдкреАрдпреВ (рд╡реА -100) рдкрд░ рд╣реЛрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдУрдУрдПрдо рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ рдУрдУрдПрдо рд╣реИ рдЬрдмрдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╣рддреА рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЦрд╛рд▓реА рдЬрдЧрд╣ рд╣реИред рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bartolsthoorn picture bartolsthoorn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

miguelvr picture miguelvr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NgPDat picture NgPDat  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

soumith picture soumith  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dablyo picture dablyo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ