У меня есть некоторые проблемы при запуске задания луча Apache в потоке данных.Код отлично работает на небольшом наборе данных, но при запуске большего пакетного задания в потоке данных я получаю следующее сообщение:
RuntimeError: InvalidArgumentError: indices [10925] = [889,43] выходит за границы: нужно 0<= index <[1238,43] [[{{transform / transform / SparseToDense}} = SparseToDense [T = DT_INT64, Tindices = DT_INT64, validate_indices = true, _device = "/ job: localhost / replica: 0 / task:0 / устройство: ЦП: 0 "] (преобразование / преобразование / StringSplit, преобразование / преобразование / SparseToDense / output_shape, преобразование / преобразование / compute_and_apply_vocabulary / apply_vocab / hash_table_Lookup, преобразование / преобразование / compute_and_apply_vocabable_xl_tub</p>
Взято из журнала в потоке данных.
Я выяснил, что он подключен к моей функции AnalyzeAndTransformDataset:
def preprocessing_fn(inputs):
words = tf.string_split(inputs['tweet'],DELIMITERS)
int_representation =tft.compute_and_apply_vocabulary(words,default_value=0,top_k=10000)
# The shape out here is the problem, i think
int_representation =
tft.sparse_tensor_to_dense_with_shape(int_representation,
[None,43])
outputs = inputs
outputs["int_representation"] = int_representation
return outputs
Цель - получить плотный выходной вектор длины 43 для каждого примера.Это будет использоваться для Сентиментального анализа в данных Твиттера в качестве домашнего проекта :)
Спасибо за любую помощь!
ОБНОВЛЕНИЕ:
Мне не удалось решить впроблема, но вместо этого преобразовал вектор в плотный вектор внутри моей модели оценки Tensorflow.Не то решение, на которое я надеялся, но оно работает!Также сообщили об этом в трансформации Tensorflow на GitHub.