2016-04-08 51 views
6

Eğitimli bir Tensorflow modelim var ve REST API ile tahmin yöntemini sunmak istiyorum. Düşünebildiğim şey, JSON'ı girdi olarak alan basit bir REST API'sı oluşturmak için Flask'ı kullanmak ve ardından Tensorflow'da tahmin yöntemini çağırmak ve sonra tahmini sonucu istemci tarafına döndürmektir.Flask kullanarak REST API ile eğitimli Tensorflow modelini sunun mu?

Özellikle üretim ortamında bu şekilde yapmak için herhangi bir endişe olduğunu bilmek ister misiniz?

Çok teşekkürler!

+0

Herhangi bir başarınız var mı? Dört gözle bekliyorum. –

cevap

2

Aklıma gelen ilk sorun performanstır.

TensorFlow ekibi, sunucu/istemci kullanımı üzerinde çalışmış gibi görünüyor. tensorflow serving'a bakmak isteyebilirsiniz. Varsayılan olarak iletişim protokolü için gRPC'yi kullanır.

+1

Katılıyorum ama ne kadar acı çektiğimizi biliyor musun? Modelleri geri yükledikten ve bunları flask sunucusunda yeniden kullandıktan sonra, belki de çok fazla acı çekmez. –

+0

@SungKim Gerçekten de flask kullanmayı mı tercih edersiniz? – user1515940

0

Flask + TensorFlow hizmetini iş başında kullanıyoruz. Bizim düzenimiz, modellere hizmet etmenin en uygun yolu olmayabilir, ancak işi hallediyor ve bu bizim için iyi çalışıyor.

  1. tfserving inşa etmek sonsuza kadar sürer Çünkü

    , bir liman işçisi görüntüsünü inşa (değil GPU desteği ya da bir şey, ama sadece bir model sunumu için çalışır ve daha hızlı ve daha iyi hizmet daha var:

    kurulum şudur doğrudan büyük bir Python/Flask monolit içinde). Model sunucu görüntüsü şu adreste bulunabilir:

  2. Daha sonra Flask bir API kurmak için kullanılır. Model sunucusuna istek göndermek için bir grcp tahmin istemcisine ihtiyacımız var, bu yüzden Python'da bir tanesini doğrudan API API'sine (https://github.com/epigramai/tfserving_predict_client/) aktaracağız.

Buradaki iyi şey, modelin Flask API uygulaması tarafından sunulmamasıdır. Docker görüntü modeli sunucusu, docker kabı yerine, makine donanımı için derlenmiş bir GPU üzerinde çalışan bir model sunucusu ile kolayca değiştirilebilir.

+0

Bu kurulumda gördüğünüz çıkarım zamanları hakkında bir şey söyleyebilir misiniz? (ve aynı zamanda flask API'sinin ek yükü ne ekler) – Mark

+0

Kullanım örneğimiz için iyi çalışıyor, ancak çok fazla talep almıyoruz, bu nedenle, api isteklerini sonuç çıkarmadan önce harmanlamak, kullanım durumumuzda "olması gerekir" değildir. Bu kurulumun, model sunucusuna istek göndermede yükümlü ve benzer şekilde, aynı monolitte tensorflow ve flask kullanarak modellerin belleğe yüklenmesi kadar hızlı olduğunu söyleyebilirim. Bu kurulumu faydalı buluyoruz çünkü tensorflow karmaşıklığını python flask uygulamasından kaldırabiliriz. Çok fazla test yapmadık ve çıkarım zamanını karşılaştırdık, bizim için temel avantaj endişelerin ayrılmasıdır. – stianlp