我的Google平台/ ML引擎培训工作似乎无法访问我放入中的培训文件。
Google的AI平台/ ML引擎要求您将培训数据文件存储在他们的云存储桶中。从CLI访问本地很好。但是,当我发送培训作业(在确保数据位于云存储桶的适当位置之后)时,我会得到一个错误,似乎是由于无法访问存储桶Link URL。
错误之处在于,我试图阅读谷歌( Google )提供给我的网页内容,上面写着“嘿,你不能访问这个网页。”我看到这个gaia.loginAutoRedirect.start(5000,和一个带有这个标志的URL:noautologin=true。
我知道AI平台和云存储之间的权限是一回事,但两者都在同一个项目下。我正在使用的演练至少意味着如果在同一个项目下不需要进一步的操作。
我假设我需要使用桶概述选项卡中提供的Link URL。尝试了Link for gsutil,但巨蟒(来自谷歌的CloudML样品回购)对使用gs://感到不安。
我认为Google的例子是不够的,因为它们的示例数据来自公共URL,而不是私有云存储桶。
最终,我得到的错误消息是Python错误。但是就像我说的,前面是一堆来自Google的INFO /CSS/JS日志,上面说我没有获得我想要得到的文件的权限。这些日志实际上是因为我在列车文件的util.py文件中read_csv()之前添加了一个print语句。(因此Python解析错误是由于试图将HTML解析为CSV)。
...
INFO g("gaia.loginAutoRedirect.stop",function(){var b=n;b.b=!0;b.a&&(clearInterval(b.a),b.a=null)});
INFO gaia.loginAutoRedirect.start(5000,
INFO 'https:\x2F\x2Faccounts.google.com\x2FServiceLogin?continue=https%3A%2F%2Fstorage.cloud.google.com%2F<BUCKET_NAME>%2Fdata%2F%2Ftrain.csv\x26followup=https%3A%2F%2Fstorage.cloud.google.com%2F<BUCKET_NAME>%2Fdata%2F%2Ftrain.csv\x26service=cds\x26passive=1209600\x26noautologin=true',
ERROR Command '['python', '-m', u'trainer.task', u'--train-files', u'gs://<BUCKET_NAME>/data/train.csv', u'--eval-files', u'gs://<BUCKET_NAME>/data/test.csv', u'--batch-pct', u'0.2', u'--num-epochs', u'1000', u'--verbosity', u'DEBUG', '--job-dir', u'gs://<BUCKET_NAME>/predictor']' returned non-zero exit status 1.Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 137, in <module>
train_and_evaluate(args)
File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 80, in train_and_evaluate
train_x, train_y, eval_x, eval_y = util.load_data()
File "/root/.local/lib/python2.7/site-packages/trainer/util.py", line 168, in load_data
train_df = pd.read_csv(training_file_path, header=0, names=_CSV_COLUMNS, na_values='?')
File "/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.py", line 678, in parser_f
return _read(filepath_or_buffer, kwds)
File "/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.py", line 446, in _read
data = parser.read(nrows)
File "/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.py", line 1036, in read
ret = self._engine.read(nrows)
File "/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.py", line 1848, in read
data = self._reader.read(nrows)
File "pandas/_libs/parsers.pyx", line 876, in pandas._libs.parsers.TextReader.read
File "pandas/_libs/parsers.pyx", line 891, in pandas._libs.parsers.TextReader._read_low_memory
File "pandas/_libs/parsers.pyx", line 945, in pandas._libs.parsers.TextReader._read_rows
File "pandas/_libs/parsers.pyx", line 932, in pandas._libs.parsers.TextReader._tokenize_rows
File "pandas/_libs/parsers.pyx", line 2112, in pandas._libs.parsers.raise_parser_error
ParserError: Error tokenizing data. C error: Expected 5 fields in line 205, saw 961为了获取数据,我或多或少地试图模仿以下内容:https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/census/tf-keras/trainer/util.py
在我的util.py:https://console.cloud.google.com/storage/browser/<BUCKET_NAME>/data副本中,我试图用各种方式来解决我的问题(认为这是五月份的“链接URL”)
https://storage.cloud.google.com/<BUCKET_NAME>/data (这是现在的“链接URL”--7月)
gs://<BUCKET_NAME>/data (这是URI -它提供了一个关于不喜欢gs作为url类型的不同错误)
发布于 2019-08-06 18:05:53
从上面的评论中转出答案:
看起来,如果不是公共对象,URL方法需要基于cookie的认证。与其使用URL,我建议将tf.gfile与gs:// path一起使用,就像在Keras样本中使用的那样。如果需要在单独的步骤中从GCS下载文件,则可以使用GCS客户端库。
https://stackoverflow.com/questions/56301406
复制相似问题