Skip to content

Commit 12cdf7d

Browse files
committed
Minor fixes (links, typos, ...)
1 parent 1ffa2b1 commit 12cdf7d

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

readme.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Focus of this project is not just model training, but the whole Machine Learning
66
# Technology: Python, Jupyter, TensorFlow, Keras, Apache Kafka, KSQL
77
This project shows a demo which combines
88

9-
- simplicity of data science tools (Python, Jupyter notebooks, NumPy, Pandas)
9+
- simplicity of data science tools (Python, Jupyter notebooks, NumPy, pandas)
1010
- powerful Machine Learning / Deep Learning frameworks (TensorFlow, Keras)
1111
- reliable, scalable event-based streaming technology for production deployments (Apache Kafka, Kafka Connect, KSQL).
1212

@@ -29,7 +29,7 @@ We will do the following:
2929

3030
1) *Data Integration (Kafka Connect)*: Integrate a stream of data from CSV file or continuous data stream (in real world you can connect directly to an existing Kafka stream from the Jupyter notebook). As alternative, you can create new events manually in command line
3131
2) *Data Preprocessing (KSQL)*: Preprocess the data, e.g. filter, anonymize, aggreate / concatenate
32-
3) *Machine Learning specific preprocessing (NumPy, Pandas, Scikit-learn): Normalize, split train / test data
32+
3) *Machine Learning specific preprocessing (NumPy, pandas, Scikit-learn): Normalize, split train / test data
3333
4) *Model Training (TensorFlow + Keras)*
3434
5) *Model Deployment (KSQL + Tensorflow)*
3535
6) *Monitoring of Model Behaviour (KSQL)* like accuracy and performance
@@ -48,7 +48,7 @@ Check out [this step-by-step guide](https://github.com/kaiwaehner/python-jupyter
4848

4949
### Separation between Apache Kafka Administration and KSQL Statements
5050

51-
You can either do everything within Jupyter or separate administration commands (e.g. starting backends, creating Kafka Topics) to command line and only run KSQL commands in Jupyter.
51+
You can either do everything within Jupyter or separate administration commands such as starting backends or creating Kafka Topics to command line and only run KSQL commands in Jupyter.
5252

5353
Here is an example where even the Kafka administration in done in Jupyter:
5454

@@ -68,23 +68,23 @@ The goal is to lose as little information as possible. This way we can use an au
6868

6969
## Hands-On with Python, TensorFlow, Keras, Apache Kafka and KSQL
7070

71-
We use KSQL for preprocessing, Numpy, Pandas and scikit-learn for ML-specific tasks like array shapes or splitting training and test data, TensorFlow + Keras for model training, and Kafka Streams or KSQL for model deployment and monitoring.
71+
We use KSQL for preprocessing, Numpy, pandas and scikit-learn for ML-specific tasks like array shapes or splitting training and test data, TensorFlow + Keras for model training, and Kafka Streams or KSQL for model deployment and monitoring.
7272

7373
Here is a TensorBoard screenshot of the trained Autoencoder:
7474

7575
![Autoencoder for Fraud Detection (TensorBoard)](pictures/Keras_TesnsorFlow_Autoencoder_Fraud_Detection_TensorBoard.png)
7676

77-
## Keras model (.h5) vs. TensorFlow model (.pb) - Workarounds needed?
77+
## TensorFlow Model Serialisation - Keras model (.h5) vs. TensorFlow model (.pb)
7878

7979
Different model serialisation mechanisms exist. Also product vendors and cloud providers add additional features (like for any other standard). Therefore, your TensorFlow model might not work everywhere out-of-the-box.
8080

81-
This will probably get better with release of [TensorFlow 2.0](Standardizing on Keras: Guidance on High-level APIs in TensorFlow 2.0) in 2019, but as of today (January 2019), you need to think about where you want to deploy your model before you train and export it.
81+
This will probably get better with release of [TensorFlow 2.0](https://medium.com/tensorflow/standardizing-on-keras-guidance-on-high-level-apis-in-tensorflow-2-0-bad2b04c819a) in 2019, but as of today (January 2019), you need to think about where you want to deploy your model before you train and export it.
8282

8383
This demo uses plain Keras API. This is fine e.g. if you want to load the model via Java API from a Java application (see e.g. my [Kafka Streams + Keras + TensorFlow example](https://github.com/kaiwaehner/kafka-streams-machine-learning-examples/blob/master/src/test/java/com/github/megachucky/kafka/streams/machinelearning/test/Kafka_Streams_TensorFlow_Keras_Example_IntegrationTest.java) where I load the H5 model file).
8484

8585
If you want to deploy the model in a specific TensorFlow infrastructure like Google ML Engine (based on TensorFlow Serving model server), it is best to train the model with GCP's tools as described in this [Google ML Getting Started] (https://cloud.google.com/ml-engine/docs/tensorflow/getting-started-training-prediction) guide.
8686

87-
Otherwise you need to convert the H5 Keras file to a TensorFlow Proto Buffers file and fulfil some more tasks, e.g. described in this [blog post](https://medium.com/google-cloud/serve-keras-models-using-google-cloud-machine-learning-services-910912238bf6).
87+
Otherwise, you need to convert the H5 Keras file to a TensorFlow Proto Buffers file and fulfil some more tasks, e.g. described in this [blog post](https://medium.com/google-cloud/serve-keras-models-using-google-cloud-machine-learning-services-910912238bf6).
8888

8989
The Python tool [Keras to TensorFlow](https://github.com/amir-abdi/keras_to_tensorflow) is a good and simple solution:
9090

0 commit comments

Comments
 (0)