Как исправить 'IndexError: индекс кортежа вне диапазона' в model.fit с тензорным потоком? - PullRequest
1 голос
/ 24 сентября 2019

Я пытаюсь создать CNN с Tensorflow и Keras с последовательным методом.Входные данные имеют (размер, 50, 50, 1) форму, а метки имеют (размер,).Размер - это количество данных в наборе данных.Проблема в том, что после компиляции, когда я вызываю метод fit для моей модели, я получаю ошибку индекса.См. Код ниже:

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Conv2D(32, 4, input_shape=(50, 50, 1), activation='relu', name="conv1"))
model.add(tf.keras.layers.Conv2D(64, 3, activation='relu', name="conv2"))
model.add(tf.keras.layers.Conv2D(128, 3, activation='relu', name="conv3"))
model.add(tf.keras.layers.Flatten(name='Flatten'))
model.add(tf.keras.layers.Dense(128, activation='relu', name="d1"))
model.add(tf.keras.layers.Dense(4, activation='softmax', name="output"))

# Compile the model
model.compile(
    loss="sparse_categorical_crossentropy",
    optimizer="Adam",
    metrics=["accuracy"]
)

model.fit(x_trains, y_labels, epochs=5, verbose=2, validation_data=0.33, shuffle=True)

И ошибка:

2019-09-24 13:59:40.902561: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Traceback (most recent call last):
  File "C:/Users/eloim/Documents/Programmation/Python/CNN_tf/face_train_seq.py", line 49, in <module>
    model.fit(x_trains, y_labels, epochs=5, verbose=2, validation_data=0.33, shuffle=True)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 728, in fit
    use_multiprocessing=use_multiprocessing)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 224, in fit
    distribution_strategy=strategy)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 564, in _process_training_inputs
    distribution_strategy=distribution_strategy)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 606, in _process_inputs
    use_multiprocessing=use_multiprocessing)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 479, in __init__
    batch_size=batch_size, shuffle=shuffle, **kwargs)
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 238, in __init__
    num_samples = set(int(i.shape[0]) for i in nest.flatten(inputs))
  File "C:\Users\{}\Anaconda3\envs\CNN_tf\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 238, in <genexpr>
    num_samples = set(int(i.shape[0]) for i in nest.flatten(inputs))
IndexError: tuple index out of range

В строке:

model.fit(x_trains, y_labels, epochs=5, verbose=2, validation_data=0.33, shuffle=True)

Я не понимаю природу этой ошибки.Как я могу избавиться от этого?Спасибо за вашу помощь.

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