سلام
من 60,000
تصویر دارم هرکدوم 20 کیلوبایت و ابعاد 1590*700
و حجم کلی 1.3
گیگ
وقتی لود میکنم به صورت gray تو پایتون با 20% این دیتا رم 32 گیگم پر میشه !!
`img= misc.imread(path,True)`!
1- اگر نخوام resize کنم(چون خیلی از ویژگی های تصویرم میپره) راه دیگه ای هست که کیفیت تصویر پایین نیاد و رم رو هم پر نکنه که عکس اصلی رو بدم به شبکه ؟
2- عکس رو با scipy بخونم یاcv2 فرقی از نظر حافظه ی RAM میکنه ؟
3- این کارم کردم ولی نمیدونم step per epoch , epoch , validation stepتو
fit generator چی هستن و فرقشون با batch size تو flow_from_directory چی هست ؟
سوال دیگه اینکه مدل از قبل ساخته و کامپایل میشه و با fit generator آموزش میبینه !؟
کد زیر اشکالش چیه ؟
width=300
height=500
batch_size = 32
test_datagen = ImageDataGenerator(rescale=1./255)
train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'f:/train', # this is the target directory
target_size=(width, height), # all images will be resized to 150x150
batch_size=batch_size,
color_mode= "grayscale",
class_mode='binary') # since we use binary_crossentropy loss, we need binary labels
# this is a similar generator, for validation data
validation_generator = test_datagen.flow_from_directory(
'f:/validation',
target_size=(width, height),
batch_size=batch_size,
color_mode= "grayscale",
class_mode='binary')
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(width, height,1))) #??????????????????????????????????????????????????????
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
# the model so far outputs 3D feature maps (height, width, features)
model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit_generator(
train_generator,
steps_per_epoch=int(train_generator.samples/train_generator.batch_size),
epochs=3,
validation_data=validation_generator,
validation_steps=10)
با تشکر