在google collab上传带有标签的图片

时间:2018-05-21 05:06:09

标签: jupyter-notebook google-colaboratory pydrive

我在谷歌合作中使用jupyter笔记本。我的训练数据集如下所示:

/data/label1/img1.jpeg
.
.
.
/data/label2/img90.jpeg

我想导入这样的数据集。我试过的事情

步骤1:

!pip install -U -q PyDrive
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
from os import walk
import os
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

第2步:

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

第3步

file_to_download = os.path.expanduser('./data/')
file_list = drive.ListFile(
    {'q': 'id_of_the_data_directory'})

不知道接下来该怎么做。文件夹data是我在驱动器中的协作笔记本文件夹。我想和标签一起阅读图片。为了做同样的事情,我正在使用代码:

filename_queue=tf.train.string_input_producer(tf.train.match_filenames_once('data/*/*.jpeg'))
image_reader=tf.WholeFileReader()
key,image_file=image_reader.read(filename_queue)
#key is the entire path to the jpeg file and we need only the subfolder as the label
S = tf.string_split([key],'\/')
length = tf.cast(S.dense_shape[1],tf.int32)
label = S.values[length-tf.constant(2,dtype=tf.int32)]
label = tf.string_to_number(label,out_type=tf.int32)
#decode the image
image=tf.image.decode_jpeg(image_file)
#then code to place labels and folders in corresponding arrays

2 个答案:

答案 0 :(得分:1)

您应该以递归方式上传数据集。 Here是有关如何将数据集从Google云端硬盘上传到Colab的示例

答案 1 :(得分:0)

首先,我想提一下,我们无法直接访问该文件夹。我们需要设置挂载点,并通过它访问所有驱动器内容。感谢answer 按照上面给出的答案链接中给出的步骤完全按照步骤操作。但只需确保根据创建的新驱动器文件夹更改路径。

PS:我仍然把问题打开,因为你可能会在这里找到带有子文件夹名称作为训练图像标签的图像数据集,它适用于这里,这里发布的解决方案适用于带有子文件夹的目录以及带文件的目录