首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于卷积神经网络

关于卷积神经网络
EN

Stack Overflow用户
提问于 2020-06-29 21:11:39
回答 1查看 77关注 0票数 0

我想寻求一些关于神经网络的帮助,我正在做一个学校项目,其中我被要求建立深度假检测神经网络。我不确定为什么要在神经中增加更多的层。我在训练过程中的准确率从第一个时期的0.7跃升到第二到第五个时期的1.0,这是过度拟合和损失值到一个奇怪的数字,希望寻求关于我如何调整神经网络以适应深度假检测的建议。

感谢大家抽出时间阅读

代码语言:javascript
复制
import tensorflow as tf
from keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D, Dropout

model = Sequential()
model.add(Conv2D(32, (3,3), input_shape = (256,256,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(Dropout(0.20))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(Dropout(0.20))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(Dropout(0.20))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))


#flatten the layer conv 2d dense is 1d data set
model.add(Flatten()) #convets 3d feature maps to 1D feature Vectors

model.add(Dense(64))
model.add(Activation('relu'))

model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss="binary_crossentropy", optimizer="adam", metrics=['accuracy'])

model.fit(X, y, batch_size=32, epochs=5)

模型摘要

代码语言:javascript
复制
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 254, 254, 32)      896       
_________________________________________________________________
activation (Activation)      (None, 254, 254, 32)      0         
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 127, 127, 32)      0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 125, 125, 64)      18496     
_________________________________________________________________
activation_1 (Activation)    (None, 125, 125, 64)      0         
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 62, 62, 64)        0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 60, 60, 64)        36928     
_________________________________________________________________
activation_2 (Activation)    (None, 60, 60, 64)        0         
_________________________________________________________________
dropout (Dropout)            (None, 60, 60, 64)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 58, 58, 64)        36928     
_________________________________________________________________
activation_3 (Activation)    (None, 58, 58, 64)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 58, 58, 64)        0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 56, 56, 64)        36928     
_________________________________________________________________
activation_4 (Activation)    (None, 56, 56, 64)        0         
_________________________________________________________________
dropout_2 (Dropout)          (None, 56, 56, 64)        0         
_________________________________________________________________
conv2d_5 (Conv2D)            (None, 54, 54, 64)        36928     
_________________________________________________________________
activation_5 (Activation)    (None, 54, 54, 64)        0         
_________________________________________________________________
flatten (Flatten)            (None, 186624)            0         
_________________________________________________________________
dense (Dense)                (None, 64)                11944000  
_________________________________________________________________
activation_6 (Activation)    (None, 64)                0         
_________________________________________________________________
dense_1 (Dense)              (None, 1)                 65        
_________________________________________________________________
activation_7 (Activation)    (None, 1)                 0         
=================================================================
Total params: 12,111,169
Trainable params: 12,111,169
Non-trainable params: 0
_________________________________________________________________
EN

回答 1

Stack Overflow用户

发布于 2020-07-01 00:37:32

你必须在每一层中指定更多的东西,而不仅仅是过滤器的大小和数量。这将帮助您提高模型性能。

例如,您可以使用来自keras_optimizers的adam,这将有助于在训练模型期间提高准确性。此外,来自keras.regularizers的l2将帮助您减少过度拟合。这意味着你不能仅仅通过增加纪元来提高精度,你必须在开始训练之前首先建立一个好的模型

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62638906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档