我刚开始使用Google Colab学习Tensorflow,但我马上就面临问题。。。
我想加载已经存储在谷歌云存储中的现有个人数据集:
from google.colab import auth
auth.authenticate_user()
!gsutil ls gs://MY_BUCKET_NAME/
(其中MY_BUCKET_NAME实际上是"cloud-ai-platform-d7863b94-84f9…"(;MyDataSet_ normal"quot;MyDataSet_bad";在那个桶里,这意味着我的笔记本可以读取这个GCS桶。
然后我跟着https://www.tensorflow.org/datasets/gcs尝试加载数据集:ds_train, ds_test = tfds.load(name="MyDataSet_normal", split=["train", "test"], data_dir="gs://MY_BUCKET_NAME", try_gcs=True)
,但它返回:
DatasetNotFoundError:未找到数据集MyDataSet_normal
可用的数据集:
-abstract_reasoning
-essentdb
/aeslc
-。。。
看起来它正试图找到"MyDataSet_normal";在公开共享的tensorflow_datasets中,而不是我自己在my_BUCKET_NAME中的数据集。我试了一下谷歌,没有得到任何有用的信息。
我在这里想念什么?我如何告诉我的Colab笔记本,请查看数据集的my_BUCKET_NAME,而不是公共tensorflow_datasets?
谢谢!
我尝试过谷歌云,你可以指定路径,但我的跟踪期到期了,然后我使用免费的谷歌硬盘。
你可以使用model.save或对称方法,我将它们存储在数据库缓冲区中,但结果和保存的权重可以在安全的驱动器中保持不变。谷歌云和谷歌Collab上有很多功能,但对于数据集存储,除了过滤器之外,谷歌硬盘就足够了。
示例:长途终端可以节省提醒费用。
import io
import os
from os.path import exists
from apiclient import discovery
from httplib2 import Http
from oauth2client import client, file, tools
from googleapiclient.http import MediaIoBaseDownload
import tensorflow as tf
import tensorflow_io as tfio
import matplotlib.pyplot as plt
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Variables
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
n_folder = 50
encoding = "utf-8"
# define path variables
credentials_file_path = 'F:\temp\Python\credentials\credentials.json'
clientsecret_file_path = 'F:\temp\Python\credentials\client_secret_183167298301-pfhgtdf6k8r4918csmftemgk00ln8l4r.apps.googleusercontent.com.json'
# define API scope
SCOPE = 'https://www.googleapis.com/auth/drive'
# define store
store = file.Storage(credentials_file_path)
credentials = store.get()
# get access token
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(clientsecret_file_path, SCOPE)
credentials = tools.run_flow(flow, store)
# define API service
http = credentials.authorize(Http())
drive = discovery.build('drive', 'v3', http=http)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Fuctions
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
def download_file( file_id, filename, filetype ):
print( 'downfile: ' + filename + ': ' + filetype )
request = drive.files().get_media( fileId=file_id )
file = io.BytesIO()
downloader = MediaIoBaseDownload( file, request )
done = False
if filetype == "application/vnd.google-apps.folder":
return
try:
while done is False:
status, done = downloader.next_chunk()
print( F'Download {int(status.progress() * 100)}.' )
except HttpError as error:
print(F'An error occurred: {error}')
file = None
tf.io.write_file(
filename, file.getvalue(), name='write_file'
)
return
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Write result to file
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
file = 'F:\datasets\downloads\Actors\train\Pikaploy\01.tif'
image = tf.io.read_file( file )
image = tfio.experimental.image.decode_tiff(image, index=0)
image = tf.image.resize(image, [8,8], method='nearest')
filename='F:\temp\datasets\9.tif'
with open( filename, "wb" ) as f:
b = bytes(str(image), encoding='utf-8')
f.write(b)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Read result to file
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
temp = tf.io.read_file(
filename, name='dataset_9'
)
temp = tf.io.decode_raw(
temp, tf.uint8, little_endian=True, fixed_length=None, name=None
)
temp = tf.constant(temp, shape=(1, 8, 8, 3))
输出:
tf.Tensor(
[[[133 141 126 255]
[ 94 107 90 255]
[106 125 97 255]
[141 140 122 255]
[ 96 114 90 255]
[ 88 106 82 255]
[112 141 93 255]
[116 127 111 255]]
...
[[150 122 111 255]
[180 152 141 255]
[192 160 145 255]
[185 153 138 255]
[168 148 139 255]
[189 158 138 255]
[166 136 110 255]
[ 68 83 64 255]]], shape=(8, 8, 4), dtype=uint8)