Google 致力于为黑人社区推动种族平等。查看具体举措

কাস্টম মডেল স্থাপন এবং পরিচালনা করুন

আপনি ফায়ারবেস কনসোল বা ফায়ারবেস অ্যাডমিন পাইথন এবং নোড.জে এসডি কে ব্যবহার করে কাস্টম মডেল এবং অটোএমএল প্রশিক্ষিত মডেলগুলি স্থাপন এবং পরিচালনা করতে পারেন। আপনি যদি কেবল কোনও মডেল স্থাপন এবং মাঝে মাঝে আপডেট করতে চান তবে ফায়ারবেস কনসোলটি ব্যবহার করা সবচেয়ে সহজ। বিল্ড পাইপলাইনগুলির সাথে একত্রীকরণ, কলাব বা জপিটার নোটবুক এবং অন্যান্য ওয়ার্কফ্লোগুলির সাথে কাজ করার সময় অ্যাডমিন এসডিকে সহায়ক হতে পারে।

ফায়ারবেস কনসোলে মডেল স্থাপন এবং পরিচালনা করুন

টেনসরফ্লো লাইট মডেল

ফায়ারবেস কনসোল ব্যবহার করে একটি টেনসরফ্লো লাইট মডেল স্থাপন করুন:

  1. খুলুন Firebase এমএল কাস্টম মডেল পৃষ্ঠা Firebase কনসোলে।
  2. ক্লিক করুন কাস্টম মডেল যোগ করুন (বা অন্য মডেল জুড়ুন)।
  3. একটি নাম যে (সাধারণত এ শেষ হওয়া আপনার Firebase প্রকল্পে আপনার মডেল শনাক্ত করতে, তারপরে আপলোড TensorFlow লাইট মডেল ফাইল ব্যবহার করা হবে তা উল্লেখ করুন .tflite বা .lite )।

আপনি আপনার মডেল মোতায়েন করার পরে, আপনি এটি কাস্টম পৃষ্ঠায় খুঁজে পেতে পারেন। সেখান থেকে, আপনি কোনও নতুন ফাইলের সাহায্যে মডেলটি আপডেট করার, মডেলটি ডাউনলোড করা এবং আপনার প্রকল্প থেকে মডেলটি মুছে ফেলার মতো কাজগুলি সম্পূর্ণ করতে পারেন।

ফায়ারবেস অ্যাডমিন এসডিকে দিয়ে মডেল স্থাপন এবং পরিচালনা করুন

এই বিভাগটি দেখায় যে আপনি কীভাবে অ্যাডমিন এসডিকে দিয়ে সাধারণ মডেল স্থাপনা এবং পরিচালনার কাজগুলি সম্পন্ন করতে পারেন। জন্য SDK এর রেফারেন্স দেখুন পাইথন বা Node.js অতিরিক্ত সাহায্যের জন্য।

ব্যবহারে SDK এর উদাহরণের জন্য, দেখুন পাইথন দ্রুতশুরু নমুনা এবং Node.js দ্রুতশুরু নমুনা

তুমি শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই একটি Firebase প্রকল্প আছে না থাকে, তাহলে একটি নতুন প্রকল্প তৈরি Firebase কনসোল । তারপরে, আপনার প্রকল্পটি খুলুন এবং নিম্নলিখিতগুলি করুন:

    1. উপর সেটিং পৃষ্ঠা, একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন এবং পরিষেবা অ্যাকাউন্ট কী ফাইল ডাউনলোড করুন। এই ফাইলটি সুরক্ষিত রাখুন, যেহেতু এটি আপনার প্রকল্পে প্রশাসকের অ্যাক্সেস দেয়।

    2. স্টোরেজ পৃষ্ঠায় ক্লাউড স্টোরেজ সক্ষম করুন। আপনার বালতি নাম নোট করুন।

      আপনার ফায়ারবেস প্রকল্পে মডেল ফাইলগুলি যুক্ত করার সময় অস্থায়ীভাবে সংরক্ষণ করার জন্য আপনার একটি ক্লাউড স্টোরেজ বালতি প্রয়োজন। আপনি যদি ব্লেজ পরিকল্পনায় থাকেন তবে আপনি এই উদ্দেশ্যে ডিফল্ট ছাড়া অন্য একটি বালতি তৈরি করতে এবং ব্যবহার করতে পারেন।

    3. Firebase এমএল পৃষ্ঠায়, ক্লিক করুন শুরু যদি আপনি এখনো Firebase এমএল সক্ষম করা আছে।

  2. ইন Google API এর কনসোল , আপনার Firebase প্রকল্পের খুলুন এবং Firebase এমএল API সক্ষম করুন।

  3. ইনস্টল করুন এবং এডমিন SDK এর আরম্ভ

    আপনি যখন এসডিকে সূচনা করবেন তখন আপনার পরিষেবা অ্যাকাউন্ট শংসাপত্র এবং ক্লাউড স্টোরেজ বালতিটি আপনি আপনার মডেলগুলি সঞ্চয় করতে ব্যবহার করতে চান তা উল্লেখ করুন:

    পাইথন

    import firebase_admin
    from firebase_admin import ml
    from firebase_admin import credentials
    
    firebase_admin.initialize_app(
      credentials.Certificate('/path/to/your/service_account_key.json'),
      options={
          'storageBucket': 'your-storage-bucket',
      })
    

    নোড.জেএস

    const admin = require('firebase-admin');
    const serviceAccount = require('/path/to/your/service_account_key.json');
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
      storageBucket: 'your-storage-bucket',
    });
    const ml = admin.machineLearning();
    

