我正在Keras建立一个示例项目。该项目旨在确定猫与狗之间的区别。我在网上找到了example这样的模型:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(3, 150, 150)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (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(MaxPooling2D(pool_size=(2, 2)))
我的问题是,人们如何知道要使用哪些图层?在使用Conv2D
与Conv1D
对比另一层时,是否有指南或经验法则?
答案 0 :(得分:3)
总之 - 他们没有。提出良好的架构是当前深度学习研究的主要内容。有一些拇指,直觉的规则,但主要是 - 经验或应对现有的报告工作。
用非常简短的话说:
然而,如何编写,使用什么超参数,使用多少是一个巨大的开放式研究问题的问题,一开始最好的方法是复制别人的架构并获得一些经验/直觉什么可行,什么不适用于您正在使用的数据。