使用Keras深度学习进行图层计数

问题描述 投票:0回答:1

我正在研究我的第一个深度学习项目,用卷积神经网络计算图像中的图层。

在解决了大量错误之后,我终于可以训练我的模型了。但是,我的准确率为0;在第二纪元之后它就停止了,因为它没有学到任何东西。

输入将是1200 x 100大小的图像,输出将是整数。

如果有人可以查看我的模型,可以提出建议。那将是非常棒的。

谢谢。

from keras.layers import Reshape, Conv2D, MaxPooling2D, Flatten


model = Sequential()
model.add(Convolution2D(32, 5, 5, activation='relu', input_shape=(1,1200,100)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(64, 5, 5, activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(1, activation='relu'))



batch_size = 1
epochs = 10
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(sgd, loss='poisson', metrics=['accuracy'])

earlyStopping=keras.callbacks.EarlyStopping(monitor='val_loss', patience=0, verbose=0, mode='auto')
history = model.fit(xtrain, ytrain, batch_size=batch_size, nb_epoch=epochs, validation_data=validation, callbacks=[earlyStopping], verbose=1)
image-processing machine-learning deep-learning keras
1个回答
1
投票

批评有这么多东西?

  1. 1200 * 100大小的图像(我认为它们是像素)对于CNN而言是如此之大。在ImageNet比赛中,图像全部为224 * 224,299 * 299。你为什么不在最后一层使用线性或sigmoid激活?
  2. 您是否将输出在0和1之间标准化?将其标准化,只需将输出除以输出的最大值,并在训练/预测后使用CNN时乘以相同的数字。
  3. 不要将它与小数据一起使用,不必要:earlyStopping = keras.callbacks.EarlyStopping(monitor ='val_loss',耐心= 0,详细= 0,模式='自动')
  4. 使用Adam将优化器降低到0.001。

你的数据实际上并不大,它应该可以工作,可能你的问题在于输出/输入的标准化,检查它们。

© www.soinside.com 2019 - 2024. All rights reserved.