我使用的是Tensorflow和Keras的最新版本。 我已经看到了加载和使用像MNIST这样的数据集的例子。
但是如何使用本地图像执行此操作?
答案 0 :(得分:2)
首先阅读所有本地图片:
import cv2
import os,sys
from glob import glob
folder = "path_to_images_folder"
images = glob(os.path.join(folder, '*.images_extension/s'))
然后,您可以将图像转换为确定宽度和数量的数组。高度像素:
def proc_images():
"""
Returns array x of resized images:
"""
x = []
WIDTH = 32 #you can adapt to the desired_width(i.e. 64, 128)
HEIGHT = 32 #you can adapt to the desired_height ( 64, 128)
for img in images:
base = os.path.basename(img)
# Read and resize image
full_size_image = cv2.imread(img)
#x.append(full_size_image)
x.append(cv2.resize(full_size_image, (WIDTH,HEIGHT), interpolation=cv2.INTER_CUBIC))
return x
x = proc_images()
从这一点开始,您可以加入图像相关标签,并使用input_shape(WIDTH,HEIGHT,3)开始开发所需的神经网络。
示例:
model = Sequential()
model.add(layers.Conv2D(32, (2, 2), input_shape=(32, 32, 3)))
答案 1 :(得分:0)
您还可以使用ImageDataGenerator
,这会对您的数据进行随机播放并为您进行扩充(请参阅https://keras.io/preprocessing/image/)。
from keras.preprocessing.image import ImageDataGenerator
image_datagen = ImageDataGenerator(rescale=1./255)
image_generator = image_datagen.flow_from_directory(
'your_training_images/train',
target_size=(image_height, image_width),
batch_size=batch_size,
class_mode='binary')