моя модель тензорного потока застревает до первой эпохи - PullRequest
0 голосов
/ 10 марта 2020

ОС: windows 10 TensorFlow: 2.0.0 Керас: 2.2.4

Я пытаюсь обучить CNN для набора данных MNIST. Я загружаю данные с помощью модуля python -mnist. когда я пытаюсь запустить код, он застревает до начала эпох. мой код:

from mnist import MNIST
import tensorflow as tf
from tensorflow import keras
mndata=MNIST('data')
train_images,train_labels=mndata.load_training()
test_images,test_labels=mndata.load_testing()


model= keras.Sequential([
    keras.layers.Input(shape=784),
    keras.layers.Dense(256,activation='relu'),
    keras.layers.Dense(64,activation='relu'),
    keras.layers.Dense(10,activation='softmax')
    ])

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

model.fit(train_images,train_labels, validation_split = 0.2,epochs=50)





test_loss, test_accuracy= model.evaluate(test_images, test_labels)

print('Accuracy=', test_accuracy)


model.save('NetworkModel.h5')

мой вывод:

2020-03-10 08:10:18.061068: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations:  AVX AVX2
To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags.
2020-03-10 08:10:18.069858: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 4. Tune using inter_op_parallelism_threads for best performance. 

я что-то забыл?

1 Ответ

1 голос
/ 11 марта 2020

Пожалуйста, обратитесь к рабочему коду для обучения CNN для набора данных MNIST

(ОС: windows 10, TensorFlow: 2.0.0 и Keras: 2.2.4)

try:
  # %tensorflow_version only exists in Colab.
  %tensorflow_version 2.x
except Exception:
  pass

import tensorflow as tf 
print("Tensorflow Version:", tf.__version__)
from __future__ import absolute_import, division, print_function, unicode_literals
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
import numpy as np
# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras
#### Import the Fashion MNIST dataset
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

train_images1 = train_images[:,:,:,np.newaxis]
test_images1 = test_images[:,:,:,np.newaxis]
##Scale these values to a range of 0 to 1 before feeding them to the neural network model
### Normalize pixel values to be between 0 and 1
train_images = train_images / 255.0
test_images = test_images / 255.0
##Create the convolutional base
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28,28,1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.summary()
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))
model.summary()
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
###Train the model
##Feed the model
history = model.fit(train_images1, train_labels, epochs=10, 
                    validation_data=(test_images1, test_labels))
###Evaluate the model
plt.plot(history.history['accuracy'], label='train_accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0.5, 1])
plt.legend(loc='lower right')

test_loss, test_acc = model.evaluate(test_images1,  test_labels, verbose=2)
...