Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Deploy TensorFlow models to production environments using SavedModel format, TensorFlow Lite for mobile and edge devices, quantization techniques, and serving infrastructure. This skill covers model export, optimization, conversion, and deployment strategies.
SavedModel Export
Basic SavedModel Export
# Save model to TensorFlow SavedModel format
model.save('path/to/saved_model')
# Load SavedModel
loaded_model = tf.keras.models.load_model('path/to/saved_model')
# Make predictions with loaded model
predictions = loaded_model.predict(test_data)
Create Serving Model
# Create serving model from classifier
serving_model = classifier.create_serving_model()
# Inspect model inputs and outputsprint(f'Model\'s input shape and type: ')
()
serving_model.save()
{serving_model.inputs}
print
f'Model\'s output shape and type: {serving_model.outputs}'
defexport_saved_model(
model: tf.keras.Model,
saved_model_dir: str,
batch_size: Optional[int] = None,
pre_mode: Optional[str] = 'infer',
post_mode: Optional[str] = 'global') -> None:
"""Export EfficientDet model to SavedModel format.
Args:
model: The EfficientDetNet model used for training
saved_model_dir: Folder path for saved model
batch_size: Batch size to be saved in saved_model
pre_mode: Pre-processing mode ('infer' or None)
post_mode: Post-processing mode ('global', 'per_class', 'tflite', or None)
"""# Implementation exports model with specified configuration
tf.saved_model.save(model, saved_model_dir)
Complete Export Pipeline
# Export model with all formats
export_saved_model(
model=my_keras_model,
saved_model_dir="./saved_model_export",
batch_size=1,
pre_mode='infer',
post_mode='global'
)
# Convert to TFLite
converter = tf.lite.TFLiteConverter.from_saved_model('./saved_model_export')
tflite_model = converter.convert()
# Save TFLite modelwithopen('efficientdet.tflite', 'wb') as f:
f.write(tflite_model)
Mobile Deployment
Deploy to Android
# Push TFLite model to Android device
adb push mobilenet_quant_v1_224.tflite /data/local/tmp
# Run benchmark on device
adb shell /data/local/tmp/benchmark_model \
--graph=/data/local/tmp/mobilenet_quant_v1_224.tflite \
--num_threads=4
TFLite Interpreter Usage
# Load TFLite model and allocate tensors
interpreter = tf.lite.Interpreter(model_path='model.tflite')
interpreter.allocate_tensors()
# Get input and output details
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Prepare input data
input_shape = input_details[0]['shape']
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
# Run inference
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
# Get predictions
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
Distributed Training and Serving
MirroredStrategy for Multi-GPU
# Create the strategy instance. It will automatically detect all the GPUs.
mirrored_strategy = tf.distribute.MirroredStrategy()
# Create and compile the keras model under strategy.scope()with mirrored_strategy.scope():
model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])
model.compile(loss='mse', optimizer='sgd')
# Call model.fit and model.evaluate as before.
dataset = tf.data.Dataset.from_tensors(([1.], [1.])).repeat(100).batch(10)
model.fit(dataset, epochs=2)
model.evaluate(dataset)
# Save distributed model
model.save('distributed_model')
TPU Variable Optimization
# Optimized TPU variable reformatting in MLIR# Before optimization:
var0 = ...
var1 = ...
tf.while_loop(..., var0, var1) {
tf_device.replicate([var0, var1] as rvar) {
compile = tf._TPUCompileMlir()
tf.TPUExecuteAndUpdateVariablesOp(rvar, compile)
}
}
# After optimization with state variables:
var0 = ...
var1 = ...
state_var0 = ...
state_var1 = ...
tf.while_loop(..., var0, var1, state_var0, state_var1) {
tf_device.replicate(
[var0, var1] as rvar,
[state_var0, state_var1] as rstate
) {
compile = tf._TPUCompileMlir()
tf.TPUReshardVariablesOp(rvar, compile, rstate)
tf.TPUExecuteAndUpdateVariablesOp(rvar, compile)
}
}
Model Serving with TensorFlow Serving
Export for TensorFlow Serving
# Export model with version number
export_path = os.path.join('serving_models', 'my_model', '1')
tf.saved_model.save(model, export_path)
# Export multiple versionsfor version in [1, 2, 3]:
export_path = os.path.join('serving_models', 'my_model', str(version))
tf.saved_model.save(model, export_path)
Docker Deployment
# Pull TensorFlow Serving image
docker pull tensorflow/serving
# Run TensorFlow Serving container
docker run -p 8501:8501 \
--mount type=bind,source=/path/to/my_model,target=/models/my_model \
-e MODEL_NAME=my_model \
-t tensorflow/serving
# Test REST API
curl -d '{"instances": [[1.0, 2.0, 3.0, 4.0]]}' \
-X POST http://localhost:8501/v1/models/my_model:predict
Model Validation and Testing
Validate TFLite Model
# Compare TFLite predictions with original modeldefvalidate_tflite_model(model, tflite_model_path, test_data):
"""Validate TFLite model against original."""# Original model predictions
original_predictions = model.predict(test_data)
# TFLite model predictions
interpreter = tf.lite.Interpreter(model_path=tflite_model_path)
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
tflite_predictions = []
for sample in test_data:
interpreter.set_tensor(input_details[0]['index'], sample[np.newaxis, ...])
interpreter.invoke()
output = interpreter.get_tensor(output_details[0]['index'])
tflite_predictions.append(output[0])
tflite_predictions = np.array(tflite_predictions)
# Compare predictions
difference = np.abs(original_predictions - tflite_predictions)
print(f"Mean absolute difference: {np.mean(difference):.6f}")
print(f"Max absolute difference: {np.max(difference):.6f}")
Model Size Comparison
import os
defcompare_model_sizes(saved_model_path, tflite_model_path):
"""Compare sizes of SavedModel and TFLite."""# SavedModel size (sum of all files)
saved_model_size = sum(
os.path.getsize(os.path.join(dirpath, filename))
for dirpath, _, filenames in os.walk(saved_model_path)
for filename in filenames
)
# TFLite model size
tflite_size = os.path.getsize(tflite_model_path)
print(f"SavedModel size: {saved_model_size / 1e6:.2f} MB")
print(f"TFLite model size: {tflite_size / 1e6:.2f} MB")
print(f"Size reduction: {(1 - tflite_size / saved_model_size) * 100:.1f}%")
When to Use This Skill
Use the tensorflow-model-deployment skill when you need to:
Export trained models for production serving
Deploy models to mobile devices (iOS, Android)
Optimize models for edge devices and IoT
Convert models to TensorFlow Lite format
Apply post-training quantization for model compression
Set up TensorFlow Serving infrastructure
Deploy models with Docker containers
Create model serving APIs with REST or gRPC
Optimize inference latency and throughput
Reduce model size for bandwidth-constrained environments
Convert JAX or PyTorch models to TensorFlow format
Implement A/B testing with multiple model versions
Deploy models to cloud platforms (GCP, AWS, Azure)
Create on-device ML applications
Optimize models for specific hardware accelerators
Best Practices
Always validate converted models - Compare TFLite predictions with original model to ensure accuracy
Use SavedModel format - Standard format for production deployment and serving
Apply appropriate quantization - Float16 for balanced speed/accuracy, INT8 for maximum compression
Include preprocessing in model - Embed preprocessing in SavedModel for consistent inference
Version your models - Use version numbers in export paths for model management
Test on target devices - Validate performance on actual deployment hardware
Monitor model size - Track model size before and after optimization
Use representative datasets - Provide calibration data for accurate quantization
Enable GPU delegation - Use GPU/TPU acceleration on supported devices
Optimize batch sizes - Tune batch size for throughput vs latency tradeoffs
Cache frequently used models - Load models once and reuse for multiple predictions
Use TensorFlow Serving - Leverage built-in serving infrastructure for scalability
Implement model warmup - Run dummy predictions to initialize serving systems
Monitor inference metrics - Track latency, throughput, and error rates in production
Use metadata in TFLite - Include labels and preprocessing info in model metadata
Common Pitfalls
Not validating converted models - TFLite conversion can introduce accuracy degradation
Over-aggressive quantization - INT8 quantization without calibration causes accuracy loss
Missing representative dataset - Quantization without calibration produces poor results
Ignoring model size - Large models fail to deploy on memory-constrained devices
Not testing on target hardware - Performance varies significantly across devices