---
# System prepended metadata

title: training yolov7 notes
tags: [yolo, 論文]

---

# training yolov7 notes
```
python train.py --workers 8 --device 0 --batch-size 32 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights './yolov7.pt' --name yolov7 --hyp data/hyp.scratch.p5.yaml

調整其中的內容使其可以正確運行 
data/coco.yaml                <-- 改變資料位置
cfg/training/yolov7.yaml

data/hyp.scratch.p5.yaml

coco.yaml :
train: ../datasets/coco/train2017.txt
val: ../datasets/coco/val2017.txt
test: ../datasets/coco/test-dev2017.txt 

```
### issue
```
Transferred 558/566 items from yolov7.pt
Scaled weight_decay = 0.0005
Optimizer groups: 95 .bias, 95 conv.weight, 98 other
Traceback (most recent call last):
  File "c:\develop\yolov7\train.py", line 616, in <module>
    train(hyp, opt, device, tb_writer)
  File "c:\develop\yolov7\train.py", line 245, in train
    dataloader, dataset = create_dataloader(train_path, imgsz, batch_size, gs, opt,
  File "c:\develop\yolov7\utils\datasets.py", line 69, in create_dataloader
    dataset = LoadImagesAndLabels(path, imgsz, batch_size,
  File "c:\develop\yolov7\utils\datasets.py", line 392, in __init__
    cache, exists = torch.load(cache_path), True  # load
  File "C:\Users\rchiu\AppData\Roaming\Python\Python310\site-packages\torch\serialization.py", line 815, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "C:\Users\rchiu\AppData\Roaming\Python\Python310\site-packages\torch\serialization.py", line 1033, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: STACK_GLOBAL requires str

### solution from google ###
Try to delete the .cache file in your training or testing path, this works for me.

Image sizes 640 train, 640 test
Using 8 dataloader workers
Logging results to runs\train\yolov75
Starting training for 3 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
       0/2     24.9G    0.0238   0.02475  0.006217   0.05477       488       640:   3%|██▋                                                                                 | 119/3697 [02:34<1:17:36,  1.30s/it]
```
## 速度效能
```
batch size (worker=8)
32 [02:34<1:17:36,  1.30s/it] -> 1:20
24 [02:11<37:04,  2.11it/s]   ->  :39.x
28 [03:41<35:04,  1.82it/s]   ->  :38.x   <---
16 [00:57<41:17,  2.92it/s]   ->  :42

worker (batch size = 28)
8  [09:28<29:13,  1.82it/s]   ->   :38.x
32 [03:24<35:15,  1.83it/s]   
16 [01:49<35:58,  1.87it/s]   ->   :37.x  <---
4  [03:37<34:46,  1.84it/s]   ->   :38.x
64 [01:51<36:12,  1.86it/s]   ->   :38.x
128[09:06<29:47,  1.81it/s]   ->   :38.x
2  [09:20<39:06,  1.50it/s]   # GPU明顯利用率降低 
```
## 測試
```
python train.py --workers 16 --device 0 --batch-size 28 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --name yolov7 --epochs 2 --weights yolov7.pt

============================================================
Model Summary: 415 layers, 37622682 parameters, 37622682 gradients

Transferred 558/566 items from yolov7.pt
Scaled weight_decay = 0.0004375
Optimizer groups: 95 .bias, 95 conv.weight, 98 other
train: Scanning '..\datasets\coco\train2017.cache' images and labels... 117266 found, 1021 missing, 0 empty, 4 corrupted: 100%|█████████████████████████████████████████████████| 118287/118287 [00:00<?, ?it/s]
val: Scanning '..\datasets\coco\val2017.cache' images and labels... 4952 found, 48 missing, 0 empty, 0 corrupted: 100%|█████████████████████████████████████████████████████████████| 5000/5000 [00:00<?, ?it/s]

autoanchor: Analyzing anchors... anchors/target = 4.42, Best Possible Recall (BPR) = 0.9912
Image sizes 640 train, 640 test
Using 16 dataloader workers
Logging results to runs\train\yolov7
Starting training for 2 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
       0/1     21.9G   0.02358   0.02453  0.006068   0.05418       488       640:   6%|█████▎                                                                                | 263/4225 [02:27<35:40,  1.85it/s]     
```
## tiny測試
```
python train.py --workers 16 --device 0 --batch-size 28 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7-tiny.yaml --name yolov7-tiny --epochs 2 --weights yolov7-tiny.pt

========================================================
Model Summary: 263 layers, 6228762 parameters, 6228762 gradients

Transferred 336/344 items from yolov7-tiny.pt
Scaled weight_decay = 0.0004375
Optimizer groups: 58 .bias, 58 conv.weight, 61 other
train: Scanning '..\datasets\coco\train2017.cache' images and labels... 117266 found, 1021 missing, 0 empty, 4 corrupted: 100%|█████████████████████████████████████████████████| 118287/118287 [00:00<?, ?it/s]
val: Scanning '..\datasets\coco\val2017.cache' images and labels... 4952 found, 48 missing, 0 empty, 0 corrupted: 100%|█████████████████████████████████████████████████████████████| 5000/5000 [00:00<?, ?it/s]

autoanchor: Analyzing anchors... anchors/target = 4.45, Best Possible Recall (BPR) = 0.9949
Image sizes 640 train, 640 test
Using 16 dataloader workers
Logging results to runs\train\yolov7-tiny
Starting training for 2 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
       0/1     5.09G   0.03385   0.03187   0.01427   0.07999       434       640:  12%|██████████▎                                                                           | 505/4225 [03:12<24:54,  2.49it/s]


python train.py --workers 32 --device 0 --batch-size 64 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7-tiny.yaml --name yolov7-tiny --epochs 2 --weights yolov7-tiny.pt

==================================================
Model Summary: 263 layers, 6228762 parameters, 6228762 gradients

Transferred 336/344 items from yolov7-tiny.pt
Scaled weight_decay = 0.0005
Optimizer groups: 58 .bias, 58 conv.weight, 61 other
train: Scanning '..\datasets\coco\train2017.cache' images and labels... 117266 found, 1021 missing, 0 empty, 4 corrupted: 100%|█████████████████████████████████████████████████| 118287/118287 [00:00<?, ?it/s]
val: Scanning '..\datasets\coco\val2017.cache' images and labels... 4952 found, 48 missing, 0 empty, 0 corrupted: 100%|█████████████████████████████████████████████████████████████| 5000/5000 [00:00<?, ?it/s]

autoanchor: Analyzing anchors... anchors/target = 4.45, Best Possible Recall (BPR) = 0.9949
Image sizes 640 train, 640 test
Using 32 dataloader workers
Logging results to runs\train\yolov7-tiny2
Starting training for 2 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
       0/1     12.2G   0.03551   0.03168   0.01401    0.0812       875       640:  25%|█████████████████████▏                                                                | 456/1849 [06:43<20:13,  1.15it/s]
       
```
## test.py & detect.py
```
python test.py --data data/coco.yaml --img 640 --batch 64 --conf 0.001 --iou 0.65 --device 0 --weights yolov7-tiny.pt --name yolov7_640_val

python detect.py --weights yolov7-tiny.pt --conf 0.25 --img-size 640 --source inference/sample.mp4

python detect.py --weights yolov7-tiny.pt --conf 0.25 --img-size 640 --source 0

```
![image](https://hackmd.io/_uploads/SykXHCWX0.png)

# custom dataset training
```
file: data/custom.yaml  (--data)

train: ../thesis_data/dataset/train/images
val: ../thesis_data/dataset/valid/images

nc: 4
names: ['military aircraft','military ship','military tank','civilianvehicle']

file: cfg/training/yolov7-tiny-custom.yaml

# parameters
nc: 4  # number of classes

file: data/hyp.scratch.custom.yaml (--hyp)

=============================================
python train.py --workers 8 --device 0 --batch-size 64 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-tiny-custom.yaml --weights 'yolov7-tiny.pt' --name yolov7-tiny-custom --hyp data/hyp.scratch.custom.yaml
# 從頭開始

Model Summary: 263 layers, 6023106 parameters, 6023106 gradients

Scaled weight_decay = 0.0005
Optimizer groups: 58 .bias, 58 conv.weight, 61 other
train: Scanning '..\thesis_data\dataset\train\labels.cache' images and labels... 53317 found, 0 missing, 6883 empty, 1 corrupted: 100%|███████████████████████████████████████████| 53317/53317 [00:00<?, ?it/s]
val: Scanning '..\thesis_data\dataset\valid\labels.cache' images and labels... 5609 found, 0 missing, 287 empty, 0 corrupted: 100%|█████████████████████████████████████████████████| 5609/5609 [00:00<?, ?it/s]

autoanchor: Analyzing anchors... anchors/target = 3.57, Best Possible Recall (BPR) = 0.9992
Image sizes 640 train, 640 test
Using 8 dataloader workers
Logging results to runs\train\yolov7-tiny-custom
Starting training for 300 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
     0/299     10.4G   0.07536   0.01434   0.02705    0.1167       165       640:   2%|█▉                                                                                      | 18/834 [00:14<07:50,  1.73it/s]
     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
     5/299       16G   0.05053  0.008307  0.003781   0.06262        21       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 834/834 [07:24<00:00,  1.87it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 44/44 [00:19<00:00,  2.29it/s]
                 all        5609        8544       0.668       0.498       0.499        0.25

```

```
python train.py --workers 8 --device 0 --batch-size 64 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-tiny-custom.yaml --weights 'yolov7-tiny.pt' --name yolov7-tiny-custom --hyp data/hyp.scratch.custom.yaml     
# --weights 'yolov7-tiny.pt'
 
     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
     1/299       10G   0.04725  0.007745  0.003344   0.05834         7       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 834/834 [07:40<00:00,  1.81it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 44/44 [00:20<00:00,  2.16it/s]
                 all        5609        8544       0.624       0.566        0.56       0.292     
     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
     6/299     15.6G   0.04507  0.007654  0.002253   0.05497        15       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 834/834 [07:37<00:00,  1.82it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 44/44 [00:20<00:00,  2.19it/s]
                 all        5609        8544       0.737       0.678        0.69       0.404
                 
    55/299     15.6G   0.04112  0.007414  0.001859    0.0504         9       640    0.8127    0.7854       0.8    0.5298   0.04826   0.00795  0.001707
    56/299     15.6G   0.04016   0.00726  0.001358   0.04878        10       640     0.811    0.7887    0.7994    0.5291   0.04825  0.007945  0.001597
    57/299     15.6G   0.04019  0.007257   0.00142   0.04887         5       640    0.8231    0.7785       0.8    0.5294   0.04811  0.007941  0.001571
    58/299     15.6G   0.04006  0.007256  0.001411   0.04873        13       640    0.8282    0.7777    0.8003    0.5289   0.04838   0.00792  0.001526
    59/299     15.6G   0.04022  0.007167  0.001235   0.04862        11       640     0.829    0.7783     0.801    0.5298    0.0484  0.007913  0.001491
    60/299     15.6G    0.0399  0.007174  0.001278   0.04835        14       640    0.8273    0.7803    0.8013    0.5303   0.04839  0.007898   0.00147
    61/299     15.6G   0.04038  0.007173  0.001428   0.04898         8       640     0.828     0.781    0.8013    0.5298   0.04841  0.007887  0.001482
    62/299     15.6G   0.04052   0.00718  0.001279   0.04898         8       640    0.8251    0.7826    0.8024    0.5299   0.04843  0.007877  0.001487
    63/299     15.6G   0.04029  0.007305  0.001732   0.04933         6       640    0.8203    0.7872    0.8033    0.5308   0.04854  0.007868  0.001478
    64/299     15.6G   0.04078  0.007337  0.001571   0.04969         9       640    0.8297    0.7814    0.8042    0.5318   0.04883  0.007854  0.001453
    
```
2024/05/16
```
python train.py --workers 32 --device 0 --batch-size 96 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-tiny-custom.yaml --weights 'runs/train/yolov7-tiny-custom3/weights/best.pt' --name yolov7-tiny-custom --hyp data/hyp.scratch.custom.yaml

Model Summary: 263 layers, 6023106 parameters, 6023106 gradients

Scaled weight_decay = 0.00075
Optimizer groups: 58 .bias, 58 conv.weight, 61 other
train: Scanning '..\thesis_data\dataset\train\labels.cache' images and labels... 53317 found, 0 missing, 6883 empty, 1 corrupted: 100%|███████████████████████████████████████████| 53317/53317 [00:00<?, ?it/s]
val: Scanning '..\thesis_data\dataset\valid\labels.cache' images and labels... 5609 found, 0 missing, 287 empty, 0 corrupted: 100%|█████████████████████████████████████████████████| 5609/5609 [00:00<?, ?it/s]

autoanchor: Analyzing anchors... anchors/target = 3.57, Best Possible Recall (BPR) = 0.9992
Image sizes 640 train, 640 test
Using 32 dataloader workers
Logging results to runs\train\yolov7-tiny-custom4
Starting training for 100 epochs...

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
      0/99     1.77G   0.06315  0.009217   0.01699   0.08936       142       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 556/556 [07:42<00:00,  1.20it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95:   0%|                                                                                      | 0/30 [00:00<?, ?it/s]C:\Users\rchiu\AppData\Roaming\Python\Python310\site-packages\torch\functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ..\aten\src\ATen\native\TensorShape.cpp:3484.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 30/30 [00:27<00:00,  1.08it/s]
                 all        5609        8544      0.0708       0.135      0.0392     0.00762

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
      1/99     15.3G   0.05764   0.00936  0.008088   0.07508       110       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 556/556 [07:26<00:00,  1.25it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 30/30 [00:24<00:00,  1.23it/s]
                 all        5609        8544        0.41       0.277       0.218      0.0665

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
      2/99     24.3G   0.05513  0.008781  0.006024   0.06994       117       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 556/556 [07:25<00:00,  1.25it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 30/30 [00:23<00:00,  1.26it/s]
                 all        5609        8544       0.186       0.224       0.105      0.0334

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
      3/99     24.3G   0.05405  0.008539  0.005115   0.06771       121       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 556/556 [07:24<00:00,  1.25it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 30/30 [00:23<00:00,  1.28it/s]
                 all        5609        8544       0.364       0.415       0.322       0.142

     Epoch   gpu_mem       box       obj       cls     total    labels  img_size
      4/99     24.3G   0.05164   0.00837  0.004354   0.06436       157       640: 100%|███████████████████████████████████████████████████████████████████████████████████████| 556/556 [07:36<00:00,  1.22it/s]
               Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|█████████████████████████████████████████████████████████████████████████████| 30/30 [00:23<00:00,  1.27it/s]
                 all        5609        8544       0.593       0.441       0.368       0.157

     35/99     24.3G   0.04209  0.007404  0.001513     0.051       114       640    0.7703     0.723    0.7429    0.4661   0.05477   0.00808  0.002155
     36/99     24.3G   0.04221  0.007495  0.001624   0.05133       123       640    0.7797    0.7162    0.7436    0.4676   0.05461  0.008086  0.002115
     37/99     24.3G   0.04198  0.007433  0.001668   0.05108       130       640    0.7697    0.7238    0.7431    0.4677   0.05448   0.00809  0.002105
     38/99     24.3G   0.04223  0.007416  0.001466   0.05112       115       640    0.7696    0.7241    0.7439    0.4688   0.05437  0.008098  0.002096
     39/99     24.3G   0.04187  0.007412  0.001525   0.05081       126       640    0.7663    0.7274    0.7448    0.4693   0.05425  0.008101  0.002075
     
```
train command
```
python train.py --workers 128 --device 0 --batch-size 128 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-tiny-custom.yaml --weights 'runs/train/yolov7-tiny-custom4/w
eights/best.pt' --name yolov7-tiny-custom --hyp data/hyp.scratch.custom.yaml

```

# yolov7 training env config for UAV

以下無效
conda create --name yolov7 python=3.10
pip install -r requirment.txt
[install cuda](https://nvidia.github.io/cuda-python/install.html)
conda install -c nvidia cuda-python
以上無效

暫時將trainocr env clone 來用
```
(yolov7) C:\Users\richardchiu>python -V
Python 3.10.14

(yolov7) C:\Users\richardchiu>pip list
Package                 Version
----------------------- -----------
absl-py                 2.1.0
addict                  2.4.0
anyconfig               0.14.0
anyio                   4.4.0
arabic-reshaper         2.1.3
asttokens               2.4.1
beautifulsoup4          4.12.3
Brotli                  1.0.9
certifi                 2024.2.2
charset-normalizer      2.0.4
click                   8.1.7
colorama                0.4.6
comm                    0.2.2
contourpy               1.2.1
cycler                  0.12.1
debugpy                 1.8.1
decorator               5.1.1
diffimg                 0.2.3
docker-pycreds          0.4.0
easydict                1.13
exceptiongroup          1.2.0
executing               2.0.1
filelock                3.13.1
fonttools               4.53.0
future                  1.0.0
getsize                 1.1.11
gitdb                   4.0.11
GitPython               3.1.43
gmpy2                   2.1.2
grpcio                  1.64.1
h11                     0.14.0
httpcore                1.0.5
httpx                   0.27.0
idna                    3.7
imageio                 2.34.1
imgaug                  0.4.0
importlib_metadata      7.1.0
ipykernel               6.29.3
ipython                 8.25.0
jedi                    0.19.1
Jinja2                  3.1.4
joblib                  1.4.2
jupyter_client          8.6.2
jupyter_core            5.7.2
kiwisolver              1.4.5
lazy_loader             0.4
Markdown                3.6
MarkupSafe              2.1.3
matplotlib              3.9.0
matplotlib-inline       0.1.7
mkl-fft                 1.3.1
mkl-random              1.2.2
mkl-service             2.4.0
mpmath                  1.3.0
natsort                 8.4.0
nest_asyncio            1.6.0
networkx                3.1
numpy                   1.24.3
opencv-python           4.9.0.80
packaging               24.0
pandas                  2.2.2
parso                   0.8.4
pickleshare             0.7.5
Pillow                  9.4.0
pip                     24.0
platformdirs            4.2.2
polygon                 1.2.0
prompt-toolkit          3.0.42
protobuf                4.25.3
psutil                  5.9.8
pure-eval               0.2.2
pyclipper               1.3.0.post5
Pygments                2.18.0
pyparsing               3.1.2
pyperclip               1.8.2
PySocks                 1.7.1
python-bidi             0.4.2
python-dateutil         2.9.0
pytz                    2024.1
pywin32                 306
PyYAML                  6.0.1
pyzmq                   26.0.3
requests                2.32.2
scikit-image            0.23.2
scikit-learn            1.5.0
scipy                   1.13.1
seaborn                 0.13.2
sentry-sdk              2.6.0
setproctitle            1.3.3
setuptools              69.5.1
shapely                 2.0.4
six                     1.16.0
smmap                   5.0.1
sniffio                 1.3.1
soupsieve               2.5
stack-data              0.6.2
sympy                   1.12
tensorboard             2.17.0
tensorboard-data-server 0.7.2
tensorboardX            2.6.2.2
threadpoolctl           3.5.0
tifffile                2024.5.22
torch                   2.2.0
torchaudio              2.2.0
torchvision             0.17.0
tornado                 6.4
tqdm                    4.66.4
traitlets               5.14.3
typing_extensions       4.11.0
tzdata                  2024.1
urllib3                 2.2.1
wandb                   0.17.3
wcwidth                 0.2.13
websocket-client        1.8.0
websockets              12.0
Werkzeug                3.0.3
wheel                   0.43.0
wikipedia               1.4.0
win-inet-pton           1.1.0
zipp                    3.17.0
```
conda list
```
(yolov7) C:\Users\richardchiu>conda list
# packages in environment at C:\Users\richardchiu\.conda\envs\yolov7:
#
# Name                    Version                   Build  Channel
absl-py                   2.1.0                    pypi_0    pypi
addict                    2.4.0                    pypi_0    pypi
anyconfig                 0.14.0                   pypi_0    pypi
anyio                     4.4.0                    pypi_0    pypi
arabic-reshaper           2.1.3                    pypi_0    pypi
asttokens                 2.4.1              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.12.3                   pypi_0    pypi
blas                      1.0                         mkl
brotli-python             1.0.9           py310hd77b12b_8
bzip2                     1.0.8                h2bbff1b_6
ca-certificates           2024.6.2             h56e8100_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
charset-normalizer        2.0.4              pyhd3eb1b0_0
click                     8.1.7                    pypi_0    pypi
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
comm                      0.2.2              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.1                    pypi_0    pypi
cuda-cccl                 12.5.39                       0    nvidia
cuda-cccl_win-64          12.5.39                       0    nvidia
cuda-cudart               12.1.105                      0    nvidia
cuda-cudart-dev           12.1.105                      0    nvidia
cuda-cupti                12.1.105                      0    nvidia
cuda-libraries            12.1.0                        0    nvidia
cuda-libraries-dev        12.1.0                        0    nvidia
cuda-nvrtc                12.1.105                      0    nvidia
cuda-nvrtc-dev            12.1.105                      0    nvidia
cuda-nvtx                 12.1.105                      0    nvidia
cuda-opencl               12.5.39                       0    nvidia
cuda-opencl-dev           12.5.39                       0    nvidia
cuda-profiler-api         12.5.39                       0    nvidia
cuda-runtime              12.1.0                        0    nvidia
cuda-version              12.5                          3    nvidia
cudnn                     8.9.2.26               cuda12_0
cycler                    0.12.1                   pypi_0    pypi
debugpy                   1.8.1           py310h00ffb61_0    conda-forge
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
diffimg                   0.2.3                    pypi_0    pypi
docker-pycreds            0.4.0                    pypi_0    pypi
easydict                  1.13                     pypi_0    pypi
exceptiongroup            1.2.0              pyhd8ed1ab_2    conda-forge
executing                 2.0.1              pyhd8ed1ab_0    conda-forge
filelock                  3.13.1          py310haa95532_0
fonttools                 4.53.0                   pypi_0    pypi
freetype                  2.12.1               ha860e81_0
future                    1.0.0                    pypi_0    pypi
getsize                   1.1.11                   pypi_0    pypi
gitdb                     4.0.11                   pypi_0    pypi
gitpython                 3.1.43                   pypi_0    pypi
gmpy2                     2.1.2           py310h7f96b67_0
grpcio                    1.64.1                   pypi_0    pypi
h11                       0.14.0                   pypi_0    pypi
httpcore                  1.0.5                    pypi_0    pypi
httpx                     0.27.0                   pypi_0    pypi
idna                      3.7             py310haa95532_0
imageio                   2.34.1                   pypi_0    pypi
imgaug                    0.4.0                    pypi_0    pypi
importlib-metadata        7.1.0              pyha770c72_0    conda-forge
importlib_metadata        7.1.0                hd8ed1ab_0    conda-forge
intel-openmp              2021.4.0          haa95532_3556
ipykernel                 6.29.3             pyha63f2e9_0    conda-forge
ipython                   8.25.0             pyh7428d3b_0    conda-forge
jedi                      0.19.1             pyhd8ed1ab_0    conda-forge
jinja2                    3.1.4           py310haa95532_0
joblib                    1.4.2                    pypi_0    pypi
jpeg                      9e                   h2bbff1b_1
jupyter_client            8.6.2              pyhd8ed1ab_0    conda-forge
jupyter_core              5.7.2           py310h5588dad_0    conda-forge
kiwisolver                1.4.5                    pypi_0    pypi
krb5                      1.21.2               heb0366b_0    conda-forge
lazy-loader               0.4                      pypi_0    pypi
lcms2                     2.12                 h83e58a3_0
lerc                      3.0                  hd77b12b_0
libcublas                 12.1.0.26                     0    nvidia
libcublas-dev             12.1.0.26                     0    nvidia
libcufft                  11.0.2.4                      0    nvidia
libcufft-dev              11.0.2.4                      0    nvidia
libcurand                 10.3.6.39                     0    nvidia
libcurand-dev             10.3.6.39                     0    nvidia
libcusolver               11.4.4.55                     0    nvidia
libcusolver-dev           11.4.4.55                     0    nvidia
libcusparse               12.0.2.55                     0    nvidia
libcusparse-dev           12.0.2.55                     0    nvidia
libdeflate                1.17                 h2bbff1b_1
libffi                    3.4.4                hd77b12b_1
libjpeg-turbo             2.0.0                h196d8e1_0
libnpp                    12.0.2.50                     0    nvidia
libnpp-dev                12.0.2.50                     0    nvidia
libnvfatbin               12.5.39                       0    nvidia
libnvfatbin-dev           12.5.39                       0    nvidia
libnvjitlink              12.1.105                      0    nvidia
libnvjitlink-dev          12.1.105                      0    nvidia
libnvjpeg                 12.1.1.14                     0    nvidia
libnvjpeg-dev             12.1.1.14                     0    nvidia
libpng                    1.6.39               h8cc25b3_0
libsodium                 1.0.18               h8d14728_1    conda-forge
libtiff                   4.5.1                hd77b12b_0
libuv                     1.44.2               h2bbff1b_0
libwebp-base              1.3.2                h2bbff1b_0
lz4-c                     1.9.4                h2bbff1b_1
markdown                  3.6                      pypi_0    pypi
markupsafe                2.1.3           py310h2bbff1b_0
matplotlib                3.9.0                    pypi_0    pypi
matplotlib-inline         0.1.7              pyhd8ed1ab_0    conda-forge
mkl                       2021.4.0           haa95532_640
mkl-service               2.4.0           py310h2bbff1b_0
mkl_fft                   1.3.1           py310ha0764ea_0
mkl_random                1.2.2           py310h4ed8f06_0
mpc                       1.1.0                h7edee0f_1
mpfr                      4.0.2                h62dcd97_1
mpir                      3.0.0                hec2e145_1
mpmath                    1.3.0           py310haa95532_0
natsort                   8.4.0                    pypi_0    pypi
nest-asyncio              1.6.0              pyhd8ed1ab_0    conda-forge
networkx                  3.1             py310haa95532_0
numpy                     1.24.3          py310hdc03b94_0
numpy-base                1.24.3          py310h3caf3d7_0
opencv-python             4.9.0.80                 pypi_0    pypi
openjpeg                  2.4.0                h4fc8c34_0
openssl                   3.3.0                h2466b09_3    conda-forge
packaging                 24.0               pyhd8ed1ab_0    conda-forge
pandas                    2.2.2                    pypi_0    pypi
parso                     0.8.4              pyhd8ed1ab_0    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    9.4.0                    pypi_0    pypi
pip                       24.0            py310haa95532_0
platformdirs              4.2.2              pyhd8ed1ab_0    conda-forge
polygon                   1.2.0                    pypi_0    pypi
prompt-toolkit            3.0.42             pyha770c72_0    conda-forge
protobuf                  4.25.3                   pypi_0    pypi
psutil                    5.9.8           py310h8d17308_0    conda-forge
pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
pyclipper                 1.3.0.post5              pypi_0    pypi
pygments                  2.18.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.2                    pypi_0    pypi
pyperclip                 1.8.2                    pypi_0    pypi
pysocks                   1.7.1           py310haa95532_0
python                    3.10.14              he1021f5_1
python-bidi               0.4.2                    pypi_0    pypi
python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytorch                   2.2.0           py3.10_cuda12.1_cudnn8_0    pytorch
pytorch-cuda              12.1                 hde6ce7c_5    pytorch
pytorch-mutex             1.0                        cuda    pytorch
pytz                      2024.1                   pypi_0    pypi
pywin32                   306             py310h00ffb61_2    conda-forge
pyyaml                    6.0.1           py310h2bbff1b_0
pyzmq                     26.0.3          py310h656833d_0    conda-forge
requests                  2.32.2          py310haa95532_0
scikit-image              0.23.2                   pypi_0    pypi
scikit-learn              1.5.0                    pypi_0    pypi
scipy                     1.13.1                   pypi_0    pypi
seaborn                   0.13.2                   pypi_0    pypi
sentry-sdk                2.6.0                    pypi_0    pypi
setproctitle              1.3.3                    pypi_0    pypi
setuptools                69.5.1          py310haa95532_0
shapely                   2.0.4                    pypi_0    pypi
six                       1.16.0             pyhd3eb1b0_1
smmap                     5.0.1                    pypi_0    pypi
sniffio                   1.3.1                    pypi_0    pypi
soupsieve                 2.5                      pypi_0    pypi
sqlite                    3.45.3               h2bbff1b_0
stack_data                0.6.2              pyhd8ed1ab_0    conda-forge
sympy                     1.12            py310haa95532_0
tensorboard               2.17.0                   pypi_0    pypi
tensorboard-data-server   0.7.2                    pypi_0    pypi
tensorboardx              2.6.2.2                  pypi_0    pypi
threadpoolctl             3.5.0                    pypi_0    pypi
tifffile                  2024.5.22                pypi_0    pypi
tk                        8.6.14               h0416ee5_0
torchaudio                2.2.0                    pypi_0    pypi
torchvision               0.17.0                   pypi_0    pypi
tornado                   6.4             py310h8d17308_0    conda-forge
tqdm                      4.66.4                   pypi_0    pypi
traitlets                 5.14.3             pyhd8ed1ab_0    conda-forge
typing_extensions         4.11.0          py310haa95532_0
tzdata                    2024.1                   pypi_0    pypi
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
urllib3                   2.2.1           py310haa95532_0
vc                        14.2                 h2eaa2aa_1
vc14_runtime              14.38.33135         h835141b_20    conda-forge
vs2015_runtime            14.38.33135         h22015db_20    conda-forge
wandb                     0.17.3                   pypi_0    pypi
wcwidth                   0.2.13             pyhd8ed1ab_0    conda-forge
websocket-client          1.8.0                    pypi_0    pypi
websockets                12.0                     pypi_0    pypi
werkzeug                  3.0.3                    pypi_0    pypi
wheel                     0.43.0          py310haa95532_0
wikipedia                 1.4.0                    pypi_0    pypi
win_inet_pton             1.1.0           py310haa95532_0
xz                        5.4.6                h8cc25b3_1
yaml                      0.2.5                he774522_0
zeromq                    4.3.5                he1f189c_4    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               h8cc25b3_1
zstd                      1.5.5                hd43e919_2

```
config files
```
調整其中的內容使其可以正確運行 

data\hyp.scratch.custom.yaml  <-- hyper parameter 

data/custom.yaml :  <-- 改變資料位置
train: ../thesis_data/dataset/train/images
val: ../thesis_data/dataset/valid/images
nc: 4
names: ['military aircraft','military ship','military tank','civilianvehicle'] 

cfg/training/yolov7-uav.yaml  <-- nc:
nc:4

```
command
```
# 2024-06-27  C:\develop\yolov7_UAV\run_train_uav.bat
call C:\anaconda3\Scripts\activate.bat C:\anaconda3
call conda activate yolov7
cd C:\develop\yolov7_UAV
python train.py --workers 8 --device 0 --batch-size 32 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-UAV.yaml --resume C:\develop\yolov7_UAV\runs\train\yolov7-uav7\weights\best.pt --name yolov7-uav --hyp data/hyp.scratch.custom.yaml

REM python train.py --workers 8 --device 1,0 --batch-size 60 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-UAV.yaml --weights C:\develop\yolov7_UAV\runs\train\yolov7-uav7\weights\best.pt --name yolov7-uav --hyp data/hyp.scratch.custom.yaml


```





















