Colab: UnknownError: 使用 TF 2.5 时获取卷积算法失败
Posted
技术标签:
【中文标题】Colab: UnknownError: 使用 TF 2.5 时获取卷积算法失败【英文标题】:Colab: UnknownError: Failed to get convolution algorithm when using TF 2.5 【发布时间】:2021-11-14 22:03:44 【问题描述】:我在 Google Colab 上使用 tensorflow 2.5 时似乎遇到了问题。我认为 CUDA 版本和/或 CuDNN 版本之间存在一些不兼容。我将如何解决它们?
我检查了 colab 使用的CUDA version。 tf2.5 应该是 11.2。这意味着问题出在 CuDNN 上,对吧?
要重现的代码:
!pip install tensorflow==2.5.0
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
def my_model():
inputs = keras.Input(shape=(32, 32, 3))
x = layers.Conv2D(32, 3)(inputs)
x = layers.BatchNormalization()(x)
x = keras.activations.relu(x)
x = layers.MaxPooling2D()(x)
x = layers.Conv2D(64, 3)(x)
x = layers.BatchNormalization()(x)
x = keras.activations.relu(x)
x = layers.MaxPooling2D()(x)
x = layers.Conv2D(128, 3)(x)
x = layers.BatchNormalization()(x)
x = keras.activations.relu(x)
x = layers.Flatten()(x)
x = layers.Dense(64, activation="relu")(x)
outputs = layers.Dense(10)(x)
model = keras.Model(inputs=inputs, outputs=outputs)
return model
model = my_model()
model.compile(
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer=keras.optimizers.Adam(learning_rate=3e-4),
metrics=["accuracy"],
)
model.fit(x_train, y_train, batch_size=64, epochs=10, verbose=2)
model.evaluate(x_test, y_test, batch_size=64, verbose=2)
Error I get
我试过this answer,但我得到了同样的错误。
This answer 还建议我使用 tf.config.experimental.set_memory_growth(gpu, True)
但同样 - 这不起作用 - 我得到同样的错误。
我对使用 GPU 很感兴趣。我知道没有硬件加速一切正常。
【问题讨论】:
你的 cuDNN 版本是多少? 如何在 Google Colab 上检查 cuDNN? 将该硬件加速器设置为None
。这将在 colab 中禁用 GPU,您的代码将运行良好。
是的,但我想使用 GPU 运行代码。此代码仅用于重现性,但一般情况下我需要使用 GPU。
谷歌说,不要在他们的website上安装!pip install
的任何TensorFlow版本。所以,如果你想使用 GPU,那就用 TensorFlow 2.6 吧。
【参考方案1】:
在 this 文档中,Google 警告我们不要使用 !pip
命令安装/降级 TensorFlow 版本。
他们写道:
Colab 从源代码构建 TensorFlow 以确保与我们的 加速器舰队。通过 pip 从 PyPI 获取的 TensorFlow 版本 可能会遇到性能问题或根本无法工作。
这意味着如果我们安装任何其他 TensorFlow,该版本可能与他们提供的 GPU/TPU 配置不兼容。因此,只需使用 TensorFlow 2.6(这是最新版本),它与 2.5 版本非常相似。
【讨论】:
好的。很高兴知道。如果你使用默认的 tensorflow 遇到同样的错误会发生什么..以上是关于Colab: UnknownError: 使用 TF 2.5 时获取卷积算法失败的主要内容,如果未能解决你的问题,请参考以下文章
UnknownError:使用 Tensorflow-gpu 运行 LSTM 时无法获取卷积算法
pytorch 代码突然在 colab 上失败,系统上的 NVIDIA 驱动程序太旧了
Neo.DatabaseError.General.UnknownError - Java 堆空间 - Neo4j - Cypher