মডেল মোতায়েন করুন

টেনসরফ্লো লাইট ফাইল

কোনও মডেল ফাইল থেকে টেনসরফ্লো লাইট মডেল স্থাপন করতে, এটি আপনার প্রকল্পে আপলোড করুন এবং তারপরে এটি প্রকাশ করুন:

পাইথন

# First, import and initialize the SDK as shown above.

# Load a tflite file and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_tflite_model_file('example.tflite')

# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
    display_name="example_model",  # This is the name you use from your app to load the model.
    tags=["examples"],             # Optional tags for easier management.
    model_format=tflite_format)

# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
ml.publish_model(new_model.model_id)

নোড.জেএস

// First, import and initialize the SDK as shown above.

(async () => {
  // Upload the tflite file to Cloud Storage
  const storageBucket = admin.storage().bucket('your-storage-bucket');
  const files = await storageBucket.upload('./example.tflite');

  // Create the model object and add the model to your Firebase project.
  const bucket = files[0].metadata.bucket;
  const name = files[0].metadata.name;
  const gcsUri = `gs:/⁠/${bucket}/${name}`;
  const model = await ml.createModel({
    displayName: 'example_model',  // This is the name you use from your app to load the model.
    tags: ['examples'],  // Optional tags for easier management.
    tfliteModel: { gcsTfliteUri: gcsUri },
  });

  // Publish the model.
  await ml.publishModel(model.modelId);

  process.exit();
})().catch(console.error);

টেনসরফ্লো এবং কেরাস মডেল

পাইথন এসডিকে দিয়ে আপনি টেনসরফ্লো সেভ করা মডেল ফর্ম্যাট থেকে টেনসরফ্লো লাইটে রূপান্তর করতে পারেন এবং এটি আপনার ক্লাউড স্টোরেজ বালতিতে এক ধাপে আপলোড করতে পারেন। তারপরে, আপনি যেমন টেনসরফ্লো লাইট ফাইল স্থাপন করেন ঠিক তেমনভাবে এটি স্থাপন করুন।

পাইথন

# First, import and initialize the SDK as shown above.

# Convert the model to TensorFlow Lite and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_saved_model('./model_directory')

# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
    display_name="example_model",  # This is the name you use from your app to load the model.
    tags=["examples"],             # Optional tags for easier management.
    model_format=tflite_format)

# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
ml.publish_model(new_model.model_id)

যদি আপনার কাছে কেরাস মডেল থাকে তবে আপনি এটিকে টেনসরফ্লো লাইটে রূপান্তর করতে এবং একক পদক্ষেপে এটি আপলোড করতে পারেন। আপনি এইচডিএফ 5 ফাইলে সংরক্ষিত কেরাস মডেলটি ব্যবহার করতে পারেন:

পাইথন

import tensorflow as tf

# Load a Keras model, convert it to TensorFlow Lite, and upload it to Cloud Storage
model = tf.keras.models.load_model('your_model.h5')
source = ml.TFLiteGCSModelSource.from_keras_model(model)

# Create the model object, add the model to your project, and publish it. (See
# above.)
# ...

বা, আপনি সরাসরি আপনার প্রশিক্ষণ স্ক্রিপ্ট থেকে কেরাস মডেল রূপান্তর এবং আপলোড করতে পারেন:

পাইথন

import tensorflow as tf

