Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ปรับใช้และจัดการโมเดลที่กำหนดเอง

คุณสามารถปรับใช้และจัดการแบบจำลองที่กำหนดเองโดยใช้คอนโซล Firebase หรือ Firebase Admin Python และ Node.js SDK หากคุณต้องการปรับใช้โมเดลและอัปเดตบางครั้งก็มักจะง่ายที่สุดในการใช้คอนโซล Firebase Admin SDK จะมีประโยชน์เมื่อรวมกับไพพ์ไลน์การทำงานกับ Colab หรือ Jupyter โน้ตบุ๊กและเวิร์กโฟลว์อื่น ๆ

ปรับใช้และจัดการแบบจำลองในคอนโซล Firebase

ในการปรับใช้โมเดล TensorFlow Lite โดยใช้คอนโซล Firebase:

  1. เปิด หน้าโมเดลรุ่น Firebase ML Custom ในคอนโซล Firebase
  2. คลิก เพิ่มรุ่นที่กำหนดเอง (หรือ เพิ่มรุ่นอื่น )
  3. ระบุชื่อที่จะใช้ในการระบุโมเดลของคุณในโครงการ Firebase ของคุณจากนั้นอัปโหลดไฟล์โมเดล TensorFlow Lite (มักจะลงท้ายด้วย. .tflite หรือ. .lite )

หลังจากที่คุณปรับใช้โมเดลของคุณคุณสามารถค้นหาได้ในหน้ากำหนดเอง จากตรงนั้นคุณสามารถทำงานให้เสร็จสมบูรณ์เช่นอัปเดตโมเดลด้วยไฟล์ใหม่ดาวน์โหลดโมเดลและลบโมเดลออกจากโครงการของคุณ

ปรับใช้และจัดการโมเดลด้วย Firebase Admin SDK

ส่วนนี้แสดงวิธีที่คุณสามารถทำการปรับใช้โมเดลทั่วไปและงานการจัดการด้วย Admin SDK ดูการอ้างอิง SDK สำหรับ Python หรือ Node.js สำหรับความช่วยเหลือเพิ่มเติม

สำหรับตัวอย่างของ SDK ที่ใช้งานดู ตัวอย่าง Python quickstart และ Node.js quickstart sample

ก่อนที่จะเริ่ม

  1. หากคุณยังไม่มีโครงการ Firebase ให้สร้างโครงการใหม่ใน คอนโซล Firebase จากนั้นเปิดโครงการของคุณและทำสิ่งต่อไปนี้:

    1. ในหน้า การตั้งค่า ให้สร้างบัญชีบริการและดาวน์โหลดไฟล์รหัสบัญชีบริการ รักษาไฟล์นี้ให้ปลอดภัยเนื่องจากจะให้สิทธิ์การเข้าถึงแก่ผู้ดูแลระบบในโครงการของคุณ

    2. บนหน้าการจัดเก็บเปิดใช้งานการจัดเก็บเมฆ จดชื่อถังของคุณ

      คุณต้องมีที่ฝากข้อมูล Storage เพื่อเก็บไฟล์โมเดลชั่วคราวในขณะที่เพิ่มลงในโครงการ Firebase ของคุณ หากคุณอยู่ในแผน Blaze คุณสามารถสร้างและใช้ที่ฝากข้อมูลอื่นนอกเหนือจากค่าเริ่มต้นสำหรับวัตถุประสงค์นี้

    3. ในหน้า Firebase ML ให้คลิก เริ่มต้นใช้งาน ถ้าคุณยังไม่ได้เปิดใช้งาน Firebase ML

  2. ใน คอนโซล Google API เปิดโครงการ Firebase ของคุณและเปิดใช้งาน Firebase ML API

  3. ติดตั้งและเริ่มต้น SDK ผู้ดูแลระบบ

    เมื่อคุณเริ่มต้น SDK ให้ระบุข้อมูลรับรองบัญชีบริการของคุณและที่ฝากข้อมูล Storage ที่คุณต้องการใช้ในการจัดเก็บแบบจำลองของคุณ:

    หลาม

     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',
      })
     

    Node.js

     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();
     

ปรับใช้โมเดล

ในการปรับใช้โมเดล TensorFlow Lite ให้อัปโหลดไปยังโครงการของคุณแล้วเผยแพร่:

หลาม

 # 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)
 

หากโมเดลของคุณอยู่ในรูปแบบโมเดล TensorFlow ที่บันทึกไว้คุณสามารถแปลงเป็น TensorFlow Lite และอัปโหลดไปยังที่เก็บข้อมูล Cloud ของคุณได้ในขั้นตอนเดียว:

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

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

หากคุณมีโมเดล Keras คุณสามารถแปลงเป็น TensorFlow Lite และอัปโหลดได้ในขั้นตอนเดียว คุณสามารถใช้โมเดล Keras ที่บันทึกไว้ในไฟล์ HDF5:

 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.)
# ...
 

หรือคุณสามารถแปลงและอัปโหลดโมเดล Keras ได้โดยตรงจากสคริปต์การฝึกอบรมของคุณ:

 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.)
# ...
 

Node.js

 // 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.

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))
 

Node.js

 // 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.
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)
 

Node.js

 // 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);
 

ยกเลิกการเผยแพร่หรือลบแบบจำลอง

หากต้องการยกเลิกการเผยแพร่หรือลบแบบจำลองให้ส่งรหัสรุ่นไปยังวิธีการยกเลิกการเผยแพร่หรือลบ เมื่อคุณยกเลิกการเผยแพร่แบบจำลองแบบนั้นจะยังคงอยู่ในโครงการของคุณ แต่ไม่สามารถดาวน์โหลดแอพของคุณได้ เมื่อคุณลบแบบจำลองแบบจำลองนั้นจะถูกลบออกจากโครงการของคุณโดยสมบูรณ์ (การไม่เผยแพร่รุ่นไม่คาดว่าจะอยู่ในเวิร์กโฟลว์มาตรฐาน แต่คุณสามารถใช้เพื่อยกเลิกการเผยแพร่รุ่นใหม่ทันทีที่คุณตั้งใจเผยแพร่และยังไม่ได้ใช้งานที่ไหนหรือในกรณีที่แย่กว่าสำหรับผู้ใช้ที่ดาวน์โหลด "ไม่ดี" แบบจำลองมากกว่าที่จะรับข้อผิดพลาดที่ไม่พบโมเดล)

หากคุณยังไม่มีการอ้างอิงถึงออบเจ็กต์โมเดลคุณอาจต้องรับ ID โมเดลโดยการระบุโมเดลของโปรเจ็กต์ของคุณด้วยตัวกรอง ตัวอย่างเช่นหากต้องการลบแบบจำลองทั้งหมดที่ติดแท็ก "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)
 

Node.js

 // 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);