我在 win11 上運行的 wsl2 上使用 Ubuntu 20.04。要執行的代碼如下:
import tensorflow as tf
from tensorflow import keras
from keras.layers.convolutional import Conv2D, MaxPooling2D
import numpy as np
(X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(2500, input_shape=(784,), activation='relu'),
keras.layers.Dense(2000, activation='relu'),
keras.layers.Dense(1500, activation='relu'),
keras.layers.Dense(1000, activation='relu'),
keras.layers.Dense(500, activation='relu'),
keras.layers.Dense(10, activation='sigmoid')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
print(model.summary())
model.fit(X_train, y_train, epochs=500)
如果我在 CPU 上運行代碼,輸出如下:
Epoch 205/500
1875/1875 [==============================] - 80s 43ms/step - loss: 0.1887 - accuracy: 0.9466
Epoch 206/500
1875/1875 [==============================] - 79s 42ms/step - loss: 0.3433 - accuracy: 0.9484
Epoch 207/500
1875/1875 [==============================] - 79s 42ms/step - loss: 0.1987 - accuracy: 0.9690
Epoch 208/500
1875/1875 [==============================] - 80s 43ms/step - loss: 0.2632 - accuracy: 0.9582
但是,如果我在 docker(tensorflow/tensorflow:latest-gpu-py3-jupyter) 上運行相同的代碼,則輸出如下:
Epoch 205/500
60000/60000 [==============================] - 45s 752us/sample - loss: 9.5371 - accuracy: 0.0987
Epoch 206/500
60000/60000 [==============================] - 45s 749us/sample - loss: 9.5371 - accuracy: 0.0987
Epoch 207/500
60000/60000 [==============================] - 45s 749us/sample - loss: 9.5371 - accuracy: 0.0987
Epoch 208/500
60000/60000 [==============================] - 45s 745us/sample - loss: 9.5371 - accuracy: 0.0987
精度是恒定的。
安裝基于:
- https://www.youtube.com/watch?v=CO43b6XWHNI
- https://docs.nvidia.com/cuda/wsl-user-guide/index.html
在安裝程序中我沒有收到任何錯誤。
另一件事是在 gpu 上編譯模型所用的時間很長(超過 5 分鐘)。
提前感謝您的任何幫助/想法。
uj5u.com熱心網友回復:
您應該減少神經元、層數并在 中使用 softmax Dense(10),因為您有多類輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/475541.html