# Create a simple Keras model.
x = [-1, 0, 1, 2, 3, 4]
y = [-3, -1, 1, 3, 5, 7]

model = tf.keras.models.Sequential(
    [tf.keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
model.fit(x, y, epochs=3)

# Convert the model to TensorFlow Lite and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_keras_model(model)

# Create the model object, add the model to your project, and publish it. (See
# above.)
# ...

অটোএমএল টেনসরফ্লো লাইট মডেল

আপনার সাথে একটি এজ মডেল প্রশিক্ষিত তাহলে AutoML ক্লাউড এপিআই বা Google ক্লাউড কনসোলে UI 'তে সঙ্গে, আপনি এডমিন SDK এর ব্যবহার Firebase করার মডেল প্রসারিত করতে পারেন।

আপনাকে মডেলের রিসোর্স আইডেন্টিফায়ারটি নির্দিষ্ট করতে হবে যা একটি স্ট্রিং যা নিম্নলিখিত উদাহরণের মতো দেখাচ্ছে:

projects/PROJECT_NUMBER/locations/STORAGE_LOCATION/models/MODEL_ID
PROJECT_NUMBER মডেলযুক্ত ক্লাউড স্টোরেজ বালতির প্রকল্প নম্বর। এটি আপনার ফায়ারবেস প্রকল্প বা অন্য কোনও গুগল ক্লাউড প্রকল্প হতে পারে। আপনি এই মানটি ফায়ারবেস কনসোল বা গুগল ক্লাউড কনসোল ড্যাশবোর্ডের সেটিংস পৃষ্ঠায় খুঁজে পেতে পারেন।
STORAGE_LOCATION মডেলযুক্ত ক্লাউড স্টোরেজ বালতিটির সংস্থান অবস্থান location এই মান সর্বদা us-central1
MODEL_ID মডেলটির আইডি, যা আপনি অটোএমএল ক্লাউড এপিআই থেকে পেয়েছেন।

পাইথন

# First, import and initialize the SDK as shown above.

# Get a reference to the AutoML model
source = ml.TFLiteAutoMlSource('projects/{}/locations/{}/models/{}'.format(
    # See above for information on these values.
    project_number,
    storage_location,
    model_id
))

# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
    display_name="example_model",  # This is the name you will use from your app to load the model.
    tags=["examples"],             # Optional tags for easier management.
    model_format=tflite_format)

# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
new_model.wait_for_unlocked()
ml.publish_model(new_model.model_id)

নোড.জেএস

// First, import and initialize the SDK as shown above.

(async () => {
  // Get a reference to the AutoML model. See above for information on these
  // values.
  const automlModel = `projects/${projectNumber}/locations/${storageLocation}/models/${modelId}`;

  // Create the model object and add the model to your Firebase project.
  const model = await ml.createModel({
    displayName: 'example_model',  // This is the name you use from your app to load the model.
    tags: ['examples'],  // Optional tags for easier management.
    tfliteModel: { automlModel: automlModel },
  });

  // Wait for the model to be ready.
  await model.waitForUnlocked();

  // Publish the model.
  await ml.publishModel(model.modelId);

  process.exit();
})().catch(console.error);

আপনার প্রকল্পের মডেলগুলি তালিকাভুক্ত করুন

আপনি আপনার প্রকল্পের মডেলগুলি তালিকাভুক্ত করতে পারেন, allyচ্ছিকভাবে ফলাফলগুলি ফিল্টার করে:

পাইথন

# First, import and initialize the SDK as shown above.

face_detectors = ml.list_models(list_filter="tags: face_detector").iterate_all()
print("Face detection models:")
for model in face_detectors:
  print('{} (ID: {})'.format(model.display_name, model.model_id))

নোড.জেএস

// First, import and initialize the SDK as shown above.

(async () => {
  let listOptions = {filter: 'tags: face_detector'}
  let models;
  let pageToken = null;
  do {
    if (pageToken) listOptions.pageToken = pageToken;
    ({models, pageToken} = await ml.listModels(listOptions));
    for (const model of models) {
      console.log(`${model.displayName} (ID: ${model.modelId})`);
    }
  } while (pageToken != null);

  process.exit();
})().catch(console.error);

আপনি নিম্নলিখিত ক্ষেত্রগুলি দ্বারা ফিল্টার করতে পারেন:

মাঠ উদাহরণ
display_name display_name = example_model
display_name != example_model

সঙ্গে সব প্রদর্শন নাম experimental_ উপসর্গ:

display_name : experimental_*

মনে রাখবেন যে কেবল উপসর্গের মিলটিই সমর্থিত।

tags tags: face_detector
tags: face_detector AND tags: experimental
state.published state.published = true
state.published = false

সঙ্গে ফিল্টার একত্রিত করুন AND , OR , এবং NOT অপারেটর ও প্রথম বন্ধনী ( ( , ) )।

মডেলগুলি আপডেট করুন

আপনি আপনার প্রকল্পের একটি মডেল যোগ করে থাকলে, এর প্রদর্শন নাম, ট্যাগ এবং আপডেট করতে পারেন tflite মডেল ফাইল:

পাইথন

# First, import and initialize the SDK as shown above.

model = ...   # Model object from create_model(), get_model(), or list_models()

# Update the model with a new tflite model. (You could also update with a
# `TFLiteAutoMlSource`)
source = ml.TFLiteGCSModelSource.from_tflite_model_file('example_v2.tflite')
model.model_format = ml.TFLiteFormat(model_source=source)

# Update the model's display name.
model.display_name = "example_model"

# Update the model's tags.
model.tags = ["examples", "new_models"]

# Add a new tag.
model.tags += "experimental"

# After you change the fields you want to update, save the model changes to
# Firebase and publish it.
updated_model = ml.update_model(model)
ml.publish_model(updated_model.model_id)

নোড.জেএস

// First, import and initialize the SDK as shown above.

(async () => {
  const model = ... // Model object from createModel(), getModel(), or listModels()

  // Upload a new tflite file to Cloud Storage.
  const files = await storageBucket.upload('./example_v2.tflite');
  const bucket = files[0].metadata.bucket;
  const name = files[0].metadata.name;

  // Update the model. Any fields you omit will be unchanged.
  await ml.updateModel(model.modelId, {
    displayName: 'example_model',  // Update the model's display name.
    tags: model.tags.concat(['new']),  // Add a tag.
    tfliteModel: {gcsTfliteUri: `gs:/⁠/${bucket}/${name}`},
  });

  process.exit();
})().catch(console.error);

মডেলগুলি অপ্রকাশিত বা মুছুন

কোনও মডেল অপ্রকাশিত বা মুছতে, মডেল আইডি অপ্রকাশিত বা মুছে ফেলা পদ্ধতিগুলিতে পাস করুন। আপনি যখন কোনও মডেল প্রকাশ করেন না, এটি আপনার প্রকল্পে থেকে যায় তবে আপনার অ্যাপ্লিকেশনগুলি ডাউনলোড করার জন্য এটি উপলব্ধ থাকে না। আপনি যখন কোনও মডেল মুছবেন, এটি আপনার প্রকল্প থেকে সম্পূর্ণ সরিয়ে দেওয়া হবে। (কোনও মডেল প্রকাশনা কোনও স্ট্যান্ডার্ড ওয়ার্কফ্লোতে প্রত্যাশিত নয়, তবে আপনি দুর্ঘটনাক্রমে প্রকাশিত নতুন মডেলটি অবিলম্বে প্রকাশের জন্য এটি ব্যবহার করতে পারেন এবং এখনও কোথাও ব্যবহার করা হয়নি, বা ব্যবহারকারীদের পক্ষে "খারাপ" ডাউনলোড করা আরও খারাপ এমন ক্ষেত্রে you মডেল-পাওয়া-পাওয়া ত্রুটিগুলি পেতে চেয়ে মডেল।)

যদি এখনও আপনার কাছে মডেল অবজেক্টের কোনও রেফারেন্স না থাকে তবে আপনার প্রোজেক্টের মডেলগুলি ফিল্টার দিয়ে তালিকাভুক্ত করে আপনার সম্ভবত মডেল আইডি নেওয়া দরকার। উদাহরণস্বরূপ, "face_detector" ট্যাগযুক্ত সমস্ত মডেল মুছতে:

পাইথন

# First, import and initialize the SDK as shown above.

face_detectors = ml.list_models(list_filter="tags: 'face_detector'").iterate_all()
for model in face_detectors:
  ml.delete_model(model.model_id)

নোড.জেএস

// First, import and initialize the SDK as shown above.

(async () => {
  let listOptions = {filter: 'tags: face_detector'}
  let models;
  let pageToken = null;
  do {
    if (pageToken) listOptions.pageToken = pageToken;
    ({models, pageToken} = await ml.listModels(listOptions));
    for (const model of models) {
      await ml.deleteModel(model.modelId);
    }
  } while (pageToken != null);

  process.exit();
})().catch(console.error);