利用Keras建立CNN模型对图像进行分类

利用Keras建立CNN模型对图像进行分类,keras,convolutional-neural-network,Keras,Convolutional Neural Network,我有一个图像分类任务,有一个巨大的数据集(800000个标记数据、80000个未标记数据和10个要分类的类),我已经建立了模型,但训练过程将非常耗时,因此我想知道我的模型是否足够健壮,能够处理该任务: img_宽度,img_高度=150150 批量大小=64 每个历元的样本数=671429 nb_val_样本=167852 nb_过滤器1=32 nb_过滤器2=64 nb_过滤器3=128 conv_size=3 池大小=2 类数=10 #定义类权重到handel不平衡类 def get_等级权

我有一个图像分类任务,有一个巨大的数据集(800000个标记数据、80000个未标记数据和10个要分类的类),我已经建立了模型,但训练过程将非常耗时,因此我想知道我的模型是否足够健壮,能够处理该任务:

img_宽度,img_高度=150150
批量大小=64
每个历元的样本数=671429
nb_val_样本=167852
nb_过滤器1=32
nb_过滤器2=64
nb_过滤器3=128
conv_size=3
池大小=2
类数=10
#定义类权重到handel不平衡类
def get_等级权重(计数,平滑系数=0):
如果平滑系数>0:
p=最大(计数)*平滑系数
对于k in计数:
k+=p
多数=最大(计数)
返回{cls:cls的浮点(多数/计数),枚举中的计数(计数)}
类别权重=获取类别权重([37415、9344、128127、80545、60559、64548、31029、105297、309151、13266],0.1)
#初始化CNN
分类器=顺序()
#步骤1-卷积
添加(卷积2D(nb_过滤器1,卷积大小,卷积大小,输入形状=(卷积宽度,卷积高度,3),激活='relu',边框模式='same'))
#步骤2-池
add(MaxPoolig2D(池大小=(池大小,池大小)))
#添加第二个卷积层
添加(卷积2D(nb_过滤器2,conv_大小,conv_大小,激活='relu',border_mode='same'))
add(MaxPoolig2D(池大小=(池大小,池大小)))
#添加第三个卷积层
add(卷积2d(nb_filters3,conv_size,conv_size,activation='relu',border_mode='same'))
add(MaxPoolig2D(池大小=(池大小,池大小)))
#步骤3-展平
添加(展平())
#步骤4-完全连接
add(密集(输出尺寸=1024,激活=relu'))
分类器。添加(辍学(0.2))
add(密集(输出尺寸=1024,激活=relu'))
分类器。添加(辍学(0.2))
add(稠密(输出\u dim=classes\u num,激活='softmax'))
#编辑CNN
compile(优化器='RMSprop',loss='categorical_crossentropy',metrics=['accurity'])

我想这样说很难。。但我建议您在数据集上使用imagenet数据集预训练模型(InceptionNet、ResNet)和finetune模型。我敢肯定,这将是一个更好的模式比上述模式。为此,请检查keras应用程序。你会找到办法的。非常感谢你的回复,我一定会试试的。