sahi
sahi copied to clipboard
add Tensorflow Hub detector support
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 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 test kodları paket kurulumlarından geçemiyor. Bunun için nasıl düzeltme yapmalıyım? (Bu düzeltmeden sonra reformat yapacağım)
@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.
@kadirnar main branchteki son degisiklikleri pullayabilir misin, bazi fixler pushladim.
ELine saglik @kadirnar, su anda aldigimiz hata layer paketi ile ilgili: https://github.com/layerai/sdk/issues/135
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 layer tarafindaki sorun giderildi, demo notebook da ekleyebilirsen tamamlayabiliriz PR'i :+1:
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
demo/inference_for_tensorflowhub.ipynb
seklinde guncelleyebiliriz dosya adiniTensorflow 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:
demo/inference_for_tensorflowhub.ipynb
seklinde guncelleyebiliriz dosya adiniTensorflow 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
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 maindeki son degisiklikleri bu branche mergeledim, lokalindeleri pushlamadan once branching guncel halini pullamayi unutma :+1:
@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 👍
@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
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
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.
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
Readme.md dosyasındaki reformatter kodu hata veriyor. Eski reformatter kodunu çalıştırdım.
SAHI + TensorFlowHub: https://github.com/kadirnar/Yolov7-SAHI/blob/main/demo/inference_for_tensorflowhub.ipynb