Как искать файлы Tensorflow в Google Drive? - PullRequest
2 голосов
/ 25 февраля 2020

Я просматриваю документы здесь: https://colab.research.google.com/github/google/earthengine-api/blob/master/python/examples/ipynb/TF_demo1_keras.ipynb#scrollTo = 43-c0JNFI_m6 , чтобы узнать, как использовать Tensorflow с GEE. Одна часть этого урока - проверка существования экспортированных файлов. В документации пример кода:

fileNameSuffix = '.tfrecord.gz'
trainFilePath = 'gs://' + outputBucket + '/' + trainFilePrefix + fileNameSuffix
testFilePath = 'gs://' + outputBucket + '/' + testFilePrefix + fileNameSuffix

print('Found training file.' if tf.gfile.Exists(trainFilePath) 
    else 'No training file found.')
print('Found testing file.' if tf.gfile.Exists(testFilePath) 
    else 'No testing file found.')

В моем случае я просто экспортирую файлы в Google Drive вместо корзины Google Cloud. Как изменить trainFilePath и testFilePath, чтобы они указывали на папку Google Диска? FWIW, когда я go в папку Google Drive, я действительно вижу файлы.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Решение

Вы можете использовать большую библиотеку PyDrive , чтобы легко получить доступ к файлам на вашем диске из коллажа Google и, таким образом, проверить, какие файлы у вас есть или были экспортированы, и т. Д. c.

Следующий фрагмент кода является примером, в котором перечислены все файлы в каталоге root вашего Google Drive API. Это было найдено в этом ответе (да, я делаю этот ответ в вики-посте сообщества) :

# Install the library
!pip install -U -q PyDrive
# Install the rest of the services/libraries needed
import os
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# choose a local (colab) directory to store the data.
local_download_path = os.path.expanduser('~/data')
try:
  os.makedirs(local_download_path)
except: pass

# 2. Auto-iterate using the query syntax, in this case as I am using the main directory of Drive this would be root
#    https://developers.google.com/drive/v2/web/search-parameters
file_list = drive.ListFile(
    {'q': "'root' in parents"}).GetList()

for f in file_list:
  # 3. Print the name and id of the files
  print('title: %s, id: %s' % (f['title'], f['id']))

ПРИМЕЧАНИЕ: когда вы сделаете это, колаб перенесет вас на другую страницу для аутентификации и заставит вставить секретный ключ. Просто следуйте указаниям службы, это довольно просто.

Надеюсь, это помогло вам. Дайте мне знать, если вам нужно что-то еще или вы что-то не поняли. :)

0 голосов
/ 26 февраля 2020

Я бы сказал, что вы можете использовать Google Drive API для отображения файлов на вашем Google Диске вместо GCS Bucket. Вы можете найти документацию здесь .

Вы также можете использовать PyDrive , что довольно легко понять. Это пример, вам нужно только настроить запрос "q" в соответствии с вашими потребностями:

from pydrive.drive import GoogleDrive
from pydrive.auth import GoogleAuth

gauth = GoogleAuth()

gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file in file_list:
  print(f"title: {file['title']}, id: {file['id']}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...