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 时获取卷积算法失败的主要内容,如果未能解决你的问题,请参考以下文章

colab使用trick

colab使用总结

CUDA 错误:在 Colab 上触发了设备端断言

UnknownError:使用 Tensorflow-gpu 运行 LSTM 时无法获取卷积算法

pytorch 代码突然在 colab 上失败,系统上的 NVIDIA 驱动程序太旧了

Neo.DatabaseError.General.UnknownError - Java 堆空间 - Neo4j - Cypher