为什么 Tensorflow 官方 CNN 示例在我的机器上停留在 10% 的准确率= 随机预测?

问题描述

我正在运行 Tensorflow 官方网站上的 CNN 示例 - (https://www.tensorflow.org/tutorials/images/cnn) 我已经按原样运行了笔记本,没有做任何修改

我的准确率(训练准确率)停留在 10%。 我尝试仅使用前 10 个(图像、标签)对进行过拟合,但结果仍然相同。网络就是不学习。

这是我的 model.summary() -

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None,30,32)        896       
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None,15,32)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None,13,64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None,6,64)          0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None,4,64)          36928     
_________________________________________________________________
flatten (Flatten)            (None,1024)              0         
_________________________________________________________________
dense (Dense)                (None,64)                65600     
_________________________________________________________________
dense_1 (Dense)              (None,10)                650       
=================================================================
Total params: 122,570
Trainable params: 122,570
Non-trainable params: 0

这是我的编译和拟合代码:-

model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])

history = model.fit(train_images,train_labels,epochs=10,validation_data=(test_images,test_labels))

模型训练日志:-

Epoch 1/10
1563/1563 [==============================] - 14s 9ms/step - loss: 2.3072 - accuracy: 0.0993 - val_loss: 2.3026 - val_accuracy: 0.0994
Epoch 2/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3028 - accuracy: 0.0996 - val_loss: 2.3047 - val_accuracy: 0.1001
Epoch 3/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3029 - accuracy: 0.0998 - val_loss: 2.3027 - val_accuracy: 0.1000
Epoch 4/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3038 - accuracy: 0.0986 - val_loss: 2.3054 - val_accuracy: 0.1007
Epoch 5/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3031 - accuracy: 0.0988 - val_loss: 2.3026 - val_accuracy: 0.0999
Epoch 6/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3031 - accuracy: 0.0985 - val_loss: 2.3159 - val_accuracy: 0.0999
Epoch 7/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3221 - accuracy: 0.0995 - val_loss: 2.9215 - val_accuracy: 0.1003
Epoch 8/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3035 - accuracy: 0.0973 - val_loss: 2.3270 - val_accuracy: 0.1001
Epoch 9/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3028 - accuracy: 0.0999 - val_loss: 2.3399 - val_accuracy: 0.0984
Epoch 10/10
1563/1563 [==============================] - 3s 2ms/step - loss: 2.3054 - accuracy: 0.1001 - val_loss: 2.3116 - val_accuracy: 0.1002

我已经检查了绘制的数据,它不是随机的。标签是正确的,我能看到的数据没有问题。

我在 Nvidia RTX 3060 Ti 上的 Tensorflow 2.2 上运行此代码

__CUDA information__
CUDA Device Initialized                       : True
CUDA Driver Version                           : 11010
CUDA Detect Output:
Found 1 CUDA devices

cudnn                     7.6.5                cuda10.1_0 

请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)