web-dev-qa-db-ja.com

ローカルファイルをGoogle colabにインポートする

Colabがディレクトリでどのように機能するか理解していないので、ノートブックを作成し、colabを/ Google Drive/Colab Notebooksに入れました。

次に、必要な関数がたくさんあるファイル(data.py)をインポートする必要があります。直観は、同じディレクトリにファイルを置き、それをインポートするように私に言います:

データをインポートする

しかし、どうやらそうではありません...

また、ディレクトリをパスのセットに追加しようとしましたが、ディレクトリを誤って指定しています。

誰でもこれを助けることができますか?

前もって感謝します!

14
Danf

現在、Googleは公式にGdriveへのアクセスと操作を簡単にサポートしています。

以下のコードを使用して、ドライブをColabにマウントできます。

from google.colab import drive
drive.mount('/gdrive')
%cd /gdrive/My\ Drive/{location you want to move}
3
Suraj Donthi

ColabノートブックはGoogleドライブに保存されます。ただし、別の仮想マシンで実行されます。そのため、data.pyもそこにコピーする必要があります。これを実行して、Colabを介してdata.pyをアップロードします。

from google.colab import files
files.upload()
# choose the file on your computer to upload it then
import data
10

ローカルファイルを簡単にアップロードするには、新しいGoogle Colab機能を使用できます。

  • 画面の左側にある右矢印(Google Colabロゴの下)をクリックします enter image description here
  • [ファイル]タブを選択します
  • [アップロード]ボタンをクリックします

ローカルファイルシステムからアップロードするファイルを選択するポップアップが開きます。

7
RomRoc

システムからCollabストレージ/ディレクトリにローカルファイルをアップロードするには

from google.colab import files
def getLocalFiles():
    _files = files.upload()
    if len(_files) >0:
       for k,v in _files.items():
         open(k,'wb').write(v)
getLocalFiles()

enter image description here

3
shaurya uppal

だから、これが私が最終的にこれを解決した方法です。ただし、私の場合は、常に変更されているいくつかのファイルと独自のモジュールを使用する必要がありました。

これを実現するための最良の解決策は、Fuseラッパーを使用して、colabをGoogleアカウントに「リンク」することでした。私はこの特定のツールを使用しました:

https://github.com/astrada/google-drive-ocamlfuse

そこにあなたの環境をセットアップする方法の例がありますが、ここに私がそれをした方法があります:

# Install a Drive Fuse wrapper.
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse Fuse


# Generate auth tokens for Colab
from google.colab import auth
auth.authenticate_user()
# Generate creds for the Drive Fuse library.
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

この時点でラッパーがインストールされ、上記のコードにより、Googleドライブアカウントへのアクセスを許可するためのリンクがいくつか生成されます。

Colabファイルシステムにフォルダを作成する必要があります(これは私の知る限り永続的ではないことに注意してください...)、そこにドライブをマウントします:

# Create a directory and mount Google Drive using that directory.
!mkdir -p drive
!google-drive-ocamlfuse drive

print ('Files in Drive:')
!ls drive/

!lsコマンドは、ディレクトリの内容を出力するので、動作を確認できます。それだけです。これで、必要なファイルがすべて揃ったので、これ以上複雑にすることなくそれらに変更を加えることができます。インポートと変数を更新するには、カーネルを再スターティングする必要がある場合があることに注意してください。

これが誰かのために働くことを願っています!

1
Danf