Google ColaboratoryでGoogle Driveにアクセスする方法
from google.colab import drive
drive.mount('/content/drive')
- 上記記載のコードを実行するとドライブにアクセスできるようになります。
- Go to this URL in a browser:との承認URLが表示されるので承認します。
!ls 'drive/My Drive'
- 無事アクセスできれば、lsコマンドで中身が確認できます。
kerasで自作データセットを読み込むには
- npzファイルをローカルで作成しておき、driveにアップロードし、Google Colaboratoryで読み込む。
- ドライブのファイルに画像データを入れておき読み込む。(今回は省略)
ローカルで自前のデータセットを作成
- まずnpzを作成します。
# データ作成 保存
import keras
from keras.utils import np_utils
from keras.layers.convolutional import Conv2D, MaxPooling2D
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.preprocessing.image import array_to_img, img_to_array, load_img
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import os
import re
def list_pictures(directory, ext='jpg|jpeg|bmp|png|ppm'):
return [os.path.join(root, f)
for root, _, files in os.walk(directory) for f in files
if re.match(r'([\w]+\.(?:' + ext + '))', f.lower())]
# 画像一枚、確認
# temp_img = load_img('./dataset1/F0.jpg', target_size=(64,64))
# temp_img_array = img_to_array(temp_img)
# print(temp_img_array.shape)
X = []
Y = []
for picture in list_pictures('./dataset1/'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(0)
for picture in list_pictures('./dataset2/'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(1)
# arrayに変換
X = np.asarray(X)
Y = np.asarray(Y)
# 中身確認
# print(type(X))
# print(type(Y))
# print(X.size)
# print(Y.size)
# print(len(X))
# print(len(Y))
# print(X)
# print(Y)
# 画素値を0から1の範囲に変換
X = X.astype('float32')
X = X / 255.0
# クラスの形式を変換
Y = np_utils.to_categorical(Y, 2)
# 学習用データとテストデータ
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=111)
# npz形式へ書き出し
np.savez("/Users/test/Desktop/dataset.npz",X_train=X_train,X_test=X_test,y_train=y_train,y_test=y_test)
-
ほぼこちらを参考にさせて頂きました。感謝です。
https://qiita.com/haru1977/items/17833e508fe07c004119 -
list_picturesが私の環境のkerasのバージョンでは動かなかったため、これもググってコピペしています。
-
npzが出来上がるので、あとはGoogle Driveにアップロードします。
Google Colaboratoryでnpzを読み込む
- 私はkerasフォルダを作成しそこにnpzをアップロードしました。
- 以下、Google Colaboratoryで実行し読み込みます。
datasets = np.load("drive/My Drive/keras/datasets.npz")
X_train = datasets['X_train']
X_test = datasets['X_test']
y_train = datasets['y_train']
y_test = datasets['y_test']
# 中身確認
print(datasets['X_train'].shape)
print(datasets['X_test'].shape)
print(datasets['y_train'].shape)
print(datasets['y_test'].shape)
最後に
- Google ColaboratoryはGPUが使用でき、そして無料なため、ありがたい限りです。