не удается добавить input_shape в layer_zero_padding_2d в keras - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь написать следующий код python в R, используя keras и tensorflow, как подробно описано в информации о сеансе ниже:

def loadVggFaceModel():
 model = Sequential()
 model.add(ZeroPadding2D((1,1),input_shape=(224,224, 3)))
 model.add(Convolution2D(64, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(64, (3, 3), activation='relu'))
 model.add(MaxPooling2D((2,2), strides=(2,2)))

 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(128, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(128, (3, 3), activation='relu'))
 model.add(MaxPooling2D((2,2), strides=(2,2)))

 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(256, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(256, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(256, (3, 3), activation='relu'))
 model.add(MaxPooling2D((2,2), strides=(2,2)))

 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(MaxPooling2D((2,2), strides=(2,2)))

 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(ZeroPadding2D((1,1)))
 model.add(Convolution2D(512, (3, 3), activation='relu'))
 model.add(MaxPooling2D((2,2), strides=(2,2)))

 model.add(Convolution2D(4096, (7, 7), activation='relu'))
 model.add(Dropout(0.5))
 model.add(Convolution2D(4096, (1, 1), activation='relu'))
 model.add(Dropout(0.5))
 model.add(Convolution2D(2622, (1, 1)))
 model.add(Flatten())
 model.add(Activation('softmax'))

#you can download pretrained weights from https://drive.google.com/file/d/1CPSeum3HpopfomUEK1gybeuIVoeJT_Eo/view?usp=sharing
from keras.models import model_from_json
model.load_weights('vgg_face_weights.h5')

vgg_face_descriptor = Model(inputs=model.layers[0].input, outputs=model.layers[-2].output)

return vgg_face_descriptor

Я пытался реализовать его в R, но застрял на первый уровень: layer_zero_padding_2d, так как у него нет аргумента input_shape.

model <- 
  keras_model_sequential() %>% 
    layer_zero_padding_2d(
      padding = c(1L, 1L),
      input_shape = c(224, 224, 3)
 )

Error in layer_zero_padding_2d(., padding = c(1L, 1L), input_shape = c(224, : unused argument (input_shape = c(224, 224, 3))

Я запустил код python, и он работал нормально. Я проверил документацию python, и там нет слоя от input_shape до ZeroPadding2D, поэтому я заключил input_shape в список, но безуспешно

keras_model_sequential() %>% 
  layer_zero_padding_2d(
     padding = c(1, 1),
     list(input_shape = c(224, 224, 3))
     ) 

Error in py_call_impl(callable, dots$args, dots$keywords) : AttributeError: 'dict' object has no attribute 'lower'

Наконец, я попробовал layer_zero_padding_2d(batch_size = c(224, 224, 3)), и он работал нормально, но когда я запускаю

model$load_weights("vgg_face_weights.h5")

vgg_face_descriptor <-
  keras_model(
    inputs = c(224,224,3),
    outputs = model$layers[1:36] 
   )

, я получаю эту ошибку

Error in py_call_impl(callable, dots$args, dots$keywords) : AttributeError: 'ZeroPadding2D' object has no attribute 'op'

python конфигурация

reticulate::py_config()
python:         /home/moh/.local/share/r-miniconda/envs/r-reticulate/bin/python
libpython:      /home/moh/.local/share/r-miniconda/envs/r-reticulate/lib/libpython3.6m.so
pythonhome:     /home/moh/.local/share/r-miniconda/envs/r-reticulate:/home/moh/.local/share/r-miniconda/envs/r-reticulate
version:        3.6.10 |Anaconda, Inc.| (default, May  8 2020, 02:54:21)  [GCC 7.3.0]
numpy:          /home/moh/.local/share/r-miniconda/envs/r-reticulate/lib/python3.6/site-packages/numpy
numpy_version:  1.18.1

информация о сеансе:

R version 4.0.0 (2020-04-24)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /home/moh/.local/share/r-miniconda/envs/r-reticulate/lib/libmkl_rt.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=ar_SA.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=ar_SA.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=ar_SA.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=ar_SA.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] data.table_1.12.8     ggmap_3.0.0           forcats_0.5.0         stringr_1.4.0         readr_1.3.1           tidyr_1.1.0          
 [7] tidyverse_1.3.0.9000  yardstick_0.0.6.9000  workflows_0.1.1       tune_0.1.0            tibble_3.0.1          rsample_0.0.6        
[13] recipes_0.1.12        purrr_0.3.4           parsnip_0.1.1         infer_0.5.1           ggplot2_3.3.0         dplyr_0.8.99.9003    
[19] dials_0.0.6           scales_1.1.1          broom_0.5.6           tidymodels_0.1.0      tensorflow_2.2.0.9000 keras_2.3.0.0.9000   

loaded via a namespace (and not attached):
  [1] readxl_1.3.1         backports_1.1.7      tidytext_0.2.4       plyr_1.8.6           igraph_1.2.5         sp_1.4-2            
  [7] splines_4.0.0        crosstalk_1.1.0.1    listenv_0.8.0        tfruns_1.4           SnowballC_0.7.0      usethis_1.6.1       
 [13] rstantools_2.0.0     inline_0.3.15        digest_0.6.25        foreach_1.5.0        htmltools_0.4.0      rsconnect_0.8.16    
 [19] fansi_0.4.1          memoise_1.1.0        magrittr_1.5         remotes_2.1.1        globals_0.12.5       modelr_0.1.8        
 [25] gower_0.2.1          matrixStats_0.56.0   xts_0.12-0           prettyunits_1.1.1    jpeg_0.1-8.1         colorspace_1.4-1    
 [31] rappdirs_0.3.1       rvest_0.3.5          haven_2.2.0          xfun_0.14            callr_3.4.3          crayon_1.3.4        
 [37] jsonlite_1.6.1       lme4_1.1-23          zeallot_0.1.0        survival_3.1-12      zoo_1.8-8            iterators_1.0.12    
 [43] glue_1.4.1           gtable_0.3.0         ipred_0.9-9          pkgbuild_1.0.8       rstan_2.19.3         DBI_1.1.0           
 [49] miniUI_0.1.1.1       Rcpp_1.0.4.6         xtable_1.8-4         reticulate_1.15-9000 GPfit_1.0-8          stats4_4.0.0        
 [55] lava_1.6.7           StanHeaders_2.19.2   prodlim_2019.11.13   DT_0.13              httr_1.4.1           htmlwidgets_1.5.1   
 [61] threejs_0.3.3        ellipsis_0.3.1       pkgconfig_2.0.3      loo_2.2.0            dbplyr_1.4.3         nnet_7.3-14         
 [67] tidyselect_1.1.0     rlang_0.4.6          DiceDesign_1.8-1     reshape2_1.4.4       later_1.0.0          cellranger_1.1.0    
 [73] munsell_0.5.0        tools_4.0.0          cli_2.0.2            generics_0.0.2       devtools_2.3.0       ggridges_0.5.2      
 [79] fastmap_1.0.1        fs_1.4.1             processx_3.4.2       knitr_1.28           RgoogleMaps_1.4.5.3  packrat_0.5.0       
 [85] future_1.17.0        nlme_3.1-147         whisker_0.4          mime_0.9             rstanarm_2.19.3      xml2_1.3.2          
 [91] tokenizers_0.2.1     compiler_4.0.0       bayesplot_1.7.1      shinythemes_1.1.2    rstudioapi_0.11      curl_4.3            
 [97] png_0.1-7            testthat_2.3.2       reprex_0.3.0         tidyposterior_0.0.2  lhs_1.0.2            statmod_1.4.34      
[103] stringi_1.4.6        ps_1.3.3             desc_1.2.0           lattice_0.20-41      Matrix_1.2-18        nloptr_1.2.2.1      
[109] markdown_1.1         shinyjs_1.1          vctrs_0.3.0          pillar_1.4.4         lifecycle_0.2.0      furrr_0.1.0         
[115] bitops_1.0-6         httpuv_1.5.2         R6_2.4.1             promises_1.1.0       gridExtra_2.3        janeaustenr_0.1.5   
[121] sessioninfo_1.1.1    codetools_0.2-16     pkgload_1.0.2        boot_1.3-25          colourpicker_1.0     MASS_7.3-51.6       
[127] gtools_3.8.2         assertthat_0.2.1     rprojroot_1.3-2      rjson_0.2.20         withr_2.2.0          shinystan_2.5.0     
[133] hms_0.5.3            parallel_4.0.0       grid_4.0.0           rpart_4.1-15         timeDate_3043.102    class_7.3-17        
[139] minqa_1.2.4          pROC_1.16.2          tidypredict_0.4.5    shiny_1.4.0.2        lubridate_1.7.8      base64enc_0.1-3     
[145] dygraphs_1.1.1.6   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...