(Tipik Python API ile oluşturulan) Keras modelleri kaydedilmiş olabilir birkaç biçimlerden birinde . "Tüm model" formatı, çıkarım veya ileri eğitim için doğrudan TensorFlow.js'ye yüklenebilen TensorFlow.js Katmanları formatına dönüştürülebilir.
Hedef TensorFlow.js Katmanlar biçimi içeren bir dizindir model.json
dosyası ve ikili formatta kanatlı bir ağırlık dosyaları kümesi. model.json
ve ağırlık dosyaları bildirim: Dosya modeli topolojisi (nasıl bağlandıklarını tabakaların bir tanımını ve diğer adıyla "yapı" ya da "grafiği") her ikisini de içerir.
Gereksinimler
Dönüştürme prosedürü bir Python ortamı gerektirir; Kullandığınız bir izole birini tutmak isteyebilirsiniz pipenv veya VIRTUALENV . Dönüştürücü yüklemek için, kullanım pip install tensorflowjs
.
Bir Keras modelini TensorFlow.js'ye içe aktarmak iki adımlı bir işlemdir. İlk olarak, mevcut bir Keras modelini TF.js Layers formatına dönüştürün ve ardından onu TensorFlow.js'ye yükleyin.
Adım 1. Mevcut bir Keras modelini TF.js Katmanları formatına dönüştürün
Keras modeller genellikle ile kaydedilir model.save(filepath)
modeli topolojisi ve ağırlıkları hem de ihtiva eden tek bir HDF5 (.h5) dosyası üretir. TF.js Katmanlar biçimine böyle bir dosyayı dönüştürmek için aşağıdaki komutu çalıştırın path/to/my_model.h5
kaynak keras .h5 dosyası ve bir path/to/tfjs_target_dir
TF.js dosyalar için hedef çıkış dizini:
# bash
tensorflowjs_converter --input_format keras \
path/to/my_model.h5 \
path/to/tfjs_target_dir
Alternatif: Doğrudan TF.js Katmanları biçimine dışa aktarmak için Python API'sini kullanın
Python'da bir Keras modeliniz varsa, onu doğrudan aşağıdaki gibi TensorFlow.js Katmanları formatına aktarabilirsiniz:
# Python
import tensorflowjs as tfjs
def train(...):
model = keras.models.Sequential() # for example
...
model.compile(...)
model.fit(...)
tfjs.converters.save_keras_model(model, tfjs_target_dir)
2. Adım: Modeli TensorFlow.js'ye yükleyin
Eğer şekilde yapılandırın gerekebileceğini Adım 1. Not oluşturulan dönüştürülmüş modeli dosyalarını sunmak için bir web sunucusu kullanın Çapraz Kökenli Kaynak Paylaşımı (CORS) izin JavaScript dosya alınması sağlamak için,.
Ardından, model.json dosyasının URL'sini sağlayarak modeli TensorFlow.js'ye yükleyin:
// JavaScript
import * as tf from '@tensorflow/tfjs';
const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json');
Artık model çıkarım, değerlendirme veya yeniden eğitim için hazırdır. Örneğin, yüklenen model hemen bir tahmin yapmak için kullanılabilir:
// JavaScript
const example = tf.fromPixels(webcamElement); // for example
const prediction = model.predict(example);
Birçok TensorFlow.js Örnekler dönüştürülür ile Google Cloud Storage barındırılan edilmiştir pretrained modellerini kullanarak, bu yaklaşım.
Not kullandığınız tüm modele ait olduğunu model.json
dosya adını. loadModel(...)
getirir model.json
ve sonra başvurulan kanatlı bir ağırlık dosyalarını edinmek için ek HTTP (S) istekleri yapar model.json
ağırlık manifest'te. Çünkü bu yaklaşım, bütün bu dosyalar tarayıcı tarafından önbelleğe (ve belki de internet üzerinden ek önbelleğe alma sunucuları tarafından) izin verir model.json
ve ağırlık kırıkları tipik önbellek dosya boyutu sınırından daha her küçüktür. Bu nedenle, bir modelin sonraki durumlarda daha hızlı yüklenmesi muhtemeldir.
Desteklenen özellikler
TensorFlow.js Katmanları şu anda yalnızca standart Keras yapılarını kullanan Keras modellerini desteklemektedir. Desteklenmeyen işlemler veya katmanlar (ör. özel katmanlar, Lambda katmanları, özel kayıplar veya özel ölçümler) kullanan modeller, JavaScript'e güvenilir bir şekilde çevrilemeyen Python koduna bağlı olduklarından otomatik olarak içe aktarılamaz.