簡體   English   中英

禁止R中Keras的控制台輸出

[英]Suppress console output from Keras in R

我正在嘗試在docker環境中使用R腳本對要傳遞給它的輸入進行一些分類。 該腳本只應打印分類的輸出,但是我總是得到Using TensorFlow backend. 作為第一行的輸出,其中調用了Keras函數。

我做了一個小的工作例子。

library(keras)

v <- (c(1,2,3))
print(v)
vCat<-to_categorical(v)

我想將其顯示為輸出:

[1] 1 2 3

我明白了

[1] 1 2 3
Using TensorFlow backend.

因此,我在Google和stackoverflow上搜索了有關接收sinksuppress...以及其他內容的信息,例如,從R中自動輸出抑制到控制台,在R抑制一個命令的輸出,抑制 R中 輸出到控制台的自動輸出 然后,我嘗試了以下代碼:

library(keras, quietly = T)

v <- (c(1,2,3))
print(v) 
sink("/dev/null")
capture.output(suppressMessages(suppressWarnings(
suppressPackageStartupMessages(
vCat<-to_categorical(v) ))), file = "/dev/null")
sink()

這仍然不會抑制Using TensorFlow backend. 信息。 該腳本是在r test.R環境中使用r test.Rr test.R 注意:僅在Rstudio中運行腳本時,不會收到此消息。

這是Keras的問題(即不是R或Tensorflow的問題),正如我已經評論過的,有好幾個人對此表示抱怨 ,但是到目前為止,Keras維護人員尚未提出解決方案。

正如上面問題線程中所建議的那樣, 黑客是要找到keras/backend/__init__.py文件並注釋掉以下行

sys.stderr.write('Using TensorFlow backend.\n')

上次我檢查時,R中的Keras僅使用Tensorflow后端,因此您無需為__init__.py的其他后端選項重復此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM