Google Colaboratory:导入数据,超出堆栈大小?

时间:2018-12-05 10:24:17

标签: python-3.x google-colaboratory

我正在尝试使用此代码从文件夹中导入数据

from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(name=fn, length=len(uploaded[fn])))

但是它给了我这个错误:

Traceback (most recent call last) <ipython-input-7-3ff52e25531b> in <module>()
      1 from google.colab import files
      2 
----> 3 uploaded = files.upload()
      4 
      5 #for fn in uploaded.keys():

/usr/local/lib/python3.6/dist-packages/google/colab/files.py in upload()
     70     result = _output.eval_js(
     71         'google.colab._files._uploadFilesContinue("{output_id}")'.format(
---> 72             output_id=output_id))
     73     if result['action'] != 'append':
     74       # JS side uses a generator of promises to process all of the files- some

/usr/local/lib/python3.6/dist-packages/google/colab/output/_js.py in eval_js(script, ignore_result)
     37   if ignore_result:
     38     return
---> 39   return _message.read_reply_from_input(request_id)
     40 
     41 

/usr/local/lib/python3.6/dist-packages/google/colab/_message.py in read_reply_from_input(message_id, timeout_sec)
    104         reply.get('colab_msg_id') == message_id):
    105       if 'error' in reply:
--> 106         raise MessageError(reply['error'])
    107       return reply.get('data', None)
    108
MessageError: RangeError: Maximum call stack size exceeded.

我不明白。是数据相对较大(22578685bytes)的原因还是因为javascript?

3 个答案:

答案 0 :(得分:4)

我的建议是尝试使用文件浏览器上传文件。 (它使用一种独特的传输方式,效率更高得多,尤其是对于大文件。)

enter image description here

这可以解决问题吗?

答案 1 :(得分:3)

我在Mac上的 Safari浏览器中使用了colab ,但它给了我这个错误。 Trien从上面提到的按钮上传,但是没有用。

只需在 Google Chrome 中运行该协作程序,它对我来说就很顺利。

答案 2 :(得分:1)

如果@ bob-smith的建议不起作用,请尝试使用其他浏览器。我尝试了不同的解决方法,但问题是我使用的是勇敢的浏览器。

请改用Chrome,对我来说,它成功了。