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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Keras深度学习进行图层计数相关的知识,希望对你有一定的参考价值。

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

在解决了大量错误之后,我终于可以训练我的模型了。但是,我的准确率为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)
答案

批评有这么多东西?

  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。

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

以上是关于使用Keras深度学习进行图层计数的主要内容,如果未能解决你的问题,请参考以下文章

使用 Keras 的 CNN 深度学习模型中的 PCA

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏

学习Keras:《Keras快速上手基于Python的深度学习实战》PDF代码+mobi

Keras深度学习实战(43)——深度Q学习算法

如何使用 Keras Function API 进行深度学习

除了Keras和Spacy之外,我可以使用Stanford Core NLP进行深度学习吗?