Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для firnen_dragon
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407

CUDA ускорение нейросети с модулем ultralytics

12.07.2023, 14:24. Показов 3884. Ответов 8

Студворк — интернет-сервис помощи студентам
- Я установил ultralytics
- Начала обучать модель YOLOV8n
- Понял, что CUDA не работает, установил CUDA Toolkit и cuDNN
- Некоторое время догонял что torch тоже нужен не простой а с CUDA
- Установил torch такой командой:
Code
1
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117
- Проверил подхватил ли torch CUDA таким образом:
Python
1
2
import torch
print(torch.cuda.is_available())
- Увидел true, уже обрадовался, но не тут то было
- Начал обучать модель вот так:
Python
1
2
3
4
5
6
7
8
9
10
11
from ultralytics import YOLO
 
model = YOLO('yolov8n.pt')
 
results = model.train(
   data='pothole_v8.yaml',
   imgsz=1280,
   epochs=50,
   device=0,
   batch=8,
   name='yolov8n_v8_50e')
- И по какой-то неведомой мне причине модель начинает обучаться какбуд-то бы заного как только доходит собственно до самого процесса обучения и пишет что нужно использовать какой-то fork для запуска дочерних процессов.
- Вывод в терминал:
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
PS C:\workspace\mashine lerning> & C:/Users/Firnen/AppData/Local/Programs/Python/Python311/python.exe "c:/workspace/mashine lerning/train.py"
Ultralytics YOLOv8.0.132  Python-3.11.4 torch-2.0.0+cu117 CUDA:0 (NVIDIA GeForce GTX 1060 3GB, 3072MiB)
yolo\engine\trainer: task=detect, mode=train, model=yolov8n.pt, data=pothole_v8.yaml, epochs=50, patience=50, batch=8, imgsz=1280, save=True, save_period=-1, cache=False, device=0, workers=8, project=None, name=yolov8n_v8_50e, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, show=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, vid_stride=1, line_width=None, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, boxes=True, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0, cfg=None, v5loader=False, tracker=botsort.yaml, save_dir=runs\detect\yolov8n_v8_50e7
Overriding model.yaml nc=80 with nc=1
 
                   from  n    params  module                                       arguments
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]
 22        [15, 18, 21]  1    751507  ultralytics.nn.modules.head.Detect           [1, [64, 128, 256]]
Model summary: 225 layers, 3011043 parameters, 3011027 gradients
 
Transferred 319/355 items from pretrained weights
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passed 
train: Scanning C:\workspace\mashine lerning\pothole_dataset_v8\train\labels.cache... 6960 images, 10 backgrounds, 0 corrupt: 100%|██████████| 6962/6962 [00:00<?, ?it/s]
train: WARNING  C:\workspace\mashine lerning\pothole_dataset_v8\train\images\G0012012.jpg: 2 duplicate labels removed
train: WARNING  C:\workspace\mashine lerning\pothole_dataset_v8\train\images\G0052120.jpg: 1 duplicate labels removed
Ultralytics YOLOv8.0.132  Python-3.11.4 torch-2.0.0+cu117 CUDA:0 (NVIDIA GeForce GTX 1060 3GB, 3072MiB)
yolo\engine\trainer: task=detect, mode=train, model=yolov8n.pt, data=pothole_v8.yaml, epochs=50, patience=50, batch=8, imgsz=1280, save=True, save_period=-1, cache=False, device=0, workers=8, project=None, name=yolov8n_v8_50e, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, show=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, vid_stride=1, line_width=None, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, boxes=True, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0, cfg=None, v5loader=False, tracker=botsort.yaml, save_dir=runs\detect\yolov8n_v8_50e8
Overriding model.yaml nc=80 with nc=1
 
                   from  n    params  module                                       arguments
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]
 22        [15, 18, 21]  1    751507  ultralytics.nn.modules.head.Detect           [1, [64, 128, 256]]
Model summary: 225 layers, 3011043 parameters, 3011027 gradients
 
