tvalentyn commented on code in PR #22949:
URL: https://github.com/apache/beam/pull/22949#discussion_r960016744


##########
website/www/site/content/en/documentation/sdks/python-machine-learning.md:
##########
@@ -165,7 +165,29 @@ For detailed instructions explaining how to build and run 
a pipeline that uses M
 
 ## Beam Java SDK support
 
-RunInference API is available to Beam Java SDK 2.41.0 and later through Apache 
Beam's [Multi-language Pipelines 
framework](https://beam.apache.org/documentation/programming-guide/#multi-language-pipelines).
 Please see 
[here](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/transforms/RunInference.java)
 for the Java wrapper transform to use and please see 
[here](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/test/java/org/apache/beam/sdk/extensions/python/transforms/RunInferenceTransformTest.java)
 for some example pipelines.
+The RunInference API is available with the Beam Java SDK versions 2.41.0 and 
later through Apache Beam's [Multi-language Pipelines 
framework](https://beam.apache.org/documentation/programming-guide/#multi-language-pipelines).
 For information about the Java wrapper transform, see 
[RunInference.java](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/transforms/RunInference.java).
 For example pipelines, see 
[RunInferenceTransformTest.java](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/test/java/org/apache/beam/sdk/extensions/python/transforms/RunInferenceTransformTest.java).
+
+## TensorFlow support

Review Comment:
   I took a look, agree with Reza that a simple example would be helpful here. 
   
   How about this:
   
   To use TensorFlow with the RunInference API, you need to:
   - use `tfx_bsl==1.10.0` or newer
   - create a model handler using 
`tfx_bsl.public.beam.run_inference.CreateModelHandler()`, 
   - use the model handler with `apache_beam.ml.inference.base.RunInference` 
transform.
   A sample pipeline might look like the following:
   
   ```
   import apache_beam as beam
   from apache_beam.ml.inference.base import RunInference
   from tensorflow_serving.apis import prediction_log_pb2
   from tfx_bsl.public.proto import model_spec_pb2
   from tfx_bsl.public.tfxio import TFExampleRecord
   from tfx_bsl.public.beam.run_inference import CreateModelHandler
   
   pipeline = beam.Pipeline()
   tfexample_beam_record = 
TFExampleRecord(file_pattern=predict_values_five_times_table)
   saved_model_spec = 
model_spec_pb2.SavedModelSpec(model_path=save_model_dir_multiply)
   inference_spec_type = 
model_spec_pb2.InferenceSpecType(saved_model_spec=saved_model_spec)
   model_handler = CreateModelHandler(inference_spec_type)
   with pipeline as p:
       _ = (p | tfexample_beam_record.RawRecordBeamSource() 
              | RunInference(model_handler)
              | beam.Map(print)
           )
   ```
   
   @ryanthompson591 can you test that this works?
   
   Also there is a way how we configure unit tests for snippets to make sure 
they continue to work. Ideally we'd use that as well.
   
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to