aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/util
diff options
context:
space:
mode:
authorGravatar Derek Murray <mrry@google.com>2016-10-18 18:43:11 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2016-10-18 19:48:20 -0700
commit45c838623c0df0489e1777af494ee4da0cf4e435 (patch)
tree69df4ee4fde56ee3f0a475fc845ac035d02c0349 /tensorflow/contrib/util
parentb4021d76936539dbf8200a05ec891c02d66158cf (diff)
In tf.contrib, only load external op libraries on non-Windows platforms.
This enables tf.contrib to be used on Windows, which does not currently support the TensorFlow plugin mechanism. Change: 136550845
Diffstat (limited to 'tensorflow/contrib/util')
-rw-r--r--tensorflow/contrib/util/loader.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tensorflow/contrib/util/loader.py b/tensorflow/contrib/util/loader.py
new file mode 100644
index 0000000000..6f690f414a
--- /dev/null
+++ b/tensorflow/contrib/util/loader.py
@@ -0,0 +1,47 @@
+# Copyright 2016 The TensorFlow Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+"""Utilities for loading op libraries."""
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
+import os
+
+from tensorflow.python.framework import load_library
+from tensorflow.python.platform import resource_loader
+
+
+def load_op_library(path):
+ """Loads a contrib op library from the given path.
+
+ NOTE(mrry): On Windows, we currently assume that contrib op
+ libraries are statically linked into the main TensorFlow Python
+ extension DLL.
+
+ Args:
+ path: An absolute path to a shared object file.
+
+ Returns:
+ A Python module containing the Python wrappers for Ops defined in the
+ plugin.
+ """
+ if os.name != 'nt':
+ path = resource_loader.get_path_to_datafile(path)
+ ret = load_library.load_op_library(path)
+ assert ret, 'Could not load %s' % path
+ return ret
+ else:
+ # NOTE(mrry):
+ return None