Transferred 319/355 items from pretrained weights
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passed 
train: Scanning C:\workspace\mashine lerning\pothole_dataset_v8\train\labels.cache... 6960 images, 10 backgrounds, 0 corrupt: 100%|██████████| 6962/6962 [00:00<?, ?it/s]
train: WARNING  C:\workspace\mashine lerning\pothole_dataset_v8\train\images\G0012012.jpg: 2 duplicate labels removed
train: WARNING  C:\workspace\mashine lerning\pothole_dataset_v8\train\images\G0052120.jpg: 1 duplicate labels removed
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 120, in spawn_main
    exitcode = _main(fd, parent_sentinel)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 129, in _main
    prepare(preparation_data)
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 240, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 291, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen runpy>", line 291, in run_path
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "c:\workspace\mashine lerning\train.py", line 7, in <module>
    results = model.train(
              ^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\engine\model.py", line 373, in train
    self.trainer.train()
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\engine\trainer.py", line 192, in train
    self._do_train(world_size)
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\engine\trainer.py", line 276, in _do_train
    self._setup_train(world_size)
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\engine\trainer.py", line 240, in _setup_train
    self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=RANK, mode='train')
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\v8\detect\train.py", line 60, in get_dataloader
    return build_dataloader(dataset, batch_size, workers, shuffle, rank)  # return dataloader
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\data\build.py", line 101, in build_dataloader
    return InfiniteDataLoader(dataset=dataset,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\yolo\data\build.py", line 29, in __init__
    self.iterator = super().__iter__()
                    ^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\torch\utils\data\dataloader.py", line 442, in __iter__
    return self._get_iterator()
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\torch\utils\data\dataloader.py", line 388, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\site-packages\torch\utils\data\dataloader.py", line 1043, in __init__
    w.start()
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
                  ^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\context.py", line 336, in _Popen
    return Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
    prep_data = spawn.get_preparation_data(process_obj._name)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 158, in get_preparation_data
    _check_not_importing_main()
  File "C:\Users\Firnen\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\spawn.py", line 138, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.
 
        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:
 
            if __name__ == '__main__':
                freeze_support()
                ...
 
        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

- При этом без CUDA все обучается нормально, но долго
- Может кто-то сталкивался с подобным, или может знает куда копать? Потому что пока я в тупике.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.07.2023, 14:24
Ответы с готовыми решениями:

Ускорение доступа к элементам массива CUDA
Всем привет! Есть функция осуществляющая умножение и сложение в конечном поле. Умножения осуществляется с помощью заранее сгенерированных...

Скорость, касательное ускорение, полное ускорение, нормальное ускорение и радиус кривизны траектории
Движение точки задано координатным способом. Найти траекторию и начертить ее. Кроме того определить скорость, касательное ускорение, полное...

Не запускается приложение под Cuda (CUDA directory not found)
Здравствуйте, пытаюсь скомпилировать приложение под Cuda но вылазит ошибка, что CUDA directory not found. В чем может быть проблема? Cuda...

8
 Аватар для firnen_dragon
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
13.07.2023, 11:10  [ТС]
короче обернул так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from ultralytics import YOLO
import os
 
def __main__():
   os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:21"
 
   model = YOLO('yolov8n.pt')
 
   results = model.train(
      data='pothole_v8.yaml',
      imgsz=1280,
      epochs=50,
      batch=4,
      name='yolov8n_v8_50e'
   )
 
if __name__ == "__main__":
   __main__()
уменьшил batch и max_split_size_mb и заработало
1
0 / 0 / 0
Регистрация: 07.12.2023
Сообщений: 4
07.12.2023, 13:57
Здравствуйте !
1.Установил на комп Stable Diffusion XL6 - HEPHAISTOS SD 1.0XL (база + райфайнер + рекомендуемую лору).
2.При генерации картинки стала появляться ошибка "CUDA out of memory..." - устранил с помощью оптимизации - из батника webui-user.bat убрал аргумент --no-half, добавил --medvram .
3.ПРОБЛЕМА появилась при апскейле картинки - опять "CUDA out of memory... If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF"
4.Пошёл по Вашему пути - официальный сайт PyTorch, установка анаконды, генерация команды установки PyTorch, установка PyTorch с помощью джупитер-ноутбука, две проверки после установки.
5.ДАЛЬШЕ СТЕНА - пожалуйста расскажите, как решается этот вопрос?
Недельный поиск в гугле дал только три ответа соответствующих подсказке питона - 1.предлагается в батнике прописать
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_m b:1024
- прописывал, "CUDA out of memory..." не ушла.
2.автор поста ссылается на документацию PyTorch и предлагает прописать set 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_ mb:512' - я пытался в джупитер-ноуте ввести эту команду - ошибка с синтаксисом.
3. Третий ответ гугла - Ваш пост.
Пожалуйста напишите (вопросы по той части поста где Вы обернули):
1. первая и вторая строки это запрос, а 4-18 строки это ответ?
2. пятая строка ответа это констатация размера на момент запроса? И Вы прям там изменили предыдущее число на 21?
3. как теперь сохранить изменение, что заменяет кнопку эплай?
4. почему именно 21 (для апскейла я бы поставил разрешение 8К (8192 pik)) и когда нужно указывать ширину и высоту?
5. если я ввел команду и запустил и оно запустилось, я как-то могу быстро остановить/отменить выполнение, типа Eck (эскейп) или Ctrl + Z ?
6. почему batch именно 4 ?

Спасибо. С надеждой.
0
 Аватар для firnen_dragon
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
07.12.2023, 16:33  [ТС]
Naivi, Доброго времени суток, когда занимался этой проблемой дублировал содержание поста сюда, там получилось больше инфы добыть чем здесь.
Теперь по вопросам:
1) Не понял что за запрос и что за ответ. Первые две строки это просто импорт библиотек: ultralytics и os, остальное, собственно, инициация настроек, модели и запуск процесса обучения.
2) Эта строчка
Python
1
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:21"
Не позволяет распределителю разбивать блоки большего размера (в МБ) чем max_split_size_mb. Это может помочь предотвратить фрагментацию и может позволить выполнять некоторые граничные рабочие нагрузки без нехватки памяти. Я вывел размер блока чисто эмпирическим путем, т.е менял пока не заработало. И да я прям там в этой строчке менял 21.
3) Не понял вопроса, какую кнопку "эплай"?
4) Непосредственно ширину/высоту вы не указываете, но указываете разрешение, у меня в скрипте это 11 строка
Python
1
imgsz=1280
5)Прервать обучение вы можете любым удобным способом, я писал не в джупитере а в vs code и там я прерывал обучение сочетанием клавиш Ctrl + C или по кнопке добавляемой плагином Code Runner или просто убийством процесса через диспетчер, в любом случае для того чтоб продолжить обучение после прерывания нужно в model.train добавить параметр resume=True:
Python
1
2
3
4
   results = model.train(
      ....
      resume=True
   )
