sahi icon indicating copy to clipboard operation
sahi copied to clipboard

add Tensorflow Hub detector support

Open kadirnar opened this issue 2 years ago • 19 comments

Testlerden geçebilmesi için tensorflow ve tensorflow_hub kütüphanelerin kurulması gerekiyor.

  • package_testing.yml
  • ci.yml
- name: Install tensorflow and tensorflow_hub
  run: >
    pip install  tensorflow
    pip install tensorflow_hub

Bu format uygun mudur? @fcakyon

kadirnar avatar Jun 18 '22 22:06 kadirnar

@kadirnar Su sekilde versiyon belirtebiliriz:

- name: Install tensorflow(2.9.1) and tensorflow_hub(0.12.0)
  run: >
    pip install  tensorflow==2.9.1
    pip install tensorflow_hub==0.12.0

fcakyon avatar Jun 19 '22 08:06 fcakyon

@fcakyon test kodları paket kurulumlarından geçemiyor. Bunun için nasıl düzeltme yapmalıyım? (Bu düzeltmeden sonra reformat yapacağım)

kadirnar avatar Jun 19 '22 13:06 kadirnar

@fcakyon test kodları paket kurulumlarından geçemiyor. Bunun için nasıl düzeltme yapmalıyım? (Bu düzeltmeden sonra reformat yapacağım)

Testlerin calismasi icin black ve isort ile reformat yapip pushlaman gerekiyor. Linting'de takilmis tum testler.

fcakyon avatar Jun 19 '22 15:06 fcakyon

@kadirnar main branchteki son degisiklikleri pullayabilir misin, bazi fixler pushladim.

fcakyon avatar Jun 19 '22 19:06 fcakyon

ELine saglik @kadirnar, su anda aldigimiz hata layer paketi ile ilgili: https://github.com/layerai/sdk/issues/135

fcakyon avatar Jun 19 '22 21:06 fcakyon

Kodlamada set_model fonksiyonunu yazmadım(zorunlu değil diye). Tensorflow ile layer'i bağlayan bir modul yok diye biliyorum. Layer kendi kütüphanesinde hata var diye düşünmüştüm.

kadirnar avatar Jun 19 '22 21:06 kadirnar

@kadirnar layer tarafindaki sorun giderildi, demo notebook da ekleyebilirsen tamamlayabiliriz PR'i :+1:

fcakyon avatar Jun 20 '22 11:06 fcakyon

demo/inference_for_tensorflowhub.ipynb seklinde guncelleyebiliriz dosya adini

Tensorflow için GPU ayarını da yapmadım. Bunu ayrı bir PR de tüm modeller için düzenleriz diye düşündüm. Bu PR da düzenleme yapmalı mıyız? @fcakyon

kadirnar avatar Jun 20 '22 14:06 kadirnar

demo/inference_for_tensorflowhub.ipynb seklinde guncelleyebiliriz dosya adini

Tensorflow için GPU ayarını da yapmadım. Bunu ayrı bir PR de tüm modeller için düzenleriz diye düşündüm. Bu PR da düzenleme yapmalı mıyız? @fcakyon

Evet bu PR'da yapmaliyiz tf device ayarini, bu tartisma bolumune snippet olarak ornek device ayarlama scripti atabilirsen vakit bulunca yapayim ben gerekli duzenlemeyi :+1:

fcakyon avatar Jun 20 '22 14:06 fcakyon

demo/inference_for_tensorflowhub.ipynb seklinde guncelleyebiliriz dosya adini

Tensorflow için GPU ayarını da yapmadım. Bunu ayrı bir PR de tüm modeller için düzenleriz diye düşündüm. Bu PR da düzenleme yapmalı mıyız? @fcakyon

Evet bu PR'da yapmaliyiz tf device ayarini, bu tartisma bolumune snippet olarak ornek device ayarlama scripti atabilirsen vakit bulunca yapayim ben gerekli duzenlemeyi +1

GPU kodunu yazdım. Colab da test ettim hata vermedi. Sadece cuda:0 yerine GPU yazmamız gerekiyor.

Örnek Dokümantasyon: GPU-DOC.

