web-dev-qa-db-ja.com

Googleドライブにある画像データセット(フォルダーまたはZip)をGoogle Colabにロードしますか?

Googleドライブに画像のデータセットがあります。このデータセットは、圧縮.Zipバージョンと非圧縮フォルダーの両方にあります。

Google Colabを使用してCNNをトレーニングしたい。 ColabにGoogleドライブの画像の場所を伝えるにはどうすればよいですか?

  1. 公式チュートリアルは、私の場合のように10000画像のフォルダではなく、単一のファイルをアップロードする方法を示すだけなので、私には役立ちません。

  2. その後、この回答を見つけましたが、解決策が完了していないか、少なくとも解凍から続行する方法がわかりませんでした。残念ながら、十分な「スタックオーバーフローポイント」がないため、この回答にはコメントできません。

  3. このスレッドも見つかりましたが、ここではすべての答えがGithubやdropboxなどの他のツールを使用しています

誰かが私に何をすべきかを説明したり、どこに助けを求めるべきか教えてくれるといいのですが。

Edit1:

私が私のものと同じ質問をしているさらに別のスレッドを見つけました: 悲しいことに、3つの回答のうち、2つはKaggleを参照しています。 3番目の答えは2つのリンクを提供します。最初のリンクは私がリンクした3番目のスレッドを指し、2番目のリンクは単一のファイルを手動でアップロードする方法のみを説明しています。

12
charel-f

答えを更新します。今すぐGoogle Colabから実行できます

# Load the Drive helper and mount
from google.colab import drive

# This will Prompt for authorization.
drive.mount('/content/drive')

!ls "/content/drive/My Drive"

Googleドキュメント

@yl_lowが述べたように here

ステップ1:

!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

ステップ2:

from google.colab import auth
auth.authenticate_user()

ステップ3:

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}

ステップ2と3の両方で、URLから提供された確認コードを入力する必要があります

ステップ4:

!mkdir -p drive
!google-drive-ocamlfuse drive

ステップ5:

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

他の回答も優れていますが、Googleドライブで認証するために毎回要求されるため、ノートブックをトップダウンで実行したい場合はあまり快適ではありません。

同じ必要性があり、ドライブからColabにデータセットを含む単一のZipファイルをダウンロードしたいと思いました。私はそのファイルの共有可能なリンクを取得して次のセルを実行することを優先しました(共有リンクでdrive_urlを置き換えます):

import urllib

drive_url = 'https://drive.google.com/uc?export=download&id=1fBVMX66SlvrYa0oIau1lxt1_Vy-XYZWG'
file_name = 'downloaded.Zip'

urllib.request.urlretrieve(drive_url, file_name)
print('Download completed!')
2
RomRoc