Почему tf.image.decode_jpeg может декодировать png? - PullRequest
0 голосов
/ 30 августа 2018

Сегодня я тестировал некоторые тензорные (python) коды. Это нейронная сеть на знаменитом наборе MNIST.

Все работало хорошо, поэтому я просто прочитал коды и изучил структуру этой сети.

Когда дело дошло до ввода изображения, я обнаружил следующий код:

image_string = tf.read_file(filename)

image_decoded = tf.image.decode_jpeg(image_string, channels=3)

Код использует «decode_jpeg» вместо «decode_png». И я не увидел никакой ошибки.

Однако я на 100% уверен, что изображения имеют формат PNG.

Я использовал

od -c -b 1.png

, чтобы посмотреть на эти изображения, и они PNG.

Итак, почему "decode_jpeg" может работать на PNG? И есть ли потенциальная проблема, которая может быть вызвана этим?

1 Ответ

0 голосов
/ 30 августа 2018

Документация для тензорного потока гласит:

Эта операция также поддерживает декодирование PNG и неанимированных GIF, поскольку интерфейс один и тот же, хотя использовать tf.image.decode_image удобнее.

По сути, это было дизайнерское решение, потому что интерфейс такой же, чтобы просто обрабатывать его, а не выдавать ошибку, которая вынуждает пользователя использовать правильный вызов API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...