【发布时间】:2018-04-12 16:00:53
【问题描述】:
我有 3400 个图像(字)的数据集,我正在使用 Conv2D 训练我的数据集改进我的模型。如果我做错了什么,请指导我。完整代码如下。
batch_size=100
num_classes=37
epochs=30
os.chdir("E:");
path="E:/Dummy/Level-1";
classes=os.listdir(path)
x=[]#Datapoints
y=[]#labels
for fol in classes:
imgfiles=os.listdir(path+u'\\'+fol);
for img in imgfiles:
im=mpimg.imread(path+u'\\'+fol+u'\\'+img);
x.append(im)
y.append(fol)
x=numpy.array(x)
y=numpy.array(y)
print(x.shape)
print(y.shape)
x=x.reshape((-1,100,100,1))
n=x.shape[0]
randomize=numpy.arange(n)
numpy.random.shuffle(randomize)
randomize
x=x[randomize]
y=y[randomize]
test_split=round(n*2/3)
x_train=x[:test_split]
y_train=y[:test_split]
x_test=x[test_split:]
y_test=y[test_split:]
y_train=keras.utils.to_categorical(y_train, num_classes)
y_test=keras.utils.to_categorical(y_test, num_classes)
inputs=Input(shape=(100,100,1))
x=Conv2D(16, (3, 3), padding='same')(inputs)
x=Conv2D(16, (3, 3), padding='same')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=SReLU()(x)
x=Conv2D(32, (3, 3), padding='same')(x)
x=Conv2D(32, (3, 3), padding='same')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=SReLU()(x)
x=Conv2D(64, (3, 3), padding='same')(x)
x=Conv2D(64, (3, 3), padding='same')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=SReLU()(x)
x=Conv2D(128, (3, 3), padding='same')(x)
x=Conv2D(128, (3, 3), padding='same')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=Dropout(0.2)(x)
x=SReLU()(x)
x=Flatten()(x)
x=Dense(num_classes)(x)
output=Activation('softmax')(x)
model=Model([inputs], output)
opt=keras.optimizers.RMSprop(lr=1e-3)
model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
【问题讨论】:
标签: python python-3.x deep-learning keras