diff --git a/ChangeLog.md b/ChangeLog.md
index 3e6034e..71b88b9 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,8 @@
 # ChangeLog
 
+## v0.2.0.1
+- Switch to tensorflow 1.9.
+
 ## v0.2.0.0
 - Switch to tensorflow 1.8.
 - Switch to proto-lens 0.2.2.
diff --git a/ci_build/Dockerfile b/ci_build/Dockerfile
index 0530c0c..3d6c1a8 100644
--- a/ci_build/Dockerfile
+++ b/ci_build/Dockerfile
@@ -3,7 +3,7 @@
 # stack to be installed on the host.  This comes at the expense of
 # flexibility.
 
-FROM tensorflow/tensorflow:1.8.0
+FROM tensorflow/tensorflow:1.9.0
 LABEL maintainer="TensorFlow authors <tensorflow-haskell@googlegroups.com>"
 
 # The build context directory is the top of the tensorflow-haskell
@@ -32,8 +32,8 @@ RUN \
     curl -O -L https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip && \
     unzip -d /usr/local protoc-3.2.0-linux-x86_64.zip bin/protoc && \
     chmod 755 /usr/local/bin/protoc && \
-    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.8.0.tar.gz && \
-    tar zxf libtensorflow-cpu-linux-x86_64-1.8.0.tar.gz -C /usr/local && \
+    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.9.0.tar.gz && \
+    tar zxf libtensorflow-cpu-linux-x86_64-1.9.0.tar.gz -C /usr/local && \
     ldconfig && \
     stack setup && \
     stack test --only-dependencies
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 73ca904..b3846a2 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,6 +1,6 @@
 # Prepare the image with:
 #   docker build -t tensorflow/haskell:v0 docker
-FROM tensorflow/tensorflow:1.8.0
+FROM tensorflow/tensorflow:1.9.0
 LABEL maintainer="TensorFlow authors <tensorflow-haskell@googlegroups.com>"
 
 RUN apt-get update
@@ -27,8 +27,8 @@ RUN \
     curl -O -L https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip && \
     unzip -d /usr/local protoc-3.2.0-linux-x86_64.zip bin/protoc && \
     chmod 755 /usr/local/bin/protoc && \
-    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.8.0.tar.gz && \
-    tar zxf libtensorflow-cpu-linux-x86_64-1.8.0.tar.gz -C /usr/local && \
+    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.9.0.tar.gz && \
+    tar zxf libtensorflow-cpu-linux-x86_64-1.9.0.tar.gz -C /usr/local && \
     ldconfig
 
 ENV LANG en_US.UTF-8
diff --git a/docker/gpu/Dockerfile b/docker/gpu/Dockerfile
index 66e7b43..325b08e 100644
--- a/docker/gpu/Dockerfile
+++ b/docker/gpu/Dockerfile
@@ -1,6 +1,6 @@
 # Prepare the image with:
-#   docker build -t tensorflow/haskell:1.8.0-gpu docker/gpu
-FROM gcr.io/tensorflow/tensorflow:1.8.0-gpu
+#   docker build -t tensorflow/haskell:1.9.0-gpu docker/gpu
+FROM gcr.io/tensorflow/tensorflow:1.9.0-gpu
 LABEL maintainer="TensorFlow authors <tensorflow-haskell@googlegroups.com>"
 
 RUN apt-get update
@@ -27,8 +27,8 @@ RUN \
     curl -O -L https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip && \
     unzip -d /usr/local protoc-3.2.0-linux-x86_64.zip bin/protoc && \
     chmod 755 /usr/local/bin/protoc && \
-    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-linux-x86_64-1.8.0.tar.gz && \
-    tar zxf libtensorflow-gpu-linux-x86_64-1.8.0.tar.gz -C /usr/local && \
+    curl -O https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-linux-x86_64-1.9.0.tar.gz && \
+    tar zxf libtensorflow-gpu-linux-x86_64-1.9.0.tar.gz -C /usr/local && \
     ldconfig
 
 ENV LANG en_US.UTF-8
diff --git a/tensorflow-core-ops/Setup.hs b/tensorflow-core-ops/Setup.hs
index a040088..9a5b036 100644
--- a/tensorflow-core-ops/Setup.hs
+++ b/tensorflow-core-ops/Setup.hs
@@ -94,20 +94,27 @@ blackList =
     , "FlatMapDataset"
     , "For"
     , "GeneratorDataset"
+    , "GroupByReducerDataset"
     , "GroupByWindowDataset"
     , "If"
     , "InterleaveDataset"
     , "MapAndBatchDataset"
+    , "MapAndBatchDatasetV2"
     , "MapDataset"
     , "MapDataset"
     , "OneShotIterator"
     , "ParallelInterleaveDataset"
     , "ParallelMapDataset"
+    , "PartitionedCall"
     , "RemoteCall"
     , "ScanDataset"
     , "SymbolicGradient"
     , "TPUReplicate"
     , "While"
+    , "XlaIf"
+    , "XlaLaunch"
+    , "XlaReduceWindow"
+    , "XlaWhile"
     , "_If"
     , "_While"
     ]
diff --git a/third_party/tensorflow b/third_party/tensorflow
index 93bc2e2..25c197e 160000
--- a/third_party/tensorflow
+++ b/third_party/tensorflow
@@ -1 +1 @@
-Subproject commit 93bc2e2072e0daccbcff7a90d397b704a9e8f778
+Subproject commit 25c197e02393bd44f50079945409009dd4d434f8
diff --git a/tools/install_macos_dependencies.sh b/tools/install_macos_dependencies.sh
index f8db696..2e976db 100755
--- a/tools/install_macos_dependencies.sh
+++ b/tools/install_macos_dependencies.sh
@@ -27,7 +27,7 @@ fi
 TMP_DIR=$(mktemp -d)
 
 echo "Downloading libtensorflow..."
-curl https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-darwin-x86_64-1.8.0.tar.gz > "$TMP_DIR/libtensorflow.tar.gz"
+curl https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-darwin-x86_64-1.9.0.tar.gz > "$TMP_DIR/libtensorflow.tar.gz"
 
 echo "Extracting and copying libtensorflow..."
 tar zxf "$TMP_DIR/libtensorflow.tar.gz" -C "$TMP_DIR"