Как я могу использовать tf.string split () в tensorflow?

Я хочу получить расширение файлов изображений для вызова другого декодера изображений, и я обнаружил, что есть функция под названием tf.string_split в tensorflow r0.11.

filename_queue = tf.train.string_input_producer(filenames, shuffle=shuffle)
reader = tf.WholeFileReader()
img_src, img_bytes = reader.read(filename_queue)
split_result = tf.string_split(img_src, '.')

но когда я запускаю его, я получаю эту ошибку:

ValueError: Shape must be rank 1 but is rank 0 for 'StringSplit' (op: 'StringSplit') with input shapes: [], [].

Я думаю, что это может быть вызвано выводом формы img_src. Я пытаюсь использовать img_src.set_shape([1,]) чтобы исправить это, но, кажется, не работает, я получаю эту ошибку:

ValueError: Shapes () and (1,) are not compatible

кроме того, я не могу получить форму img_src используя

tf.Print(split_result, [tf.shape(img_src)],'img_src shape=')

результат img_src shape=[]. Но если я использую следующий код:

tf.Print(split_result, [img_src],'img_src=')

результат img_src=test_img/test1.png. Я делаю что-то не так?

1 ответов


просто пакет img_src в тензор.

split_result = tf.string_split([img_src], '.')