Проблема в моем коде из-за tf.shape и Tensor.shape. `tf.shape` и `Tensor.shape`, оба не работают ⇐ Python
Проблема в моем коде из-за tf.shape и Tensor.shape. `tf.shape` и `Tensor.shape`, оба не работают
Я написал конвейер обнаружения объектов DETR с нуля в Tensorflow.
DETR: Ссылка на Kaggle Notebook: содержит весь код; Создайте собственную копию блокнота, чтобы воспроизвести проблему
DETR: ссылка на Github
Я протестировал все отдельные компоненты конвейера, и они работают.
Но когда я начинаю обучать его на своем наборе данных (в форме tf.data.Dataset)
Ссылка на часть кода, которая выдает ошибку
ValueError: в пользовательском коде: Файл «/tmp/ipykernel_19/4115406382.py», строка 7, в train_step * y_pred = matcher(y_train, y_pred) Файл "/tmp/ipykernel_19/968499204.py", строка 64, в __call__ * class_prob, bbox_pred = Matcher.match(class_true, bbox_true, class_prob, bbox_pred) Файл "/tmp/ipykernel_19/968499204.py", строка 53, в совпадении * C = Matcher.batched_cost_matrix(class_true, bbox_true, class_prob, bbox_pred) Файл «/tmp/ipykernel_19/968499204.py», строка 46, в пакетной_костной_матрице * tf.range(tf.shape(class_true)[0]), fn_output_signature=tf.float32 Файл «/tmp/ipykernel_19/968499204.py», строка 22, в Compute_cost_matrix * N = tf.shape(class_true)[0] ValueError: индекс среза 0 измерения 0 выходит за пределы. for '{{nodemap/ while/strided_slice_4}} = StridedSlice[Index=DT_INT32, T=DT_INT32, Begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, Shrink_axis_mask=1](map/ while/Shape, карта/пока/strided_slice_4/stack, карта/пока/strided_slice_4/stack_1, карта/пока/strided_slice_4/stack_2)' с входными формами: [0], [1], [1], [1] и с вычисленными входными тензорами: input[1] = , input[2] = , input[3] = . Когда я печатаю форму class_true с помощью tf.shape, я получаю Tensor("Shape_2:0", shape=(1,), dtype=int32) который я не понимаю.
При использовании Tensor.shape возвращается фигура с None, поэтому я снова получаю ошибку.
Но распечатывая его во время индивидуального тестирования (не обучения), я получаю правильную форму class_true как tf.Tensor([42], shape=(1,), dtype=int32) Как это исправить?
Я написал конвейер обнаружения объектов DETR с нуля в Tensorflow.
DETR: Ссылка на Kaggle Notebook: содержит весь код; Создайте собственную копию блокнота, чтобы воспроизвести проблему
DETR: ссылка на Github
Я протестировал все отдельные компоненты конвейера, и они работают.
Но когда я начинаю обучать его на своем наборе данных (в форме tf.data.Dataset)
Ссылка на часть кода, которая выдает ошибку
ValueError: в пользовательском коде: Файл «/tmp/ipykernel_19/4115406382.py», строка 7, в train_step * y_pred = matcher(y_train, y_pred) Файл "/tmp/ipykernel_19/968499204.py", строка 64, в __call__ * class_prob, bbox_pred = Matcher.match(class_true, bbox_true, class_prob, bbox_pred) Файл "/tmp/ipykernel_19/968499204.py", строка 53, в совпадении * C = Matcher.batched_cost_matrix(class_true, bbox_true, class_prob, bbox_pred) Файл «/tmp/ipykernel_19/968499204.py», строка 46, в пакетной_костной_матрице * tf.range(tf.shape(class_true)[0]), fn_output_signature=tf.float32 Файл «/tmp/ipykernel_19/968499204.py», строка 22, в Compute_cost_matrix * N = tf.shape(class_true)[0] ValueError: индекс среза 0 измерения 0 выходит за пределы. for '{{nodemap/ while/strided_slice_4}} = StridedSlice[Index=DT_INT32, T=DT_INT32, Begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, Shrink_axis_mask=1](map/ while/Shape, карта/пока/strided_slice_4/stack, карта/пока/strided_slice_4/stack_1, карта/пока/strided_slice_4/stack_2)' с входными формами: [0], [1], [1], [1] и с вычисленными входными тензорами: input[1] = , input[2] = , input[3] = . Когда я печатаю форму class_true с помощью tf.shape, я получаю Tensor("Shape_2:0", shape=(1,), dtype=int32) который я не понимаю.
При использовании Tensor.shape возвращается фигура с None, поэтому я снова получаю ошибку.
Но распечатывая его во время индивидуального тестирования (не обучения), я получаю правильную форму class_true как tf.Tensor([42], shape=(1,), dtype=int32) Как это исправить?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка: метод add(Shape) в типе ArrayList
неприменим для аргументов (Shape.Rectangle).
Anonymous » » в форуме JAVA - 0 Ответы
- 54 Просмотры
-
Последнее сообщение Anonymous
-