тогда обучение продолжится с последней завершенной эпохи.
6)Потому что с 8 у меня не хватало видеопамяти, так же если не хватает памяти можно уменьшить imgsz

Добавлено через 25 минут
В итоге скрипт должен выглядеть так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from ultralytics import YOLO
import os
 
def __main__():
   #Установка размера блока
   os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:21"
   # Загрузка модели
   model = YOLO('runs\detect\yolov8n_v8_50e15\weights\last.pt')
   # Обучение
   results = model.train(
      data='pothole_v8.yaml',
      imgsz=1280,
      epochs=50,
      batch=4,
      name='yolov8n_v8_50e',
      resume=True
   )
 
if __name__ == "__main__":
   __main__()
1
0 / 0 / 0
Регистрация: 07.12.2023
Сообщений: 4
07.12.2023, 17:48
Спасибо, пишу ответ!

Добавлено через 38 минут
firnen_dragon, добрый вечер!
Большое спасибо за подробный ответ и потраченнное время.
Если разрешите, то уточнюсь в некоторых вопросах (знания в программировании никакие)
1. Мне нужно добраться до настроек max_split_size_mb, imgsz, batch.
тренировку модели не предполагал, нужно чтобы при апскейле не прилетало "CUDA out of memory".
Я правильно понял, что в моем случае нужно импортировать библиотеку операционной системы и инициировать настройки max_split_size_mb, imgsz, batch, т.е.

