Я пытаюсь настроить конвейер изображений: загрузить изображения с диска в набор данных, масштабировать, генерировать исправления, обучать. Загрузка с диска происходит медленно, поэтому я хочу создать случайные данные для имитации реального изображения.
Я создал класс-генератор, который создает случайный массив чисел и преобразует его в тензор, а затем возвращает его. Затем я использую Dataset.from_generator, но получаю ошибку при попытке перебрать мои данные. Первоначально эта проблема возникла при передаче набора данных в model.fit, но я обнаружил, что могу вызвать ее раньше с помощью следующего:
W tensorflow/core/framework/op_kernel.cc:1829] INVALID_ARGUMENT: TypeError: `generator` yielded an element that did not match the expected structure. The expected structure was (tf.float32,), but the yielded element was [[[ 59.90327 5.024378 118.99237 ]...
[178.26884 200.46623 15.418176]]].
Traceback (most recent call last):
File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/data/ops/from_generator_op.py", line 204, in generator_py_func
flattened_values = nest.flatten_up_to(output_types, values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/data/util/nest.py", line 237, in flatten_up_to
return nest_util.flatten_up_to(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1541, in flatten_up_to
return _tf_data_flatten_up_to(shallow_tree, input_tree)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1570, in _tf_data_flatten_up_to
_tf_data_assert_shallow_structure(shallow_tree, input_tree)
File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1414, in _tf_data_assert_shallow_structure
raise TypeError(
TypeError: If shallow structure is a sequence, input must also be a sequence. Input has type: 'EagerTensor'.
Примечание: в трассировке стека «выданный элемент был...» отображает весь массив numpy, но я включил только пару фрагментов для наглядности.
Я пытаюсь настроить конвейер изображений: загрузить изображения с диска в набор данных, масштабировать, генерировать исправления, обучать. Загрузка с диска происходит медленно, поэтому я хочу создать случайные данные для имитации реального изображения. Я создал класс-генератор, который создает случайный массив чисел и преобразует его в тензор, а затем возвращает его. Затем я использую Dataset.from_generator, но получаю ошибку при попытке перебрать мои данные. Первоначально эта проблема возникла при передаче набора данных в model.fit, но я обнаружил, что могу вызвать ее раньше с помощью следующего: [code]import numpy as np import tensorflow as tf
for elem in iter(x_train): print(elem) [/code] [code]W tensorflow/core/framework/op_kernel.cc:1829] INVALID_ARGUMENT: TypeError: `generator` yielded an element that did not match the expected structure. The expected structure was (tf.float32,), but the yielded element was [[[ 59.90327 5.024378 118.99237 ]... [178.26884 200.46623 15.418176]]]. Traceback (most recent call last): File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/data/ops/from_generator_op.py", line 204, in generator_py_func flattened_values = nest.flatten_up_to(output_types, values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/data/util/nest.py", line 237, in flatten_up_to return nest_util.flatten_up_to( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1541, in flatten_up_to return _tf_data_flatten_up_to(shallow_tree, input_tree) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1570, in _tf_data_flatten_up_to _tf_data_assert_shallow_structure(shallow_tree, input_tree) File "/root/.virtualenvs/ga-python/lib/python3.12/site-packages/tensorflow/python/util/nest_util.py", line 1414, in _tf_data_assert_shallow_structure raise TypeError( TypeError: If shallow structure is a sequence, input must also be a sequence. Input has type: 'EagerTensor'. [/code] Примечание: в трассировке стека «выданный элемент был...» отображает весь массив numpy, но я включил только пару фрагментов для наглядности.