Модель Tensorflow на GPU: "Запрошенная фигура имеет [неоправданно большое количество] значений"

Я пытаюсь запустить простую последовательную модель Tensorflow с оболочкой Keras на графическом процессоре AMD (AMD Vega 20, Tensorflow 2.2.0, Keras 2.4.3), но сталкиваюсь со странной проблемой при попытке разместить:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 15 values, but the requested shape has 15976860750

Кажется, что размер пакета принимается как количество значений для входного тензора, и каким-то образом увеличивается размер "запрошенной формы". Определение модели следующее:

def create_model(optimizer='rmsprop', init='glorot_uniform'):
    # create model
    model = Sequential()
    model.add(Dense(12,input_dim=8, kernel_initializer=init, activation='relu'))
    model.add(Dense(8, kernel_initializer=init, activation='relu'))
    model.add(Dense(1, kernel_initializer=init, activation='sigmoid'))
    # Compile model
    model.compile(loss='binary_crossentropy',optimizer=optimizer,metrics=['accuracy'])
    return model
modelClf = KerasClassifier(build_fn=create_model, verbose=1, batch_size=15, epochs=9)

Та же самая модель отлично работает, если я запускаю ее только на ЦП, на машине, на которой не установлен графический процессор. Он также хорошо работает с реализацией CUDA11 на другом компьютере, на котором работает графический процессор NVidia (с Tensorflow 1.15.3 и Keras 2.3.1).

Я понятия не имею, почему он будет запрашивать размер памяти графического процессора в качестве размера ввода в этой более поздней версии Tensorflow, и только при наличии графического процессора AMD. Есть ли что-то очевидное, что я могу ошибиться с конфигурацией здесь?

РЕДАКТИРОВАТЬ: В ответ на комментарии ниже после некоторой настройки "запрошенный размер" каким-то образом связан с размером пакета, а не с памятью графического процессора, как предполагалось (число, по-видимому, было совпадением - установка размера пакета на 10 дает "запрошенный размер" из 1092616192 вместо). Входные данные - это простой фрейм данных панды с 8 значениями в каждой строке (как определено с помощью input_dim, и, как уже упоминалось, это отлично работает с той же реализацией на других машинах).

Ошибка возникает во время вызова fit() для обучения - по выходным данным я вижу, что он получает около 5 эпох, прежде чем вот-вот вылетит. Отслеживание: (с "~/rocm/keras" просто путь к тому месту, где у меня установлены пакеты python для этой среды)

    File "~/rocm/keras/tensorflow/python/keras/wrappers/scikit_learn.py", line 223, in fit
      return super(KerasClassifier, self).fit(x, y, **kwargs)
    File "~/rocm/keras/tensorflow/python/keras/wrappers/scikit_learn.py", line 166, in fit
         history = self.model.fit(x, y, **fit_args)
    File "~/rocm/keras/tensorflow/python/keras/engine/training.py", line 66, in _method_wr    apper
      return method(self, *args, **kwargs)
    File "~/rocm/keras/tensorflow/python/keras/engine/training.py", line 848, in fit
      tmp_logs = train_function(iterator)
    File "~/rocm/keras/tensorflow/python/eager/def_function.py", line 580, in __call__
      result = self._call(*args, **kwds)
    File "~/rocm/keras/tensorflow/python/eager/def_function.py", line 611, in _call
      return self._stateless_fn(*args, **kwds)  # pylint: disable=not-callable
    File "~/rocm/keras/tensorflow/python/eager/function.py", line 2420, in __call__
      return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
    File "~/rocm/keras/tensorflow/python/eager/function.py", line 1665, in _filtered_call
      self.captured_inputs)
    File "~/rocm/keras/tensorflow/python/eager/function.py", line 1746, in _call_flat
      ctx, args, cancellation_manager=cancellation_manager))
    File "~/rocm/keras/tensorflow/python/eager/function.py", line 598, in call
      ctx=ctx)
    File "~/rocm/keras/tensorflow/python/eager/execute.py", line 60, in quick_execute
      inputs, attrs, num_outputs)
  tensorflow.python.framework.errors_impl.InvalidArgumentError:  Input to reshape is a tensor with 10 values, but the requested shape has 1092616192

0 ответов

Другие вопросы по тегам