GPU için daha güzel konfigürasyon olabilir. Hızlıca böyle yaptım. Daha sonra tekrardan kontrol ederim. @fcakyon

kadirnar avatar Jun 20 '22 16:06 kadirnar

Auto_model.py dosyasını güncelledim tensorflow için gerekli kodu ekledim. Bundan kaynaklı bir çakışma var gibi. Bunu nasıl çözebilirim? @fcakyon

kadirnar avatar Jul 18 '22 13:07 kadirnar

@kadirnar maindeki son degisiklikleri bu branche mergeledim, lokalindeleri pushlamadan once branching guncel halini pullamayi unutma :+1:

fcakyon avatar Aug 07 '22 21:08 fcakyon

@kadirnar su doctaki bilgiyi kullanarak tensorflow icin otomatik device secme eklememiz gerekiyor bu PRi mergeleyebilmemiz icin: https://www.tensorflow.org/guide/gpu#overview

ONEMLI NOT: maindeki son degisiklikleri mergeldim, localinde calismaya baslamadan once pullasan cok iyi olur 👍

fcakyon avatar Aug 29 '22 23:08 fcakyon

@kadirnar su doctaki bilgiyi kullanarak tensorflow icin otomatik device secme eklememiz gerekiyor bu PRi mergeleyebilmemiz icin: https://www.tensorflow.org/guide/gpu#overview

ONEMLI NOT: maindeki son degisiklikleri mergeldim, localinde calismaya baslamadan once pullasan cok iyi olur 👍

Auto device kodlarını nasıl entegre etmemi tavsiye edersiniz? Tensorflowhub classı ıcındekı load model fonksiyonuna mı?

Yoksa from sahi.utils.tensorflow import is_tensorflow_cuda_available fonksiyonu mu yazmalıyım?

Örnek Kod:

if tf.test.is_gpu_available():
    self.device = "/gpu:0"
else:
    self.device = "/cpu:0"

Ayrıca test kodlarını çalıştırırken torch kütüphanesini de yüklemek zorunda oluyorum. (SAHI torch kütüphanesi ile yazıldığı için normal olduğunu düşündüm)

https://github.com/obss/sahi/blob/main/sahi/model.py#L668

kadirnar avatar Aug 30 '22 10:08 kadirnar

Evet şu anda torch SAHI’de zorunlu dependency.

device olayı için şöyle bir şey yapabiliriz: DetectionModel için set_device diye bir fonksiyon tanımlayıp şu anki device set etme satırını ona taşırız.

tensofflubhubdetectionmodel içinde set_device fonksiyonunu yeniden tanımlayabilirsin yazdığın şekilde

fcakyon avatar Aug 30 '22 12:08 fcakyon

Evet şu anda torch SAHI’de zorunlu dependency.

device olayı için şöyle bir şey yapabiliriz: DetectionModel için set_device diye bir fonksiyon tanımlayıp şu anki device set etme satırını ona taşırız.

tensofflubhubdetectionmodel içinde set_device fonksiyonunu yeniden tanımlayabilirsin yazdığın şekilde

def set_device(self):
    import tensorflow as tf
    if self.device is None:
        try:
            if tf.test.is_gpu_available():
                self.device = "/gpu:0"
            else:
                self.device = "/cpu:0"
                
        except Exception as e:
            raise Exception("Error setting device: ", e)

Hata mesajı ve kodlar için öneriniz var mı? Yoksa bu şekilde göndereceğim.

kadirnar avatar Aug 30 '22 12:08 kadirnar

Güzel olmuş eline sağlık, try except’e gerek olmayabilir. torch’ta yaptığımız gibi try except yapmadan set edebiliriz gpu/cpu

fcakyon avatar Aug 30 '22 13:08 fcakyon

Readme.md dosyasındaki reformatter kodu hata veriyor. Eski reformatter kodunu çalıştırdım.

kadirnar avatar Aug 30 '22 13:08 kadirnar

SAHI + TensorFlowHub: https://github.com/kadirnar/Yolov7-SAHI/blob/main/demo/inference_for_tensorflowhub.ipynb

kadirnar avatar Dec 16 '22 23:12 kadirnar