title: InvalidArgumentError: Unsuccessful TensorSliceReader constructor: Failed to get matching files ... File system scheme '[local]' not implemented
body: <p>I get the following error when running a notebook:</p>
  
  <pre><code>InvalidArgumentErrorTraceback (most recent call last)
      &lt;ipython-input-77-e16e0fd6d275&gt; in &lt;module&gt;()
      ----&gt; 1 tpu_ops = tf.contrib.tpu.batch_parallel(run_find_closest_latent_vector, [], num_shards=8)
        2 
        3 def run_once():
        4   session_tpu.run(tpu_ops)
        5 
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu.pyc in batch_parallel(computation, inputs, num_shards, infeed_queue, device_assignment, name)
      981       infeed_queue=infeed_queue,
      982       device_assignment=device_assignment,
      --&gt; 983       name=name)
      984 
      985 
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu.pyc in shard(computation, inputs, num_shards, input_shard_axes, outputs_from_all_shards, output_shard_axes, infeed_queue, device_assignment, name)
      879       infeed_queue=infeed_queue,
      880       device_assignment=device_assignment,
      --&gt; 881       name=name)
      882 
      883   # There must be at least one shard since num_shards &gt; 0.
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu.pyc in replicate(computation, inputs, infeed_queue, device_assignment, name)
      505   """
      506   return split_compile_and_replicate(computation, inputs, infeed_queue,
      --&gt; 507                                      device_assignment, name)[1]
      508 
      509 
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu.pyc in split_compile_and_replicate(***failed resolving arguments***)
      682       vscope.set_custom_getter(custom_getter)
      683 
      --&gt; 684       outputs = computation(*computation_inputs)
      685 
      686       vscope.set_use_resource(saved_use_resource)
  
      &lt;ipython-input-76-66eb3bb2ffa2&gt; in run_find_closest_latent_vector()
       34 
       35 def run_find_closest_latent_vector():
      ---&gt; 36   result = find_closest_latent_vector(num_optimization_steps=40)
       37   display_images(result[0], [("Loss: %.2f" % loss) for loss in result[1]])
       38 
  
      &lt;ipython-input-76-66eb3bb2ffa2&gt; in find_closest_latent_vector(num_optimization_steps)
       22 
       23     with tf.Session(tpu_address) as session_tpu:
      ---&gt; 24       session_tpu.run(tf.global_variables_initializer())
       25       optimizer = tf.train.AdamOptimizer(learning_rate=0.3)
       26       train = optimizer.minimize(loss)
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata)
      927     try:
      928       result = self._run(None, fetches, feed_dict, options_ptr,
      --&gt; 929                          run_metadata_ptr)
      930       if run_metadata:
      931         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata)
      1150     if final_fetches or final_targets or (handle and feed_dict_tensor):
      1151       results = self._do_run(handle, final_targets, final_fetches,
      -&gt; 1152                              feed_dict_tensor, options, run_metadata)
      1153     else:
      1154       results = []
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
      1326     if handle is None:
      1327       return self._do_call(_run_fn, feeds, fetches, targets, options,
      -&gt; 1328                            run_metadata)
      1329     else:
      1330       return self._do_call(_prun_fn, handle, feeds, fetches)
  
      /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_call(self, fn, *args)
      1346           pass
      1347       message = error_interpolation.interpolate(message, self._graph)
      -&gt; 1348       raise type(e)(node_def, op, message)
      1349 
      1350   def _extend_graph(self):
  
      InvalidArgumentError: Unsuccessful TensorSliceReader constructor: Failed to get matching files on /tmp/tfhub_modules/2f9e2f0be115550c7ae9b90bb71b29e76fa404d8/variables/variables: Unimplemented: File system scheme '[local]' not implemented (file: '/tmp/tfhub_modules/2f9e2f0be115550c7ae9b90bb71b29e76fa404d8/variables/variables')
      [[node checkpoint_initializer_9 (defined at /usr/local/lib/python2.7/dist-packages/tensorflow_hub/native_module.py:395)  = RestoreV2[dtypes=[DT_FLOAT], _device="/job:tpu_worker/replica:0/task:0/device:CPU:0"](checkpoint_initializer/prefix, checkpoint_initializer_9/tensor_names, checkpoint_initializer/shape_and_slices)]]
  </code></pre>
  
  <p>Somehow it says <code>Unimplemented: File system scheme '[local]' not implemented</code>, may be related to <a href="https://github.com/tensorflow/models/issues/3724" rel="nofollow noreferrer">this issue</a>.</p>
  
  <p>I don't have direct access to the paths to the files in order to add the <code>\</code> at the end wherever it is needed.</p>
  
  <p>Here's the block of code from the notebook:</p>
  
  <pre><code>    def _get_beta_accumulators(self):
          return self._beta1_power, self._beta2_power
  
      def find_closest_latent_vector(num_optimization_steps):
        images = []
        losses = []
        with tf.Graph().as_default():
          module = hub.Module("https://tfhub.dev/google/progan-128/1")
  
          initial_vector = tf.random_normal([1, latent_dim], seed=5)
  
          vector = tf.get_variable("vector", initializer=initial_vector)
          image = module(vector)
  
          target_image_difference = tf.reduce_sum(
              tf.losses.absolute_difference(image[0], target_image[:,:,:3]))
  
          # The latent vectors were sampled from a normal distribution. We can get
          # more realistic images if we regularize the length of the latent vector to 
          # the average length of vector from this distribution.
          regularizer = tf.abs(tf.norm(vector) - np.sqrt(latent_dim))
  
          loss = target_image_difference + regularizer
  
          with tf.Session(tpu_address) as session_tpu:
            session_tpu.run(tf.global_variables_initializer())
            optimizer = tf.train.AdamOptimizer(learning_rate=0.3)
            train = optimizer.minimize(loss)
  
            for _ in range(num_optimization_steps):
              _, loss_out, im_out = session_tpu.run([train, loss, image])
              print(im_out[0])
              losses.append(loss_out)
              print loss_out
          return images, losses
  
      def run_find_closest_latent_vector():
        result = find_closest_latent_vector(num_optimization_steps=40)
        display_images(result[0], [("Loss: %.2f" % loss) for loss in result[1]])
  </code></pre>
  
  <p>Hopefully, this will help with debugging the issue.</p>
  
  <p>Any thoughts?</p>