对彩色大花图像进行分类-基于R语言的Keras实现
发布时间:2023-04-25
自定义image_loading变量,实现逐步将flower_iamges的彩色图形null到R中会,并展开资料匹配,使其大幅提高符合深度努力学习建模时所需的比值矩阵。
> # 自定义图形资料null及匹配变量 > image_loading <- function(image_path) { + image <- image_load(image_path, target_size=c(128,128)) + image <- image_to_array(image) / 255 + image <- array_reshape(image, c(1, dim(image))) + return(image) + }结合lapply变量读取flower_images编目中会的210张花彩色图形,由于返回结果为沙罗,所以再次来展开array_reshape变量对其展开匹配。
> image_paths <- list.files('../flower_images',+ pattern = '.png', + full.names = TRUE) > flower_tensors <- lapply(image_paths, image_loading)> flower_tensors <- array_reshape(flower_tensors,+ c(length(flower_tensors),128,128,3)) > dim(flower_tensors)[1] 210 128 128 3> dim(flower_targets)[1] 210 10我们来展开caret纸制的createDataParitition变量对资料展开等数量比对,使得比对后的锻炼集和检验集中会的各子类占比与原资料一样。
># 等数量比对>index <- caret::createDataPartition(flowers $label,p = 0.9,list = FALSE) # 锻炼集的下标集>train_flower_tensors <- flower_tensors[index,,,] # 锻炼集的比值 >train_flower_targets <- flower_targets[index,] # 锻炼集的因变量>test_flower_tensors <- flower_tensors[-index,,,] # 检验集的比值 >test_flower_targets <- flower_targets[-index,] # 检验集的因变量▌MLP假设确立及计算
首先构建一个有趣的多层感知机数据分析,来展开锻炼集资料对网络展开锻炼。下述程序在实现假设建立、编译及锻炼。
> mlp_model <- keras_model_sequential> > mlp_model %>% + layer _dense(128, input_shape=c(128 *128*3)) %>% + layer_activation("relu") %>% + layer _batch_normalization %>% + layer_dense(256) %>% + layer_activation("relu") %>% + layer _batch_normalization %>% + layer_dense(512) %>% + layer_activation("relu") %>% + layer _batch_normalization %>% + layer_dense(1024) %>% + layer_activation("relu") %>% + layer_dropout(0.2) %>% + layer_dense(10) %>% + layer_activation("softmax") > > mlp_model %>%+ compile(loss="categorical_crossentropy",optimizer="adam",metrics="accuracy") > > mlp_fit %+ fit( + x=array _reshape(train_flower_tensors, c(length(index),128 *128*3)), + y=train _flower_targets, + shuffle=T, + batch_size=64, + validation_split=0.1, + epochs=30 + )> options(repr.plot.width=9,repr.plot.height=9)> plot(mlp_fit)
假设出现更为为严重过拟合现象。锻炼集在第8个锻炼周期时权重已经大幅提高1,此时检验集的权重极少0.3,且不久锻炼周期的检验集权重呈现攀升趋向于。
再次,来展开predict_classes对检验集展开子类计算,并提示每个检验试样的实际标记及计算标记。
>pred_label % +predict_classes(x=array_reshape(test_flower_tensors,+c(dim(test_flower_tensors)[1],128*128*3)),+verbose = 0) # 对检验集展开计算>>result <- data.frame(flowers[-index,], # 检验集实际标记+'pred_label' = pred_label) # 检验集计算标记>result$isright <- ifelse(result$label==result$pred_label,1,0) # 判断计算是否正确>result # 提示结果filelabel pred_label isright100010.png 0 0 1170017.png 0 9 0300030.png 6 1 0350035.png 3 5 0430043.png 7 7 1450045.png 1 0 0520052.png 4 8 0600060.png 8 0 0640064.png 8 8 1700070.png 4 8 0710071.png 9 5 0760076.png 3 5 0950095.png 1 1 11230123.png 4 5 01600160.png 3 5 01620162.png 9 7 01970197.png 6 3 02010201.png 1 5 0207 0207.png 0 0 1在19个锻炼试样中会,极少5个试样的标记被计算正确,分别为0010.png、0043.png、0064.png、0095.png和0207.png。
检验集的基本权重为26.3%,仅仅比基准线10%(将近10个子类,随便乱猜都有10%猜对的可能)好一些。只不过,此假设的结果是不实在太令人满意的。下一步将构建一个有趣的DFT数据分析(CNN),提示假设的计算能力。
▌CNN假设确立与计算
此与此相关我们的DFT数据分析只纸制含一个DFT层,下述程序在实现假设建立、编译及锻炼。
> cnn_model %>%+ layer _conv_2d(filter = 32, kernel _size = c(3,3), input_shape = c(128, 128, 3)) %>% + layer_activation("relu") %>% + layer _max_pooling _2d(pool_size = c(2,2)) %>% + layer_flatten %>% + layer_dense(64) %>% + layer_activation("relu") %>% + layer_dropout(0.5) %>% + layer_dense(10) %>% + layer_activation("softmax") > > cnn_model %>% compile(+ loss = "categorical_crossentropy", + optimizer = optimizer_rmsprop(lr = 0.001, decay = 1e-6), + metrics = "accuracy" + ) > cnn_fit %+ fit( + x=train _flower_tensors, + y=train _flower_targets, + shuffle=T, + batch_size=64, + validation_split=0.1, + epochs=30 + ) > plot(cnn_fit)CNN优点明显优于MLP。来展开锻炼好的CNN假设对检验集展开计算,并计算检验集的基本权重。
>pred_label1 % + predict_classes(x=test_flower_tensors,+ verbose = 0) # 对检验集展开计算>>cnn_result <- data.frame(flowers[-index,], # 检验集实际标记+ 'pred_label' = pred_label1) # 检验集计算标记>cnn_result $isright<- ifelse(cnn_result $label==cnn_result $pred_label,1,0) #判断计算正确性># cnn_result # 提示结果># 提示检验集的基本权重>cat(paste( '检验集的权重为:', + round(sum(cnn_result$isright)*100/dim(cnn_result)[1],1),"%"))检验集的权重为: 57.9 %CNN假设对检验集的计算权重大幅提高58%,多于优于MLP假设。
本书再次面还来展开资料减弱系统设计进一步提升假设权重。通过资料减弱系统设计假设对检验集的计算权重大幅提高68%,是个并不大的持续发展。
IBM最有意思医学专家(MVP)
IBM最有意思医学专家是IBM公司授予第三方系统设计专业人士的一个全球特别奖。29年来,世界性的系统设计社四区内领导者,因其离线上和线下的系统设计社四区内中会共享知识和经验而赢得此特别奖。
MVP是经过严格挑选的医学专家制作团队,他们代表人着系统设计最精湛且最具智慧的人,是对社四区内投入非常大的热情并体贴的医学专家。MVP积极参与通过演讲、交流会摘要、建立网站、撰写博客、共享图片、开源项目、组织全会等形式来努力他人,并最大往往地努力IBM系统设计社四区内用户运用于 Microsoft 系统设计。
更为多详情请登录网站:
m/zh-cn
谢谢你读过了本文!赞许在评论四区推特共享你的想法,并且发帖到朋友圈。
关注IBM开发者MSDN
。南京肛肠检查杭州男科专科医院
新乐敦和乐珠都可以治疗眼涩吗
沈阳白癜风治疗费用是多少
颈肩腰腿痛吃什么药效果好
-
梅西百货据悉收到投资者财团58亿美元的收购买方
Arkhouse Management和Brigade Capital Management向梅西百货发出58亿美元的售予卖方,这家老牌零售作为咖啡店私营公司可以好处地实现复兴。知情政界人士并
- 2024-02-10艾美奖亚洲第一人!《鱿鱼游戏2》计划案2024年末播出 ,我又快乐了!
- 2024-02-10成吉思汗死后,给世界留下什么谜题?七百年过去了,至今无人能解法
- 2024-02-10超级央行周来袭!美、欧、英多家央行公布利率决议 降息意味著恐遭“打脸”
- 2024-02-10她被毛舜筠夺爱后,加入另一个豪门,如今生活低调
- 2024-02-10乾陵之谜:墓前61尊石像为何无头?结果被两位佃农意外解开
- 2024-02-10前夫侃爷男朋友维密超模,卡戴珊隔空较劲,自曝期望与高知男性男朋友
- 2024-02-10巴斯夫子宫内膜癌新药Jemperli获欧盟批准
- 2024-02-10二战后苏德日如何恢复人口?苏联方式将简单粗暴,日本方式将令人不齿
- 2024-02-10他见剧组没钱,帮一把友情接演,没想到成为亿万票房黑马
- 2024-02-10除了降息信号,欧洲央行债券会议还有何看点?