# Load data locally with structure:# directory# - class1# - image1# - image2# - ...# - class2# - image1# - image2# - ...import os
import pandas as pd
# Load datadata_dir ='sample'classes = os.listdir(data_dir)
image_filenames = []
y = []
for c in classes:
for f in os.listdir(os.path.join(data_dir, c)):
image_filenames.append(os.path.join(data_dir, c, f))
y.append(c)
# Load imagesfrom PIL import Image
import numpy as np
X = []
for f in image_filenames:
im = Image.open(f)
# Resize to 64x64 im = im.resize((64, 64))
# Convert to numpy array some_x = np.array(im)
# Reshape to one row some_x = some_x.reshape(-1)
X.append(some_x)
# Convert to numpy arraysX = np.array(X)
y = np.array(y)
X.shape, y.shape
((335, 12288), (335,))
# Look at some imagesimport matplotlib.pyplot as plt
some_image = X[8].reshape(64, 64, 3)
print(y[8])
print(some_image.shape)
plt.imshow(some_image)
parcel
(64, 64, 3)
<matplotlib.image.AxesImage at 0x7fdbb1b0ceb0>
# Split data into train and testfrom sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=918379)