1.import os

2.os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:21" - так правильно ?

дальше я жму run (пуск/выполнить) и должны появиться строки с параметрами ?

2. Если импорт библиотеки и инициация параметров произошла правильно и я внес изменения, как мне сохранить изменения ? Спросив Вас про кнопку эплай я имел ввиду, что в прогах для простых пользователей можно зайти в раздел settings, что-то изменить и потом сохранить эти изменения нажав, например, на кнопку эплай, плюс перезагрузка проги. А здесь, в редакторе vs code или в джупитере, как это сделать ?

Спасибо !
0
 Аватар для firnen_dragon
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
08.12.2023, 10:00  [ТС]
Naivi, У нас довольно таки разные задачи и разные модели мне надо было обучать модель YOLO 8, а вам запустить Stable Diffusion, соответственно и способ запуска отличается, параметры imgsz и batch существуют только в рамках обучения конкретной модели YOLO и не применимы к вашей задаче,очень бегло посмотрел по вашему вопросу инф-цию, я бы на вашем месте искал скрипт запускающий модель и там бы прописывал размер блока, или отключил бы cuda ускорение(если оно включено), это конечно повлияет на скорость апскейла, но если это не критично, то может помочь. В моем случае включение cuda было необходимо, ибо разница в скорости обучения колоссальная (с cuda - 8 часов обучения, без с cuda - неделю), но вам обучать ничего не надо, так что можно и без cuda обойтись.
1
0 / 0 / 0
Регистрация: 07.12.2023
Сообщений: 4
08.12.2023, 21:17
firnen_dragon, здравствуйте !
Я Вас понял, большое спасибо.
Если возможно ответьте на второй вопрос предыдущего моего поста (2. Если импорт библиотеки и инициация параметров произошла правильно и ...).

Спасибо.
0
 Аватар для firnen_dragon
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
11.12.2023, 10:45  [ТС]
Naivi, Если вы это прописываете в скрипте python(файл с расширением .py) то вы просто должны сохранить его, как вы сохраняете любой текстовый документ. Таким образом при каждом запуске программы этот скрипт будет выполняться с импортированными библиотеками и другими изменениями, которые вы внесли в этот файл
1
0 / 0 / 0
Регистрация: 07.12.2023
Сообщений: 4
11.12.2023, 10:51
firnen_dragon, здравствуйте !

Большое спасибо за подробные ответы.

С уважением, Naivi.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2023, 10:51
Помогаю со студенческими работами здесь

Нейросети нейросети что это за?
Объясните популярно кто специалист зачем придумали нейросети что это такое вообще? Я узнал о нейросетях совсем недавно, и...

Как установить CUDA 10.2 в дополнение к установленной CUDA 11.0?
На `Linux-5.4.120+-x86_64-with-debian-buster-sid` установлена CUDA 11.0. При запуске tensorflow-gpu==1.15.5 вылезает ошибка: Could not...

Мостик (плагин) между CUDA 10 и CUDA 11
Доброго времени суток. Столкнулся с тем, что старые видеокарты с поддержкой CUDA 10 не видятся новыми програмами, заточенными под CUDA 11....

Заменить из двух чисел меньшее число модулем их разности, а большее — модулем произведения
составьте программу, заменяющую из двух данных чисел меньшее число модулем разности, а большее - модулем произведения этих чисел.

Folding@home система распределённых вычислений. Есть видеокарта с CUDA, а некуда использовать? Хотя вообще видеокарта с CUDA не обязательна.
Купил видеокарту уже давненько Palit GeForce GTX570 Sonic Platinum. У неё есть программно-аппаратная архитектура, называется CUDA. Вот я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru