File size: 3,026 Bytes
24bea5e
 
94b2bb6
 
5bab9a2
5414e53
24bea5e
5414e53
b53c8ac
24bea5e
94b2bb6
 
a0fa5f5
94b2bb6
 
 
 
 
24bea5e
 
 
94b2bb6
 
5c73caa
94b2bb6
5414e53
 
 
 
 
94b2bb6
5414e53
 
 
 
 
 
94b2bb6
5414e53
 
 
 
 
 
 
94b2bb6
5414e53
 
 
 
d1182c4
5414e53
 
 
 
94b2bb6
5414e53
 
a12698f
 
 
7d8e2dd
5414e53
 
a12698f
5414e53
 
 
2754ada
5414e53
2754ada
c4addd7
720aaa6
 
 
5414e53
9a3da79
2754ada
d1182c4
5414e53
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
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license

name: CI CPU testing

on: # https://help.github.com/en/actions/reference/events-that-trigger-workflows
  push:
    branches: [master, develop]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [master, develop]

jobs:
  cpu-tests:

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: [3.8]
        model: ['yolov5s']  # models to test

    # Timeout: https://stackoverflow.com/a/59076067/4521646
    timeout-minutes: 50
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      # Note: This uses an internal pip API and may not always work
      # https://github.com/actions/cache/blob/master/examples.md#multiple-oss-in-a-workflow
      - name: Get pip cache
        id: pip-cache
        run: |
          python -c "from pip._internal.locations import USER_CACHE_DIR; print('::set-output name=dir::' + USER_CACHE_DIR)"

      - name: Cache pip
        uses: actions/cache@v1
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: ${{ runner.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-${{ matrix.python-version }}-pip-

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -qr requirements.txt -f https://download.pytorch.org/whl/cpu/torch_stable.html
          pip install -q onnx onnx-simplifier coremltools  # for export
          python --version
          pip --version
          pip list
        shell: bash

      - name: Download data
        run: |
          # curl -L -o tmp.zip https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
          # unzip -q tmp.zip -d ../
          # rm tmp.zip

      - name: Tests workflow
        run: |
          # export PYTHONPATH="$PWD"  # to run '$ python *.py' files in subdirectories
          di=cpu # inference devices  # define device

          # train
          python train.py --img 128 --batch 16 --weights ${{ matrix.model }}.pt --cfg ${{ matrix.model }}.yaml --epochs 1 --device $di
          # detect
          python detect.py --weights ${{ matrix.model }}.pt --device $di
          python detect.py --weights runs/train/exp/weights/last.pt --device $di
          # val
          python val.py --img 128 --batch 16 --weights ${{ matrix.model }}.pt --device $di
          python val.py --img 128 --batch 16 --weights runs/train/exp/weights/last.pt --device $di

          python hubconf.py  # hub
          python models/yolo.py --cfg ${{ matrix.model }}.yaml  # inspect
          python export.py --img 128 --batch 1 --weights ${{ matrix.model }}.pt --include onnx torchscript  # export
        shell: bash