---------------------GPU Kurulumu Öncesinde Yapılması ve Belirlenmesi Gerekenler------------------------------
- Anaconda Spyder Derleyicisi üzerinden kurulum işlem adımlarıdır. Diğer derleyiciler ve sürümler için kendi paylaşım sayfalarına ve sürüm notlarına bakınız.
- https://www.anaconda.com/ ve https://anaconda.org/anaconda/spyder üzerinden programları edinebilirsiniz.
- Mail adresleriniz ile sistemlere kayıt olmanız bilgi paylaşımı açısından net bilgilere erişiminizde fayda sağlayacaktır.
- Mevcut sisteminizdeki python sürümlerini ve kütüphane sürümlerini stabil versiyonlara gelitirilmesi gerekmektedir.
- Bu bağlamda stabil işlem adımları için aşağıdaki yönergelere bakabilirsiniz.
- Stabil işlem adımlarını elde edilmesinde işletim sisteminin türü, kaç bit üzerinden çalıştığı ve sürüm notlarını önceden edininiz....
- Benim sistemlerimde çalışan en stabil sürüm aşağıdaır.
- Bu bir açık kaynak paylaşımdır. Tüm sistemler adına çalışıp çalıştırılmaması veya önceden çalışan bir sistemin üzerine kurulması - inşa edilmesinde bazı sürümlerin birbirini desteklememe gibi durumlar ile karşılaşılmaktadır.
- En stabil işletim sistemi sürümü için bilgi paylaşımları araştırılmalıdır.
- Sürüm notları ve yazılm gelişitirilmesi için kendi stabil işletim sistemi ve sürümlerinizin bilgilerine ihtiyacınız bulunmaktadır.
- Benim kullanıdğım stabil sürümler ile sizlerin stabil sürümleri farklı donanım ve yazılm sürümlerinden kullanımından kaynaklı olabilir. En iyi stabil sürümler için işinizi çözen sürümleri araştırmanız ve uygulamanız gerekmektedir.
- Buradaki işlem aşamalarını kendi kurulum sürecinize göre kurgulayabilirsiniz. Kurulum işlem aşamaları aşagıdadır.
- Bilgi paylaşıldıkça çoğaalır ve gelişir!!!
-------------------------------<<---GPU Kurulum basamaklarında ilk yapılacaklar-->>--------------------------------
- prompt çalıştırılarak yeni bir çalışma alanı oluşturacağız. Bu'da conda create -n gpucalismasi python=3.7
- activate gpucalismasi
- conda install tensorflow-gpu=1.15 (Cuda paketleri yüklü değilse uzun süre bekleme ile hata alınır!!!)
NOT: tensorflow-gpu=1.15 --> cudann-7.6.5 ve cuda10.0.0 sürümlerini destekler. diğerleri çalışmaz.
GPU Kurulum basamaklarında ikinci yapılacaklar-->>
-
https://www.tensorflow.org/install/gpu // GPU Kurulum belgeleri hakkında bilgi
-
https://developer.nvidia.com/cuda-gpus // Ekran kartımın kapasitesi nedir
-
https://www.nvidia.com/download/index.aspx?lang=en-us // Driver kur
-
https://www.tensorflow.org/install/source#gpu //hangi cuda bize lazım. // Kurulum
-
https://developer.nvidia.com/cuda-toolkit-archive // Cudalar dünyası.
-
https://developer.nvidia.com/rdp/cudnn-archive //cuDNN dünyası.
7.C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 dosyası içerisine cuDnn dosyası içerisindeki (bin,include,lib) dosyalarını taşı.(https://docs.nvidia.com/deeplearning/...)
- Pathları düzenle: CTRL+ R: control sysdm.cpl Variable Name: CUDA_PATH
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
-
C:\Program Files\NVIDIA Corporation\NVSMI altında [ nvidia-smi.exe ] çalıştırarak Gpu’ya ait açıklama, driver, cuda ve processleri görebilirsiniz.
-
Prompt çalıştırılarak --> activate gpucalismasi
-
pip install ipykernel
-
python -m ipykernel install --user --name gpucalismasi --display-name "gpucalismasi"
-
conda install tensorflow-gpu==1.15
-
pip install lxml pillow matplotlib jupyter contextlib2 cython tf_slim (kur)
-
https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs (bu dosyayı GİTHUB'TAN raw formatında indireceğiz. Config dosyası old. için)
-
https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0 (protoc-3.4.0-win32.zip dosyasını sayfada bularak indir)
-
C' diskinin aldında çalışma dosyası olustur. C:\Gpucalismalari
-
C:\Gpucalismalari dosyası içine; model-master zip dosyasını çıkar.
-
Model-master klasörünün tüm içeriğini C:\Gpucalismalari üst klasöre taşı.
-
protoc-3.4.0-win32.zip dosyasının bin klasörü içinden protoc.exe dosyasını C:\Gpucalismalari\research klasörü içerisine at.
-
prompt üzerinden gpucalismalari alanı aktif iken; cd C:\Gpucalismalari\research yaz.
-
C:\Gpucalismalari\research\object_detection\packages\tf1 dosyası içinde ki setup.py dosyasını C:\Gpucalismalari\research klasörü içerisine at.
-
komut satırına --> protoc object_detection/protos/*.proto --python_out=. yazarak protoc'u çalıştır. (çok kısa sürecek)
-
komut satırına ---> python setup.py build yaz.
-
komut satırına ---> python setup.py install yaz.
-------------------<<<-------------------- KURULUMLAR BİTİYOR---------------------->>>--------------
-
Anaconda navigatoru çalıştırarak ilgili sekmeden gpucalismasi bölümüne geç
-
gpucalismasi bölümünde spyder kurulu değilse ordan install et. jupyter notebook'da kurulabilir
-
Test için ilgili webcam detection programını C:\Gpucalismalari\research\object_detection dizini altına at.
-
Anaconda navigator'da gpucalismasi bölümünde spyder'a launch diyerek programı çalıştır.
-
webcan dedector isimli programı çalıştırdığımızda cv2 diye bir hata alırız. Bu opencv kütüphanesinin kurulu olmadığını gösterir.
-
conda install opencv kurmamız gerekir.
-
Uygulamayı çalıştırdığında webcamden alınan anlık görüntünün ingilice hazır kütüphanede işlenmesini göreceğiz.
-
C:\Gpucalismalari\research\object_detection\data içinde mscoco_label_map dosyası içinde ingilice terimleri türkçe terim yaparak yazılım güncellenebilir.
------------------------------------------------------------------------------LABEL-IMG------------------------------------------------------------
-
C:\Gpucalismalari dosyasının altında custom bir dosya oluştur.
-
Data – image(train,test) – training dosyalarını oluştur.
-
LABELIMG programı --> https://github.com/tzutalin/labelImg burdan inecek.
-
Githup üzerinden Label img yi indirdikten sonra labelImg-master dosyasını C:\Gpucalismalari\custom object dizini altına at ve çıkar.
-
Prompt üzerinden gpucalismasi environmetine geçtikten sonra labelImg dizinine geçmemiz gerekmektedir.
-
cd C:\Gpucalismalari\custom object\labelImg-master yazarak ilgili dizine geçilir.
-
conda install pyqt=5 (kur)
-
conda install -c anaconda lxml (kur)
-
pyrcc5 -o libs/resources.py resources.qrc
-
Python labelImg.py (label img programı çalıştırılır.)
-
internetten çoklu resim indirme programını kur. Örneğin; fatkun batch donwload image eklentisini kur (denedim çalışmadı!!)
-
Crome veya başka bir tarayıcının dosya indirme yerini çalıştığımız dosyanın C:\Gpucalismalari\custom object\images dosyası olarak ayarlamamız gerekir. iş bittikten sonra eski haline çevir.
-
Bu arada resimler *.jpg formatında olmalıdır. Resimleri bir yerde topladıktan sonra Python labelImg.py ile program çalıştırılır.
-
Prompt üzerinde --> activate gpucalismasi bölümünde misin kontrol ederek
-
cd C:\Gpucalismalari\custom object\labelImg-master yazarak ilgili dizine geçilir.
-
Python labelImg.py (label img programı çalıştırılır.)
-
Açılan yazılımda Open Dir diyerek hangi kalsörde çalışaçağımız seçilir. Dosya seçiminden sonra tüm resimler Labelimg içine gelir.
-
Save dir diyerek kayıt yapılacak alanı belirleriz.
-
Resimler üzerinde işlemleri W-S-D tuşları ile yaparız.
-
W- imleç getirir, S- CTRL+S ile işlem kaydedilir ve D ile bir sonraki işleme geçilir.
-
ilgili kayıt dosyasında xml dosyaları oluşturulmuştur. XML dosyalarında ilgili görselin boyutları ile alakalı durumlar mevcuttur.
-
Resimleri ve xml dosyalarının isimleri kontrol edilerek bir sonraki aşamaya geçilir.
-
Tüm resimlerin sayısına dikkat ederek etiketlenmiş resimleri test ve train olarak bölecez. (Örneğin %70-%30 veya %80-%20 olarak)
-
%80 train ve %20 test olarak veri setini bölerek xml dosyalarıyla birlikte train ve test klasörlerine gönderdik.
-
Oluşan bu verileri şimdi tensorflow'a göre işlemler başlayacak.
-
https://github.com/datitran/raccoon_dataset bu web sayfasından dosyaları indir.
-
inen dosyların içinden xml_to_csv.py ve generate_tfrecord.py dosyalarını C:\Gpucalismalari\custom object içine at.
-
Promt üzerinde cd C:\Gpucalismalari\custom object bölüme gelerek, Python xml_to_csv.py çalıştırılır. Pandas'da hata verirse --> conda install pandas
-
Bu işlem ile data klasörü içerisine test_labels.csv ve train_labels.csv dosyaları oluşturulur.
-
generate_tfrecord.py dosyasını açarak çalıştıracağız.
-
python generate_tfrecord.py --csv_input=data/test_labels.csv --output_path=data/test.record --image_dir=images/test/ kodunu çalıştır.
-
- kod ile Successfully created the TFRecords: C:\Gpucalismalari\custom object\data/test.record şeklinde test datasının başarılı şekilde çıktı almamız gerekmektedir.
-
python generate_tfrecord.py --csv_input=data/train_labels.csv --output_path=data/train.record --image_dir=images/train/
-
- kod ile Successfully created the TFRecords: C:\Gpucalismalari\custom object\data/train.record çeklinde train datasının başarılı şekilde çıktı almamız gerekmektedir.
-
record dosyaları tensorflow için lazımdır.
-------------------------------------------------------------EĞİTİM-SÜRECİ-ÖNCESİ-ADIMLAR---------------------------------------------------------
-
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md sayfasından ssd_mobilenet_v1_coco datasetini indir.
-
C:\Gpucalismalari\custom object\training klasörü içerisinde ssd_mobilenet_v1_coco rar dosyasını aç.
-
https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs sayfasından config dosyasını indireceğiz.
-
ssd_mobilenet_v1_coco.config dosyasını raw olarak training dosyası içine indir.
-
Config dosyasını düzenle
num_classes farklı etiketlenenlerin sayısı buraya yazılacak.
train_config: { batch_size: 24 --> İşlemleri CPU ile yapacaksan burayı düşür. batch_size=12 iyidir. GPU ise 24 olabilir.
fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED/model.ckpt" ---> fine_tune_checkpoint: "ssd_mobilenet_v1_coco_2018_01_28/model.ckpt" olacak.
num_steps: 200000 --> bilgisayarın eğitim adım sayısıdır.
train_input_reader: { input_path: "PATH_TO_BE_CONFIGURED/mscoco_train.record-?????-of-00100" --> input_path: "data/train.record" olacak
eval_input_reader: { input_path: "PATH_TO_BE_CONFIGURED/mscoco_val.record-?????-of-00010" --> input_path: "data/test.record"
-
C:\Gpucalismalari\custom object\data klasörü içerisinde Maske.pbtxt isimli bir text dosya oluştur.
-
Oluşturulan dosya içine
item { id:1 name:'Maske' }
YAZ.............
-
Config dosyasını düzenle
train_input_reader: tf_record_input_reader { label_map_path: "PATH_TO_BE_CONFIGURED/mscoco_label_map.pbtxt" --> label_map_path: "data/Maske.pbtxt" olacak.
eval_input_reader: tf_record_input_reader { label_map_path: "PATH_TO_BE_CONFIGURED/mscoco_label_map.pbtxt" --> label_map_path: "data/Maske.pbtxt" olacak.
-
Custom object klasörümüz artık hazır veri işleme için "data", "images", "ssd_mobilenet_v1_coco_2018_01_28" ve "training" dosyalarını kopyalayıp C:\Gpucalismalari\research\object_detection buraya yapıştıracağız.
-
C:\Gpucalismalari\research\object_detection\legacy bu dosya içeriklerini bir üst dizine çıkar.
------------------------------------------------------------EĞİTİM-ADIMLARI------------------------------------------------------------
-
Prompt çalıştırılarak --> activate gpucalismasi
-
Set PYTHONPATH=$PYTHONPATH: ‘pwd’:’pwd’/slim yaparak path düzeltilmesi sağlanıyor.
-
cd C:\Gpucalismalari\research\object_detection diyerek dosya yoluna gidelim.
-
conda install numpy==1.19.2 ile numpy sürümünü 1.19a çekiyoruz. Yoksa "Cannot convert a symbolic Tensor (cond_2/strided_slice:0) to a numpy array" şeklinde bir hata alıyoruz.
-
C:\Gpucalismalari\research\slim klasörüyle birlikte C:\Gpucalismalari\research\object_detection klasörüne kopyala.
-
C:\Gpucalismalari\research\object_detection klasör olarak kopyalanan slim'dosyasının içindeki; deployment ve nets dosyalarını bir üst klasöre kopyala.
-------------------------------------------------------------EĞİTİM-BAŞLANGICI------------------------------------------------------------------
-
python train.py --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_coco.config –logtostderr
!!! This is just the start... more is coming.