Я пытаюсь создать свой первый CNN для прогнозирования цен на квартиры. Проблема в том, что после 1-5 эпох значение потери застревает и не уменьшается, только немного увеличивается, а затем снова уменьшается. Заранее спасибо)
from keras.layers import Conv2D, MaxPool2D, Dense, BatchNormalization, Flatten
from keras.optimizers import Adam
from keras.models import Sequential
from keras.preprocessing.image import ImageDataGenerator
from PIL import Image
import pandas as pd
train_data_df = pd.read_excel('train_data_cnn.xlsx')
test_data_df = pd.read_excel('test_data_cnn.xlsx')
datagen = ImageDataGenerator(rescale=1./255)
train_data = datagen.flow_from_dataframe(dataframe=train_data_df, x_col='filepath', y_col='price', class_mode='raw', directory=r'C:\Users\Kojimba\PycharmProjects\DeepEval\CNN', batch_size=20)
test_data = datagen.flow_from_dataframe(dataframe=train_data_df, x_col='filepath', y_col='price', class_mode='raw', directory=r'C:\Users\Kojimba\PycharmProjects\DeepEval\CNN', batch_size=20)
model = Sequential([
Conv2D(32, kernel_size=32, strides=(2,2), padding='same', activation='relu', input_shape=(256, 256, 3), data_format='channels_last'),
#BatchNormalization(),
MaxPool2D(strides=2),
Conv2D(128, kernel_size=64, strides=(4,4), padding='same', activation='relu'),
#BatchNormalization(),
MaxPool2D(),
Flatten(),
Dense(8, activation='relu', kernel_initializer='random_normal', bias_initializer='zeros'),
Dense(8, activation='relu', kernel_initializer='random_normal', bias_initializer='zeros'),
Dense(1, activation='linear', kernel_initializer='random_normal', bias_initializer='zeros')
])
model.compile(Adam(lr=0.01, beta_1=0.98, beta_2=0.999), loss='mean_absolute_percentage_error')
model.summary()
model.fit_generator(train_data, steps_per_epoch=24, epochs=100)
model.evaluate_generator(test_data)