Practical overview
When it fits
Use it when you need a code-level TensorFlow example for segmentation training or evaluation, or want to follow its separate export-and-client workflow for TensorFlow Serving.
Who it is for
- Developers building image segmentation workflows with TensorFlow.
- Practitioners preparing datasets and retraining or evaluating a semantic segmentation CNN.
- Teams exploring a documented SavedModel and TensorFlow Serving client workflow.
Documented uses
- Prepare Pascal VOC 2012 or SBD data as TFRecords using the included notebook.
- Train the model using TFRecords and a ResNet checkpoint.
- Evaluate a training run using its model ID and test TFRecords.
- Export a SavedModel and make client requests through the included serving scripts.
Requirements & limits
- The README specifies TensorFlow 1.10.1, so the documented stack is tied to that version.
- Training consumes TFRecords and uses a ResNet checkpoint; evaluation also requires test.tfrecords.
- The serving instructions require distinct Python 3 and Python 2 environments.
- The repository lists an MIT license.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare a dataset and train the segmentation model
Convert a supported image dataset to TFRecords and start a training run.
Before you start
- Python 3, NumPy and TensorFlow 1.10.1.
- Pascal VOC 2012 or the Semantic Boundaries Dataset and Benchmark, or TFRecords prepared for the repository.
- A ResNet checkpoint; the training instructions say the code downloads it if it is absent from ./resnet/checkpoints.
Steps
Download Pascal VOC 2012 and/or SBD.
Use dataset/CreateTfRecord.ipynb to prepare TFRecords, adapting the notebook for a different dataset.
Place TFRecords in ./dataset/tfrecords and run the documented train.py command with the selected training arguments.
Expected outcome
A training run creates a folder under ./tboard_logs.
Guide limitations
- The repository describes random 513-by-513 image crops by default; crop_size can be changed in train.py.
- The README's supplied command specifies a GPU ID and ResNet variant; it does not establish performance across hardware or datasets.
Export the model and make a TensorFlow Serving client request
Follow the documented export and client-request sequence for a segmentation model.
Before you start
- Python 3 and Python 2 virtual environments.
- Dependencies listed in serving_requirements.txt and client_requirements.txt.
Steps
Create a Python 3 virtual environment and install serving_requirements.txt.
Run deeplab_saved_model.py in that environment; the README says the export should appear in ./serving/model/.
Create a Python 2 virtual environment and install client_requirements.txt.
Run the deeplab_client.ipynb notebook in the Python 2 environment.
Expected outcome
The documented sequence exports a SavedModel and runs the client notebook to make requests.
Guide limitations
- The workflow uses separate Python 3 and Python 2 environments.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 6 November 2026
- Original website title
- sthalles/deeplab_v3 · Official homepage title · retained in its source language

