TensorFlow.js . में एक Keras मॉडल आयात करना

Keras मॉडल (आमतौर पर अजगर API द्वारा बनाया) में बचाया जा सकता है कई स्वरूपों में से एक । "संपूर्ण मॉडल" प्रारूप को TensorFlow.js Layers प्रारूप में परिवर्तित किया जा सकता है, जिसे अनुमान के लिए या आगे के प्रशिक्षण के लिए सीधे TensorFlow.js में लोड किया जा सकता है।

लक्ष्य TensorFlow.js परतें प्रारूप एक से युक्त एक निर्देशिका है model.json फ़ाइल और बाइनरी फार्मेट में sharded वजन फ़ाइलों का सेट। model.json और वजन फ़ाइलों की एक प्रकट: फ़ाइल दोनों मॉडल टोपोलॉजी (परतों का एक विवरण और कैसे वे जुड़े हुए हैं उर्फ "वास्तुकला" या "ग्राफ") शामिल हैं।

आवश्यकताएं

रूपांतरण प्रक्रिया के लिए एक पायथन वातावरण की आवश्यकता होती है; आप उपयोग कर एक अलग से एक रखने के लिए चाहते हो सकता है pipenv या virtualenv । कनवर्टर स्थापित करने के लिए उपयोग pip install tensorflowjs

TensorFlow.js में Keras मॉडल आयात करना दो चरणों वाली प्रक्रिया है। सबसे पहले, किसी मौजूदा Keras मॉडल को TF.js Layers फ़ॉर्मेट में बदलें, और फिर इसे TensorFlow.js में लोड करें।

चरण 1. एक मौजूदा केरस मॉडल को TF.js परत प्रारूप में बदलें

Keras मॉडल आमतौर पर के माध्यम से सहेजे जाते हैं model.save(filepath) , जो एक एकल HDF5 (.h5) दोनों मॉडल टोपोलॉजी और वजन युक्त फ़ाइल पैदा करता है। TF.js परतें प्रारूप करने के लिए इस तरह के एक फ़ाइल को रूपांतरित करने के लिए, निम्न आदेश, जहां चलाने path/to/my_model.h5 स्रोत Keras .h5 फ़ाइल और है path/to/tfjs_target_dir TF.js फ़ाइलों के लिए लक्ष्य उत्पादन निर्देशिका है:

# bash

tensorflowjs_converter --input_format keras \
                       path/to/my_model.h5 \
                       path/to/tfjs_target_dir

वैकल्पिक: TF.js Layers फ़ॉर्मेट में सीधे निर्यात करने के लिए Python API का उपयोग करें

यदि आपके पास Python में एक Keras मॉडल है, तो आप इसे सीधे TensorFlow.js Layers फ़ॉर्मेट में निम्नानुसार निर्यात कर सकते हैं:

# 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: मॉडल को TensorFlow.js में लोड करें

एक वेब सर्वर का उपयोग परिवर्तित मॉडल फ़ाइलें आप में चरण 1. नोट आप करने के लिए अपने सर्वर को कॉन्फ़िगर करने की आवश्यकता हो सकती है कि उत्पन्न की सेवा के लिए क्रॉस-उत्पत्ति रिसोर्स शेयरिंग (CORS) की अनुमति देने के क्रम में जावास्क्रिप्ट में फ़ाइलें ला अनुमति देने के लिए।

फिर model.json फ़ाइल का URL प्रदान करके मॉडल को TensorFlow.js में लोड करें:

// JavaScript

import * as tf from '@tensorflow/tfjs';

const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json');

अब मॉडल अनुमान, मूल्यांकन या पुन: प्रशिक्षण के लिए तैयार है। उदाहरण के लिए, भविष्यवाणी करने के लिए लोड किए गए मॉडल का तुरंत उपयोग किया जा सकता है:

// JavaScript

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

से कई TensorFlow.js उदाहरण यह तरीका अपनाते हैं, pretrained मॉडल बदल दिया गया है और Google क्लाउड संग्रहण पर होस्ट का उपयोग करते हुए।

ध्यान दें कि आप का उपयोग कर पूरे मॉडल का उल्लेख model.json फ़ाइल नाम। loadModel(...) को हासिल करेगा model.json , और उसके बाद में संदर्भित sharded वजन फ़ाइलें प्राप्त करने के अतिरिक्त HTTP (एस) अनुरोध करता model.json वजन प्रकट। यह दृष्टिकोण, इन फ़ाइलों के सभी (और शायद इंटरनेट पर अतिरिक्त कैशिंग सर्वर द्वारा) ब्राउज़र द्वारा संचित किया जा करने की अनुमति देता है क्योंकि model.json और वजन के टुकड़े ठेठ कैश फ़ाइल आकार सीमा से प्रत्येक छोटे होते हैं। इस प्रकार एक मॉडल के बाद के अवसरों पर अधिक तेज़ी से लोड होने की संभावना है।

समर्थित विशेषताएं

TensorFlow.js Layers वर्तमान में केवल Keras मॉडल का समर्थन करता है जो मानक Keras निर्माणों का उपयोग करता है। असमर्थित ऑप्स या लेयर्स का उपयोग करने वाले मॉडल—जैसे कस्टम लेयर्स, लैम्ब्डा लेयर्स, कस्टम लॉस, या कस्टम मेट्रिक्स—स्वचालित रूप से आयात नहीं किए जा सकते, क्योंकि वे पायथन कोड पर निर्भर करते हैं जिनका जावास्क्रिप्ट में विश्वसनीय रूप से अनुवाद नहीं किया जा सकता है।