from pyimagesearch.nn.conv import shallownet
from keras.optimizers import SGD
from imutils import paths
import matplotlib.pyplot as plt
import numpy as np
import argparse

ap = argparse.ArgumentParser()
ap.add_argument("-d", "--dataset", required=True, help="path to input dataset")

args = vars(ap.parse_args())

print("[INFO] loading images...")
imagePaths = list(paths.list_images(args["dataset"]))

sp = simplePreprocessor.SimplePreprocessor(32, 32)
iap = imagetoarraypreprocessor.ImageToArrayPreprocessor()

sdl = simpleDatasetLoader.SimpleDatasetLoader(preprocessors=[sp, iap])
(data, labels) = sdl.load(imagePaths, verbose=50)
data = data.astype("float") / 255.0

(trainX, testX, trainY, testY) = train_test_split(data,
                                                  labels,
                                                  test_size=0.25,
                                                  random_state=42)

trainY = LabelBinarizer().fit_transform(trainY)
testY = LabelBinarizer().fit_transform(testY)

# initialize the network
from keras.preprocessing.image import ImageDataGenerator
from keras.optimizers import Adam
import json
import os

aug = ImageDataGenerator(rotation_range=20,
                         zoom_range=0.15,
                         width_shift_range=0.2,
                         height_shift_range=0.2,
                         shear_range=0.15,
                         horizontal_flip=True,
                         fill_mode="nearest")

means = json.loads(open(config.DATASET_MEAN).read())

sp = simplePreprocessor.SimplePreprocessor(227, 227)
pp = patchpreprocessor.PatchPreprocessor(227, 227)
mp = meanpreprocessor.MeanPreprocessor(means["R"], means["G"], means["B"])
iap = imagetoarraypreprocessor.ImageToArrayPreprocessor()

batchSize = 64

trainGen = hdf5datasetgenerator.HDF5DatasetGenerator(
    config.TRAIN_HDF5,
    batchSize,
    aug=aug,
    preprocessors=[pp, mp, iap],
    classes=config.NUM_CLASSES)
valGen = hdf5datasetgenerator.HDF5DatasetGenerator(config.VAL_HDF5,
                                                   batchSize,
                                                   aug=aug,
Esempio n. 3
0
from keras.optimizers import SGD
from keras.callbacks import LearningRateScheduler
import json
import os

aug = ImageDataGenerator(rotation_range=20,
                         zoom_range=0.15,
                         width_shift_range=0.2,
                         height_shift_range=0.2,
                         shear_range=0.15,
                         horizontal_flip=True,
                         fill_mode="nearest")

means = json.loads(open(config.DATASET_MEAN).read())

sp = simplePreprocessor.SimplePreprocessor(64, 64)
mp = meanpreprocessor.MeanPreprocessor(means["R"], means["G"], means["B"])
iap = imagetoarraypreprocessor.ImageToArrayPreprocessor()

batchSize = 32

trainGen = hdf5datasetgenerator.HDF5DatasetGenerator(
    config.TRAIN_HDF5,
    batchSize,
    aug=aug,
    preprocessors=[sp, mp, iap],
    classes=config.NUM_CLASSES)
valGen = hdf5datasetgenerator.HDF5DatasetGenerator(config.VAL_HDF5,
                                                   batchSize,
                                                   aug=aug,
                                                   preprocessors=[sp, mp, iap],
                help="path to output label binarizer")

args = vars(ap.parse_args())

inputWidth = 32
inputHeight = 32
inputDepth = 3

trainingEpochs = 500

print("[INFO] loading images...")
imagePaths = sorted(list(paths.list_images(args["dataset"])))
random.seed(42)
random.shuffle(imagePaths)

sp = simplePreprocessor.SimplePreprocessor(inputWidth, inputHeight)
iap = imagetoarraypreprocessor.ImageToArrayPreprocessor()

sdl = simpleDatasetLoader.SimpleDatasetLoader(preprocessors=[sp, iap])
(data, labels) = sdl.load(imagePaths, depth=inputDepth, verbose=100)
data = data.astype("float") / 255.0

classNames = sorted(list(set(labels)))
classes = len(classNames)
print(classNames)

labels = np.array(labels)
lb = LabelBinarizer()
labels = lb.fit_transform(labels)

print(lb.classes_)
Esempio n. 5
0
args = vars(ap.parse_args())

aug = ImageDataGenerator(rotation_range=30,
                         width_shift_range=0.1,
                         height_shift_range=0.1,
                         shear_range=0.2,
                         zoom_range=0.2,
                         horizontal_flip=True,
                         fill_mode="nearest")

print("[INFO] loading images...")
imagePaths = list(paths.list_images(args["dataset"]))
classNames = [pt.split(os.path.sep)[-2] for pt in imagePaths]
classNames = [str(x) for x in np.unique(classNames)]

sp = simplePreprocessor.SimplePreprocessor(224, 224)
iap = imagetoarraypreprocessor.ImageToArrayPreprocessor()

sdl = simpleDatasetLoader.SimpleDatasetLoader(preprocessors=[sp, iap])
(data, labels) = sdl.load(imagePaths, verbose=500)
data = data.astype("float") / 255.0

lb = LabelBinarizer()
labels = lb.fit_transform(labels)

(trainX, testX, trainY, testY) = train_test_split(data,
                                                  labels,
                                                  test_size=0.25,
                                                  random_state=42)

trainY = LabelBinarizer().fit_transform(trainY)