👨‍🏫Modeli Eğitime

🔰 Ön Bilgiler

Modeli eğitmek için train.py script dosyasını kullanacağız.

Modeli önerilen dosya olan model_main.py ile eğitmek için buraya bakmalısın.

🩹 Eğitim Scriptlerini Çalışma Alanına Kopyalama

Çalışma ortamının düzgün ilerlemesi adına alttaki komut ile gerekli yere scripti kopyalayalım

copy %TENSORFLOW%\models\research\object_detection\legacy\train.py ^
%TENSORFLOW%\workspace\example_detectioncopy ^
%TENSORFLOW%\models\research\object_detection\model_main.py

📜 Eğitimde Raporlanacak Seviyeyi Ayarlama (isteğe Bağlı)

Eğitimde uyarı ve bilgileri gizlemek için TF_CPP_MIN_LOG_LEVEL adlı ortam değişkeni oluşturup seviyesini tanımlıyoruz

set TF_CPP_MIN_LOG_LEVEL=2

📦 Eğitim için Gereksinimlerin Kurulması

Eğitim için pycocotools kurulumu gereklidir

Windows desteğiyle kurulum yapmak için alttaki komutu koşturun

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

Açıklama için buraya bakabilirsin.

🏴 Eğitimi Hazırlama ve Başlatma

Resmi kaynağa ulaşmak için buraya bakabilirsin.

  • model_main.py eğitim için önerilen dosyadır

  • Varsayılan olarak ekrana raporlama yapmaz, yapmasını isterseniz buraya bakabilirsiniz

Bu dosya ile eğitim önerilen eğitim şeklidir.

  • train.py ile eğitime nazaran, kaldığı yerden devam eder

    • 1000 adım yapıldıysa, ikinci eğitimi 1200 yaptığınızda 200 adım eğitir

    • train.py eğitiminde modelin sonucunun ayrılıp, sonuç üzerinden eğitim yapılması gerekir

# From the tensorflow/models/research/ directory
PIPELINE_CONFIG_PATH={path to pipeline config file}
MODEL_DIR={path to model directory}
NUM_TRAIN_STEPS=50000
SAMPLE_1_OF_N_EVAL_EXAMPLES=1
python object_detection/model_main.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --num_train_steps=${NUM_TRAIN_STEPS} \
    --sample_1_of_n_eval_examples=$SAMPLE_1_OF_N_EVAL_EXAMPLES \
    --alsologtostderr

Eğitim dosyaları arasında performans veya kalite farkı yoktur, kaynak için buraya bakabilirsin.

🧲 Eğitimi Etkileyen Faktörler

Training times can be affected by a number of factors such as:

  • The computational power of you hardware (either CPU or GPU): Obviously, the more powerful your PC is, the faster the training process.

  • Whether you are using the TensorFlow CPU or GPU variant: In general, even when compared to the best CPUs, almost any GPU graphics card will yield much faster training and detection speeds. As a matter of fact, when I first started I was running TensorFlow on my Intel i7-5930k (6/12 cores @ 4GHz, 32GB RAM) and was getting step times of around 12 sec/step, after which I installed TensorFlow GPU and training the very same model -using the same dataset and config files- on a EVGA GTX-770 (1536 CUDA-cores @ 1GHz, 2GB VRAM) I was down to 0.9 sec/step!!! A 12-fold increase in speed, using a “low/mid-end” graphics card, when compared to a “mid/high-end” CPU.

  • How big the dataset is: The higher the number of images in your dataset, the longer it will take for the model to reach satisfactory levels of detection performance.

  • The complexity of the objects you are trying to detect: Obviously, if your objective is to track a black ball over a white background, the model will converge to satisfactory levels of detection pretty quickly. If on the other hand, for example, you wish to detect ships in ports, using Pan-Tilt-Zoom cameras, then training will be a much more challenging and time-consuming process, due to the high variability of the shape and size of ships, combined with a highly dynamic background.

  • And many, many, many, more. . . .

👀 Eğitim İşlemini TensorBoard Kullanarak Takip Etme

Anaconda Prompt üzerinden alttaki komutlar uygulanır:

activate tensorflow_cpu # ya da gputensorboard --logdir=training\

Alttaki gibi bir çıktı gelmesi gerekmekte:

TensorBoard 1.6.0 at http://YOUR-PC:6006 (Press CTRL+C to quit)

Çıktıyı görüntülemek için verilen url'i tarayıcına kopyalaman yeterlidir.

📃 Sonuç Grafiğini Dışarı Aktarma

Anaconda Prompt üzerinden alttaki komutlar uygulanır:

activate tensorflow_cpu # ya da gpu​copy 
%TENSORFLOW%\models\research\object_detection/export_inference_graph.py \
%TENSORFLOW%\workspace\example_detection​
cd %TENSORFLOW%\workspace\example_detection​
python export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path training/<yapılandırma_dosyası> \
--trained_checkpoint_prefix training/model.ckpt-<checkpoint> \
--output_directory trained-inference-graphs/output_inference_graph_v1.pb
  • <yapılandırma_dosyası> Modelimizin yapılandırma dosyasının tam adı

    • training klasörüne attığımız yapılandırma dosyaları

    • Örn: ssd_inception_v2_coco.config

  • <checkpoint> example_detection/training dizinindeki gösterilmek istenen adımın numarası

    • Örn: 13302

📎 Ek Notlar

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk