Загрузка JPG в нейронную сеть: UnicodeDecodeError

Может кто-нибудь пролить свет на то, что не так с моим кодом и что именно вызывает эту ошибку? Я новичок в Python и хотел бы загрузить в эту сеть несколько файлов JPG. В основном я пытался решать проблемы методом проб и ошибок и устранять неполадки на этом веб-сайте. Этот материал причиняет мне боль, поэтому, пожалуйста, помогите новичку.

Заранее спасибо!

Даррен

Ошибка:

Traceback (most recent call last):
File "gan3.py", line 30, in <module>
content = open(os.path.join(path, filename)).read()
File "/Users/darren/miniconda3/lib/python3.7/codecs.py", line 322, in 
decode (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: 
invalid start byte

Код:

def loadImages(path):
    # return array of images
    imagesList = listdir(path)
    loadedImages = []
    for image in imagesList:
        img = PImage.open(path + image)
        loadedImages.append(img)
    return loadedImages
path = "input_data"
for filename in os.listdir(path):
    content = open(os.path.join(path, filename)).read()
    with open(path, 'rb') as f:
      text = f.read()

Здоровья, ребята!

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

amanb 07.04.2019 17:49

Хорошо, я отредактировал его, используя последнюю трассировку

Darren 07.04.2019 17:54
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

По умолчанию open открывает файлы в текстовом режиме. Когда вы читаете из него, Python автоматически пытается преобразовать ваши данные в строки, что не удается, это не кодированный текст UTF-8.

Если это изображение, вы должны открыть его в двоичном режиме:

content = open(os.path.join(path, filename), mode='rb').read()

Пожалуйста! Кстати, обратите внимание: если вы считаете, что полученный вами ответ решил вашу проблему, вы можете принять его (галочка слева) и/или проголосовать за него (стрелка вверх).

Thierry Lathuille 07.04.2019 18:20

Вы можете использовать библиотеку PIL для открытия файлов изображений:

from PIL import Image
#<----code---->
content = Image.open(os.path.join(path, filename))

Другие вопросы по теме