张量流有问题吗?
Posted
技术标签:
【中文标题】张量流有问题吗?【英文标题】:Is it there something wrong with tensorflow? 【发布时间】:2021-10-27 19:04:13 【问题描述】:您好,我已经使用tensorflow
和keras
有一段时间了。我使用这个包来构建神经网络。当我在 CPU 上工作时,我习惯于收到这样的消息:
您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX AVX2
但现在,更新软件包后,我收到以下警告:
2021-08-27 18:48:09.068353:W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库“cudart64_110.dll”; dlerror: 找不到 cudart64_110.dll
2021-08-27 18:48:09.069154: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] 如果您的机器上没有设置 GPU,请忽略上面的 cudart dlerror。
2021-08-27 18:48:46.432183:W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库“nvcuda.dll”; dlerror: 找不到 nvcuda.dll
2021-08-27 18:48:46.432971:W tensorflow/stream_executor/cuda/cuda_driver.cc:269] 调用 cuInit 失败:未知错误 (303)
2021-08-27 18:48:46.433910: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] 检索主机的 CUDA 诊断信息:LAPTOP-RR404INI
2021-08-27 18:48:46.434837:I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] 主机名:LAPTOP-RR404INI
2021-08-27 18:48:46.436222: I tensorflow/core/platform/cpu_feature_guard.cc:142] 这个 TensorFlow 二进制文件使用 oneAPI 深度神经网络库 (oneDNN) 进行了优化,以在性能方面使用以下 CPU 指令 -关键操作:AVX AVX2
要在其他操作中启用它们,请使用适当的编译器标志重新构建 TensorFlow。
Tensorflow 按预期工作,所以如果这些警告是一个问题,我现在想知道如何解决?
我已尝试通过使用问题Installation of Keras and TensorFlow in R #1136 中的以下代码再次卸载并安装所有内容来解决此问题,但我还是收到了警告:
install.packages("remotes")
remotes::install_github(paste0("rstudio/", c("reticulate", "tensorflow", "keras")))
reticulate::install_miniconda()
keras::install_keras()
【问题讨论】:
【参考方案1】:您看到警告是因为默认的 tensorflow 包能够利用 GPU 设备。初始化时,它会查找 GPU 设备 + GPU 驱动程序,如果找不到,则会发出您看到的警告。如果您没有 GPU,或者不希望 tensorflow 使用 GPU,则可以忽略它们。
如果您发现警告特别烦人,您可以安装仅 CPU 版本的 tensorflow:
keras::install_keras(tensorflow="cpu")
或者您可以在加载 tensorflow 之前通过设置此环境变量来消除警告:
Sys.setenv("TF_CPP_MIN_LOG_LEVEL"="2")
# 0 = all messages are logged (default behavior)
# 1 = INFO messages are not printed
# 2 = INFO and WARNING messages are not printed
# 3 = INFO, WARNING, and ERROR messages are not printed
【讨论】:
感谢您的回答,关于您的第二个选项我试过但没有奏效,我明白了:Sys.getenv("TF_CPP_MIN_LOG_LEVEL" = "2") Error in Sys.getenv(TF_CPP_MIN_LOG_LEVEL = "2") : unused argument (TF_CPP_MIN_LOG_LEVEL = "2")
。我在加载tensorflow之前和之后都试过了,我得到了相同的输出。
哎呀,应该是Sys.setenv
您的答案有效,仅安装了 tensorflow 的 cpu 版本并返回到通常的警告,但您的第二次解决方法似乎不起作用。你能告诉我这个配置是否也包括默认警告或只是新的警告。我什至试试这个:Sys.setenv("TF_CPP_MIN_LOG_LEVEL"="3")
在加载张量流之前和之后以上是关于张量流有问题吗?的主要内容,如果未能解决你的问题,请参考以下文章