历史图中的准确度值与验证和训练数据集的混淆矩阵之间的差异[关闭]

问题描述 投票:0回答:0

在验证和训练数据集的历史图和混淆矩阵中未反映准确度值

这就是我得到的:

batch_size=100
tamaño_imagen=c(200,200)

火车

train_image_array = flow_images_from_directory(directory = paste0(base_dir, train_dir),shuffle = T,target_size = tamaño_imagen,color_mode = "grayscale",batch_size = batch_size, classes = c("control", "pd"))

验证

validation_image_array = flow_images_from_directory(directory = paste0(base_dir, validation_dir),shuffle = T,target_size = tamaño_imagen,color_mode = "grayscale", batch_size = batch_size, classes = c("control", "pd"))

测试

test_image_array_gen = flow_images_from_directory(directory = paste0(base_dir, test_dir),target_size = tamaño_imagen,shuffle = T, color_mode = "grayscale", batch_size = batch_size,classes = c("control", "pd"))
(output_n=train_image_array$num_classes)
    
initializer=initializer_random_normal(seed = 123)
model_1 <- keras_model_sequential() %>% 
    layer_conv_2d(filters = 16, kernel_size = c(3,3), padding = 'same', activation = 'relu', kernel_initializer = initializer, bias_initializer = initializer, input_shape = c(tamaño_imagen,1) ) %>%
     
    layer_max_pooling_2d(pool_size = c(2,2)) %>%
     
    layer_conv_2d(filters = 32, kernel_size = c(3,3), padding = 'same', activation = 'relu', kernel_initializer = initializer, bias_initializer = initializer, input_shape = c(tamaño_imagen,1) ) %>%
    
     layer_max_pooling_2d(pool_size = c(2,2)) %>%
    
     layer_conv_2d(filters = 64, kernel_size = c(3,3), padding = 'same', activation = 'relu', kernel_initializer = initializer, bias_initializer = initializer, ) %>%
    
     layer_max_pooling_2d(pool_size = c(2,2)) %>%
    
     layer_dropout(rate = 0.5) %>%
    
     layer_flatten() %>%
    
     layer_dense(units = 256, activation = 'relu', kernel_initializer = initializer, bias_initializer = initializer) %>%
    
     layer_dense(units = output_n, activation = 'sigmoid', name = 'Output', kernel_initializer = initializer, bias_initializer = initializer)
model_1 %>%
compile( loss='categorical_crossentropy', optimizer = optimizer_adam(learning_rate=0.0001), metrics = 'accuracy' )
batch_size=100
steps=as.integer(nrow(list_train_total)/batch_size) val_steps=as.integer(nrow(list_validation_total)/batch_size)
history <- model_1 %>%
fit(train_image_array, steps_per_epoch = steps, epochs=30, validation_data = validation_image_array, validation_steps = val_steps)
    
plot(history)
mutate(class=str_extract(file_name,'Control|Pd'))
valid_x=validation_image_array$filenames
dim(valid_x)
pred_valid=model_1 %>%
predict(valid_x)%>% k_argmax() head(pred_valid,10)
    
decode=function(x){
case_when(x==0~'Control', x==1~'Pd' ) }
pred_valid=sapply(pred_valid,decode)

Confusion matrix Training and validation accuracy

r machine-learning deep-learning neural-network conv-neural-network
© www.soinside.com 2019 - 2024. All rights reserved.