Ali*_*ini 1 python machine-learning training-data tensorflow jupyter-notebook
因此,我根据人类的存在为我的图像提供了“0”和“1”的标签。当我传递所有图像并尝试训练我的模型时。我收到内存错误。
import warnings
warnings.filterwarnings('ignore')
import tensorflow as to
import tensorflow.keras
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.callbacks import ReduceLROnPlateau, CSVLogger, EarlyStopping
from tensorflow.keras.models import Model
from tensorflow.keras.layers import GlobalAveragePooling2D, Dense
from tensorflow.keras.applications.resnet50 import ResNet50
from PIL import Image
import os
import numpy as np
train_x=[]
train_y=[]
for path in os.listdir('C:\\Users\\maini_\\Desktop\\TestAndTrain\\in\\train'):
img = Image.open('C:\\Users\\maini_\\Desktop\\TestAndTrain\\in\\train\\'+path)
train_x.append(np.array(img))
train_y.append(1)
img.close()
for path in os.listdir('C:\\Users\\maini_\\Desktop\\TestAndTrain\\notin\\train'):
img = Image.open('C:\\Users\\maini_\\Desktop\\TestAndTrain\\notin\\train\\'+path)
train_x.append(np.array(img))
train_y.append(0)
img.close()
print("done" )
train_x = np.array(train_x)
train_x = train_x.astype(np.float32)
train_x /= 255.0
train_y = np.array(train_y)
Run Code Online (Sandbox Code Playgroud)
我正在与
您已尝试将3094
大小的图像720x1280
作为单个批次传递到您的模型中,从而产生总共31.9GB的数据。您的 GPU 过载并且无法一次物理存储和处理所有数据,您需要使用批处理。
由于每次尝试处理数据时都会遇到麻烦,我建议使用ImageDataGenerator()
和flow_from_directory()
它将自动加载图片以进行训练。
一种理想的设置方式如下
train_datagen = ImageDataGenerator(
rescale=1./255,
validation_split=0.3) #Splits the data 70/30 for training and validation
train_generator = train_datagen.flow_from_directory(
train_data_dir,
color_mode='grayscale',
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical',
shuffle=True,
subset='training')
validation_generator = train_datagen.flow_from_directory(
train_data_dir,
color_mode='grayscale',
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical',
shuffle=True,
subset='validation')
Run Code Online (Sandbox Code Playgroud)
然后要适应模型,您需要调用model.fit_generator()
该类
model.fit_generator(train_generator, epochs=epochs, callbacks=callbacks, validation_data=validation_generator)
这是在 Keras 中训练模型时处理大量图像的最佳方法,因为数据是从每个批次的目录中生成(或流动)的,而不是在 Python 中手动加载等等。唯一需要注意的是目录设置与您当前拥有的目录设置略有不同。您需要将目录设置更改为
TestAndTrain
-Train
-in
-notin
-Test
-in
-notin
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
599 次 |
最近记录: |