2

我使用标准代码下载 MNIST_Fashion 数据集并运行 CNN,使用 Tensorflow 2 (2.3.1) 和 Keras (2.4.0)。该代码在没有 GPU 的普通笔记本电脑上运行良好。但是,在配备 NVIDIA RTX 2080 Max-Q 的笔记本电脑上,我收到错误消息:“没有算法有效!”。

Duo,您对如何在带 GPU 的笔记本电脑上运行代码有什么建议吗?

我使用的代码:

from __future__ import absolute_import, division, print_function, unicode_literals
from tensorflow import keras as ks
   
fashion_mnist = ks.datasets.fashion_mnist
(training_images, training_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

training_images = training_images / 255.0
test_images = test_images / 255.0
training_images = training_images.reshape(60000, 28, 28, 1)
test_images = test_images.reshape(10000, 28, 28, 1)

cnn_model = ks.models.Sequential()
cnn_model.add(ks.layers.Conv2D(50, (3, 3), activation='relu', padding='same', input_shape=(28, 28, 1), name='Conv2D_l'))
cnn_model.add(ks.layers.MaxPooling2D((2, 2), padding='same', name='MaxPooling_2D'))
cnn_model.add(ks.layers.Flatten(name='Flatten'))
cnn_model.add(ks.layers.Dense(50, activation='relu', name='Hidden_layer'))
cnn_model.add(ks.layers.Dense(10, activation='softmax', name='Output_layer'))

cnn_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

cnn_model.fit(training_images, training_labels, epochs=100)
4

2 回答 2

0

下次提供完整的错误消息可能会更有用。

我认为,添加这些行可能会解决您的问题:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
于 2021-01-09T19:58:44.397 回答
0

我在 Ubuntu 上运行,除了上面提到的 Frightera 之外,我总是会添加类似的内容:

gpu_devices = tf.config.experimental.list_physical_devices('GPU')
for device in gpu_devices: tf.config.experimental.set_memory_growth(device, True)

我通常会释放我购买的 GPU 内存,以杀死我之前运行的 python 进程。

Ctrl + Alt + T 打开终端:

sudo fuser -v /dev/nvidia*

一张桌子会出现,然后做

sudo kill -9 <PID number>

其中<PID number>是表中看到的python进程对应的编号。

在此之后,去重新运行您的代码并感到高兴。

于 2021-12-10T15:12:13.167 回答