টেনসরফ্লো.জেএসসে একটি টেনসরফ্লো গ্রাফডেফ ভিত্তিক মডেলগুলি আমদানি করা হচ্ছে

TensorFlow GraphDef ভিত্তিক মডেলগুলি (সাধারণত Python API এর মাধ্যমে তৈরি) নিম্নলিখিত ফর্ম্যাটে সংরক্ষিত হতে পারে:

  1. TensorFlow SavedModel
  2. হিমায়িত মডেল
  3. টেনসরফ্লো হাব মডিউল

উপরে ফরম্যাটের সব পরিবর্তিত করা যায় TensorFlow.js রূপান্তরকারী বিন্যাসে সরাসরি অনুমান জন্য TensorFlow.js মধ্যে লোড করা যাবে মধ্যে।

(দ্রষ্টব্য: TensorFlow সেশন বান্ডেল বিন্যাসকে অবমূল্যায়ন করেছে, অনুগ্রহ করে আপনার মডেলগুলিকে SavedModel বিন্যাসে স্থানান্তর করুন।)

প্রয়োজনীয়তা

রূপান্তর পদ্ধতির জন্য একটি পাইথন পরিবেশ প্রয়োজন; আপনি ব্যবহার একটি বিচ্ছিন্ন এক রাখতে চান হতে পারে pipenv বা virtualenv । কনভার্টার ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:

 pip install tensorflowjs

TensorFlow.js-এ একটি TensorFlow মডেল আমদানি করা একটি দ্বি-পদক্ষেপ প্রক্রিয়া। প্রথমে, একটি বিদ্যমান মডেলকে TensorFlow.js ওয়েব ফর্ম্যাটে রূপান্তর করুন এবং তারপরে এটিকে TensorFlow.js-এ লোড করুন।

ধাপ 1. একটি বিদ্যমান TensorFlow মডেলকে TensorFlow.js ওয়েব ফর্ম্যাটে রূপান্তর করুন

পিপ প্যাকেজ দ্বারা প্রদত্ত রূপান্তরকারী স্ক্রিপ্টটি চালান:

ব্যবহার: সংরক্ষিত মডেল উদাহরণ:

tensorflowjs_converter \
    --input_format=tf_saved_model \
    --output_node_names='MobilenetV1/Predictions/Reshape_1' \
    --saved_model_tags=serve \
    /mobilenet/saved_model \
    /mobilenet/web_model

হিমায়িত মডেল উদাহরণ:

tensorflowjs_converter \
    --input_format=tf_frozen_model \
    --output_node_names='MobilenetV1/Predictions/Reshape_1' \
    /mobilenet/frozen_model.pb \
    /mobilenet/web_model

টেনসরফ্লো হাব মডিউল উদাহরণ:

tensorflowjs_converter \
    --input_format=tf_hub \
    'https://hub.tensorflow.google.cn/google/imagenet/mobilenet_v1_100_224/classification/1' \
    /mobilenet/web_model
অবস্থানগত যুক্তি বর্ণনা
input_path সংরক্ষিত মডেল ডিরেক্টরি, সেশন বান্ডেল ডিরেক্টরি, হিমায়িত মডেল ফাইল বা TensorFlow হাব মডিউল হ্যান্ডেল বা পথের সম্পূর্ণ পথ।
output_path সমস্ত আউটপুট শিল্পকর্মের জন্য পথ।
অপশন বর্ণনা
--input_format ইনপুট মডেলের ফর্ম্যাট, SavedModel-এর জন্য tf_saved_model, হিমায়িত মডেলের জন্য tf_frozen_model, সেশন বান্ডেলের জন্য tf_session_bundle, TensorFlow হাব মডিউলের জন্য tf_hub এবং Keras HDF5-এর জন্য keras ব্যবহার করুন।
--output_node_names আউটপুট নোডের নাম, কমা দ্বারা বিভক্ত।
--saved_model_tags শুধুমাত্র SavedModel রূপান্তরের জন্য প্রযোজ্য, লোড করার জন্য MetaGraphDef-এর ট্যাগ, কমা বিভক্ত বিন্যাসে। ডিফল্টে serve
--signature_name শুধুমাত্র TensorFlow হাব মডিউল রূপান্তরের জন্য প্রযোজ্য, লোড করার জন্য স্বাক্ষর। ডিফল্টে default । দেখুন https://www.tensorflow.org/hub/common_signatures/

একটি বিস্তারিত সাহায্য বার্তা পেতে নিম্নলিখিত কমান্ড ব্যবহার করুন:

tensorflowjs_converter --help

কনভার্টার জেনারেটেড ফাইল

উপরের রূপান্তর স্ক্রিপ্ট দুটি ধরনের ফাইল তৈরি করে:

  • model.json (dataflow গ্রাফ এবং ওজন স্পষ্ট)
  • group1-shard\*of\* (বাইনারি ওজন ফাইল সংগ্রহ)

উদাহরণস্বরূপ, এখানে MobileNet v2 রূপান্তর থেকে আউটপুট:

  output_directory/model.json
  output_directory/group1-shard1of5
  ...
  output_directory/group1-shard5of5

ধাপ 2: লোড হচ্ছে এবং ব্রাউজারে চলছে

  1. tfjs-converter npm প্যাকেজ ইনস্টল করুন

yarn add @tensorflow/tfjs বা npm install @tensorflow/tfjs

  1. Instantiate FrozenModel বর্গ এবং চালানোর অনুমান।
import * as tf from '@tensorflow/tfjs';
import {loadGraphModel} from '@tensorflow/tfjs-converter';

const MODEL_URL = 'model_directory/model.json';

const model = await loadGraphModel(MODEL_URL);
const cat = document.getElementById('cat');
model.execute(tf.browser.fromPixels(cat));

আমাদের পরীক্ষা করে দেখুন MobileNet ডেমো

loadGraphModel এপিআই একটি অতিরিক্ত গ্রহণ LoadOptions পরামিতি, যা অনুরোধ সহ পরিচয়পত্র বা কাস্টম হেডার পাঠাতে ব্যবহার করা যেতে পারে। দয়া করে দেখুন loadGraphModel () ডকুমেন্টেশন আরো বিস্তারিত জানার জন্য।

সমর্থিত অপারেশন

বর্তমানে TensorFlow.js একটি সীমিত সেট TensorFlow অপ্স সমর্থন করে। আপনার মডেল একটি অসমর্থিত অপ ব্যবহার করে, tensorflowjs_converter স্ক্রিপ্ট ব্যর্থ এবং আপনার মডেল অসমর্থিত অপস একটি তালিকা প্রিন্ট আউট হবে। একটি ফাইল করুন ইস্যু আমাদের জানান আপনি কোন অপস তোমার জন্য সহায়তা প্রয়োজন দিন প্রতিটি অপ জন্য।

শুধুমাত্র ওজন লোড হচ্ছে

আপনি যদি শুধুমাত্র ওজন লোড করতে পছন্দ করেন তবে আপনি নিম্নলিখিত কোড স্নিপেট ব্যবহার করতে পারেন।

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

const weightManifestUrl = "https://example.org/model/weights_manifest.json";

const manifest = await fetch(weightManifestUrl);
this.weightManifest = await manifest.json();
const weightMap = await tf.io.loadWeights(
        this.weightManifest, "https://example.org/model");