title: "Unable to get Filesystem for path" error when training neural network on google cloud
body: <p>I am using Google Cloud to train a neural network on the cloud like in the following example:</p>
  
  <p><a href="https://cloud.google.com/blog/big-data/2016/12/how-to-classify-images-with-tensorflow-using-google-cloud-machine-learning-and-cloud-dataflow" rel="noreferrer">https://cloud.google.com/blog/big-data/2016/12/how-to-classify-images-with-tensorflow-using-google-cloud-machine-learning-and-cloud-dataflow</a></p>
  
  <p>To start I set the following to environmental variables:</p>
  
  <pre><code>PROJECT_ID=$(gcloud config list project --format "value(core.project)")
  BUCKET_NAME=${PROJECT_ID}-mlengine
  </code></pre>
  
  <p>I then uploaded my training and evaluation data, both csv's with the names eval_set.csv and train_set.csv to Google cloud storage with the following command:</p>
  
  <pre><code>gsutil cp -r data gs://$BUCKET_NAME
  </code></pre>
  
  <p>I then verified that these two csv files where in the polar-terminal-160506-mlengine/data directory on my Google Cloud storage.</p>
  
  <p>I then did the following environmental variable assignments </p>
  
  <pre><code># Assign appropriate values.
  PROJECT=$(gcloud config list project --format "value(core.project)")
  JOB_ID="flowers_${USER}_$(date +%Y%m%d_%H%M%S)"
  GCS_PATH="${BUCKET}/${USER}/${JOB_ID}"
  DICT_FILE=gs://cloud-ml-data/img/flower_photos/dict.txt
  </code></pre>
  
  <p>Before trying to preprocess my evaluation data like so:</p>
  
  <pre><code># Preprocess the eval set.
  python trainer/preprocess.py \
    --input_dict "$DICT_FILE" \
    --input_path "gs://cloud-ml-data/img/flower_photos/eval_set.csv" \
    --output_path "${GCS_PATH}/preproc/eval" \
    --cloud
  </code></pre>
  
  <p>Sadly, this runs for a bit and then crashes outputting the following error:</p>
  
  <pre><code>ValueError: Unable to get the Filesystem for path gs://polar-terminal-160506-mlengine/data/eval_set.csv
  </code></pre>
  
  <p>This doesn't seem possible as I have confirmed with my eyes via my Google Cloud Storage console that eval_set.csv is stored at this location. Is this perhaps a permissions issue or something I am not seeing? </p>
  
  <p>Edit: </p>
  
  <p>I have found the cause of this run time error to be from a certain line in the trainer.preprocess.py file. The line is this one:</p>
  
  <pre><code>read_input_source = beam.io.ReadFromText(
        opt.input_path, strip_trailing_newlines=True)
  </code></pre>
  
  <p>Seems like a pretty good clue but I am still not really sure what is going on. When I google "beam.io.ReadFromText  ValueError: Unable to get the Filesystem for path" nothing relevant at all appears which is a bit odd. Thoughts?</p>