2017-02-20 4 views
0

この光沢のあるアプリは、次のものから構築されています。here 基本的にR光沢のテンソルフローのPythonを使用しています。私の主な質問は、Rで実行するPyコードを取得している。Tensorflow classify_image

編集:私はいくつかの変更を加えることによって実行することができました。すべてが実行されます。しかし、単語クラウドはありません。また、光沢を帯びた出力を得ることもできません。イメージをアップロードすると、出力はRstudioのコンソールに表示されます。

library(wordcloud) 
shinyServer(function(input, output) { 
    PYTHONPATH <- "C:/Program Files/Anaconda3" #should look like /Users/yourname/anaconda/bin if you use anaconda python distribution in OS X 
    CLASSIFYIMAGEPATH <- "C:/Program Files/Anaconda3/Lib/site-packages/tensorflow/models/image/imagenet" #should look like ~/anaconda/lib/python2.7/site-packages/tensorflow/models/image/imagenet 

    outputtext <- reactive({ 
     ###This is to compose image recognition template### 
     inFile <- input$file1 #This creates input button that enables image upload 
     template <- paste0("python"," ", "classify_image.py") #Template to run image recognition using Python 
     if (is.null(inFile)) 
     {system(paste0(template," --image_file /tmp/imagenet/cropped_panda.jpg"))} else { #Initially the app classifies cropped_panda.jpg, if you download the model data to a different directory, you should change /tmp/imagenet to the location you use. 
     system(paste0(template," --image_file ",inFile$datapath)) #Uploaded image will be used for classification 
     } 



     }) 

    output$answer <- renderPrint({outputtext()}) 

    output$plot <- renderPlot({ 
     ###This is to create wordcloud based on image recognition results### 
     df <- data.frame(gsub(" *\\(.*?\\) *", "", outputtext()),gsub("[^0-9.]", "", outputtext())) #Make a dataframe using detected objects and scores 
     names(df) <- c("Object","Score") #Set column names 
     df$Object <- as.character(df$Object) #Convert df$Object to character 
     df$Score <- as.numeric(as.character(df$Score)) #Convert df$Score to numeric 
     s <- strsplit(as.character(df$Object), ',') #Split rows by comma to separate rows 
     df <- data.frame(Object=unlist(s), Score=rep(df$Score, sapply(s, FUN=length))) #Allocate scores to split words 
     # By separating long categories into shorter terms, we can avoid "could not be fit on page. It will not be plotted" warning as much as possible 
     wordcloud(df$Object, df$Score, scale=c(4,2), 
        colors=brewer.pal(6, "RdBu"),random.order=F) #Make wordcloud 
    }) 

    output$outputImage <- renderImage({ 
     ###This is to plot uploaded image### 
     if (is.null(input$file1)){ 
     outfile <- "/tmp/imagenet/cropped_panda.jpg" 
     contentType <- "image/jpg" 
     #Panda image is the default 
     }else{ 
     outfile <- input$file1$datapath 
     contentType <- input$file1$type 
     #Uploaded file otherwise 
     } 

     list(src = outfile, 
      contentType=contentType, 
      width=300) 
    }, deleteFile = TRUE) 
}) 

Rstudioのコンソール上の出力の例:

pug, pug-dog (score = 0.89841) bull mastiff (score = 0.01825) Brabancon griffon (score = 0.01114) French bulldog (score = 0.00161) Pekinese, Pekingese, Peke (score = 0.00091) W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_def_util.cc:332] Op BatchNormWithGlobalNormalization is deprecated. It will cease to work in GraphDef version 9. Use tf.nn.batch_normalization().

は、誰もが何が起こっているか知っていますか?

- 私はさまざまな方法を試してみましたが、私は印刷出力(使用renderPrint、rendertext ...等)、ここでOK

+0

Windows上にいますか? –

+0

はい私は悲しいことです:/ – Germ

答えて

0

を得るカントは、2つの方法があります。 RPython for Windowsをインストールする[Linux/Mac for CRAN] zipとしてダウンロード[zipオプションとしてクローン/ダウンロード] - https://github.com/cjgb/rPython-win

b。解凍し、フォルダの名前をrPythonに変更し、configure.winをあなたのpythonのインストールを指すように変更してください[それは私が推測するAnacondaでなければなりません]

c。

library(devtools) # devtools needs to be installed - install.packages("devtools") 
install("C:/Users/username/Downloads/rPython") # location where you have downloaded rPython 

マイ出力 - -

Installing rPython 
"C:/PROGRA~1/R/R-33~1.2/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD \ 
    INSTALL "C:/Users/vk046010/Downloads/rPython" \ 
    --library="C:/Users/vk046010/Documents/R/win-library/3.3" --install-tests 

* installing *source* package 'rPython' ... 
** libs 
Warning: this package has a non-empty 'configure.win' file, 
so building only the main architecture 

c:/Rtools/mingw_64/bin/gcc -I"C:/PROGRA~1/R/R-33~1.2/include" -DNDEBUG  -I"d:/Compiler/gcc-4.9.3/local330/include" -I"C:/Anaconda2/include" -O2 -Wall -std=gnu99 -mtune=core2 -c pycall.c -o pycall.o 
c:/Rtools/mingw_64/bin/gcc -shared -s -static-libgcc -o rPython.dll tmp.def pycall.o -LC:/Anaconda2/libs -lpython27 -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-33~1.2/bin/x64 -lR 
installing to C:/Users/vk046010/Documents/R/win-library/3.3/rPython/libs/x64 
** R 
** inst 
** preparing package for lazy loading 
** help 
*** installing help indices 
** building package indices 
** testing if installed package can be loaded 
* DONE (rPython) 

D Rのコードを実行します。これをRStudioから実行します。

# tensorflow caller 
library("rPython") 


py_code <- " 
def classify_image(image_loc): 
    # load tensorflow and predict here 
    return image_loc+'person' # return the result here 
" 
python.exec(py_code) 

python.call("classify_image", 'path/loc/to/image/') 

python.callの出力は、探しているものでなければなりません。

私はそうはいない個人保証する前にこれを行っていません。あなたはRそのものにテンソルフローをインストールすることができます - https://github.com/rstudio/tensorflow

+0

こんにちはvivek、どうすればconfig.winを変更しますか?私はこのエラーコンパイルを終了しました。 make:*** [pycall.o] Error 1 警告:「make -f」コマンドを実行しています。Makevars.win「-f」D:/R-3.3.2/etc/x64/Makeconf「-f」D:/r-3.3.2/share/make/winshlib.mk "SHLIB =" rPython.dll "WIN = 64 TCLBIN = 64 OBJECTS =" pycall.o "'ステータスが2 ERROR:' rPython 'パッケージのコンパイルに失敗しました * 'D:/R-3.3.2/library/rPython'を削除する エラー:コマンドが失敗しました( – Germ

+0

) 'echo 'を変更してください。PKG_LIBS = -LC:/ python27/libs -lpython27'> src/makevars.win echo ' PKG_CFLAGS = -I "C:/ Python27/include" '>> src/makevars.win'からPythonがインストールされている場所 –