ML Topluluk Günü 9 Kasım! TensorFlow, JAX güncellemeler için bize katılın ve daha fazla bilgi edinin

Bir Keras modelini TensorFlow.js'ye aktarma

Keras modelleri (genellikle Python API aracılığıyla oluşturulur) birkaç formattan birinde kaydedilebilir. "Tüm model" biçimi, çıkarım veya daha fazla eğitim için doğrudan TensorFlow.js'ye yüklenebilen TensorFlow.js Katmanları biçimine dönüştürülebilir.

Hedef TensorFlow.js Katmanları biçimi, bir model.json dosyası ve ikili biçimde model.json ağırlık dosyaları kümesini içeren bir model.json . model.json dosyası hem model topolojisini ("mimari" veya "grafik" olarak da bilinir: katmanların bir açıklaması ve nasıl bağlandıkları) hem de ağırlık dosyalarının bir bildirimini içerir.

Gereksinimler

Dönüştürme prosedürü bir Python ortamı gerektirir; pipenv veya virtualenv kullanarak izole bir tane tutmak isteyebilirsiniz. Dönüştürücüyü kurmak için pip install tensorflowjs kullanın.

Bir Keras modelini TensorFlow.js'ye aktarmak iki adımlı bir işlemdir. Öncelikle, mevcut bir Keras modelini TF.js Katmanları biçimine dönüştürün ve ardından bunu TensorFlow.js'ye yükleyin.

Adım 1. Mevcut bir Keras modelini TF.js Katmanları biçimine dönüştürün

model.save(filepath) modelleri genellikle hem model topolojisini hem de ağırlıkları içeren tek bir HDF5 (.h5) dosyası oluşturan model.save (dosya model.save(filepath) aracılığıyla kaydedilir. Böyle bir dosyayı TF.js Katmanları biçimine dönüştürmek için aşağıdaki komutu çalıştırın; burada path/to/my_model.h5 , kaynak Keras .h5 dosyası ve path/to/tfjs_target_dir , TF.js dosyaları için hedef çıktı dizinidir:

# 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'yi kullanın

Python'da bir Keras modeliniz varsa, bunu doğrudan TensorFlow.js Katmanlar biçimine aşağıdaki gibi dışa 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

1. Adımda oluşturduğunuz dönüştürülmüş model dosyalarını sunmak için bir web sunucusu kullanın. Dosyaların JavaScript'te alınmasına izin vermek için sunucunuzu Kökenler Arası Kaynak Paylaşımına (CORS) izin verecek şekilde yapılandırmanız gerekebileceğini unutmayın.

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 bir tahmin yapmak için hemen kullanılabilir:

// JavaScript

const example = tf.fromPixels(webcamElement);  // for example
const prediction = model.predict(example);

TensorFlow.js Örneklerinin çoğu, Google Cloud Storage'da dönüştürülmüş ve barındırılmış önceden eğitilmiş modelleri kullanarak bu yaklaşımı benimser.

model.json dosya model.json kullanarak tüm modele model.json . loadModel(...) , model.json getirir ve ardından model.json ağırlık bildiriminde belirtilen model.json ağırlık dosyalarını almak için ek HTTP (S) isteklerinde bulunur. Bu yaklaşım, tüm bu dosyaların tarayıcı tarafından (ve belki de internetteki ek önbellek sunucuları tarafından) önbelleğe alınmasına izin verir, çünkü model.json ve ağırlık parçalarının her biri tipik önbellek dosyası boyut sınırından daha 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 operasyonlar 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ı için otomatik olarak içe aktarılamaz.