- Python 97.9%
- Shell 2.1%
| docs | ||
| images | ||
| .gitattributes | ||
| .gitignore | ||
| cli.py | ||
| epoch.py | ||
| LICENSE-BSD | ||
| LICENSE-CC | ||
| load-model.py | ||
| main.py | ||
| plantnet_300k_env.yml | ||
| README-upstream.md | ||
| README.md | ||
| requirements-dev.txt | ||
| requirements.txt | ||
| train.py | ||
| train.sh | ||
| utils.py | ||
PlantNet-300K Forklet
This is a forklet of the PlantNet-300K training repository.
Related repository:
Install
Install thusly.
Using Debian Stable (12/Bookworm).
Dependencies
Debian package dependencies.
sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev curl libncursesw5-dev xz-utils \
tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
python3-virtualenv python3-pip cmake-curses-gui cmake \
libudev-dev libsystemd-dev
Python
The Python setup is a bit involved, but very flexible.
This setup will allow for any particular version of Python to be
installed and used.
This will also set up a virtual environment for pip installs.
Firstly, setup pyenv to install and use any version of Python
curl https://pyenv.run | bash
Add these lines to the ~/.bashrc:
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Then log out and log back in. The following command should work:
pyenv versions
Now install various version(s) of Python:
pyenv install 3.11
pyenv install 3.10
PlantNetLibre-300K
Clone the repo and set up Python environment. Flavor Python version to taste.
git clone https://spacecruft.org/deepcrayon/PlantNetLibre-300K
cd PlantNetLibre-300K/
pyenv local 3.11
virtualenv -p python3.11.4 env
source env/bin/activate
python --version
Install PyTorch and dependencies.
This is for NVidia CUDA.
Install lit first or install fails (just repeat install to fix).
pip install --upgrade pip
pip install lit
pip install torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
Images
Set up data archive of photo images from PlantNet.
Archive is 31 gigabytes and contains the main
images test, train, and val directories.
Download images from upstream, or this rsync, por ahora.
sudo mkdir /srv/ml
sudo chown jebba:jebba /srv/ml
mkdir -p /srv/ml/plantnet/files/
rsync -utla rsync://66.135.9.139/plantnet/files/ \
/srv/ml/plantnet/files/
nvtop
It may be handy to have top for NVidia GPUs.
Works with A16 and A40, partially works with A100.
In new directory:
git clone https://github.com/Syllo/nvtop
cd nvtop/
mkdir build
cd build
cmake ..
ccmake ..
make -j4
# Run:
./src/nvtop
In the ccmake menu, disable all except NVidia.
Run
Run thusly.
Train Model
Train a model:
./train.sh [model name]
Example:
./train.sh resnet50
Load Model
This repo is for training models, not using them. But there is a script that can load each model to verify it at least can load or not.
Edit source to test each model individually. Then run:
./load-model.py
Docs
See the Libre Office spreadsheet docs/train-plantnet.ods for
info about each initial test run.
Development
The black formatting application is used.
To install:
pip install -r requirements-dev.txt
Upstream
Upstream source repository, BSD 2-Clause License.
See README-upstream.md for upstream README.
Copyright
Unofficial project, not related to PlantNet. Upstream sources under their respective copyrights.
Source code license: BSD 2-Clause License.
Documentation license: Creative Commons CC by SA 4.0 International.
Data license: Creative Commons CC by SA 4.0 International.
Copyright © 2023, Jeff Moe.