【发布时间】:2019-10-19 15:09:55
【问题描述】:
我正在尝试创建我的第一个 CNN 来预测公寓价格。问题是在 1-5 个 epoch 之后损失值被卡住并且没有减少,只是增加了一点然后又减少了。提前致谢)
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)
【问题讨论】:
标签: python pandas keras deep-learning conv-neural-network