Разница в результатах в зависимости от способа импорта keras - PullRequest
0 голосов
/ 20 сентября 2019

Используя API Keras с Tensorflow, я получаю разные результаты в зависимости от того, как я импортирую модуль Keras.

Я тестирую, как API высокого уровня Keras работает с различными платформами.При запуске простого примера mnist_cnn.py из репозитория git (https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py) я получаю очень разные результаты в зависимости от того, как я импортирую керасы.

Просто использование «import keras» приводит к потере теста: 0.058285388482175765 Testточность: 0,9814000129699707

, тогда как, если я использую импорт тензорного потока "из кераса тензорного потока в качестве кераса", я получаю Тестовые потери: 2,2431459686279296 Точность теста: 0,3012000024318695

Почему такая огромная разница?

С import keras только

Using TensorFlow backend.
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
2019-09-20 11:26:17.534247: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 26, 26, 32)        320       
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 24, 24, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 12, 12, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 9216)              0         
_________________________________________________________________
dense_1 (Dense)              (None, 128)               1179776   
_________________________________________________________________
dropout_2 (Dropout)          (None, 128)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 10)                1290      
=================================================================
Total params: 1,199,882
Trainable params: 1,199,882
Non-trainable params: 0
_________________________________________________________________
Train on 60000 samples, validate on 10000 samples
Epoch 1/1
60000/60000 [==============================] - 83s 1ms/step - loss: 0.2724 - accuracy: 0.9155 - val_loss: 0.0594 - val_accuracy: 0.9824
Test loss: 0.059407291333144534
Test accuracy: 0.9824000000953674 

С приведенными ниже утверждениями вместо просто "import keras"

import tensorflow as tf
print(tf.__version__)
from tensorflow import keras as keras

Я получаю следующие результаты

2.0.0-beta1
Using TensorFlow backend.
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
2019-09-20 11:28:37.691293: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 26, 26, 32)        320       
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 24, 24, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 12, 12, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 9216)              0         
_________________________________________________________________
dense_1 (Dense)              (None, 128)               1179776   
_________________________________________________________________
dropout_2 (Dropout)          (None, 128)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 10)                1290      
=================================================================
Total params: 1,199,882
Trainable params: 1,199,882
Non-trainable params: 0
_________________________________________________________________
Train on 60000 samples, validate on 10000 samples
Epoch 1/1
60000/60000 [==============================] - 75s 1ms/step - loss: 2.2834 - accuracy: 0.1298 - val_loss: 2.2431 - val_accuracy: 0.3012
Test loss: 2.2431459686279296
Test accuracy: 0.3012000024318695 

Включено выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...