trainLabels = files.upload()
labels = (trainLabels['LabelsTrain.txt']).splitlines()
trainLabels = [k.encode("utf-8") for k in labels]
Я использую Google Colab для обучения сети. Я читаю метки изображений из текстового файла, и они, похоже, закодированы.
Ярлыки отображаются как:
[b'53.239448782705836', b'24.01860123103387', b'32.0400103628653']
Поэтому я пытаюсь удалить 'b'
с помощью encode("utf-8")
.
Однако я получаю следующую ошибку:
AttributeError: 'bytes' object has no attribute 'encode'
Как бы мне решить эту ошибку?
Когда вы читаете файл, строки по-прежнему имеют тип байта, закодированный в utf
или ascii
.
В питоне encode
превращает строку в byte type
, а ваши данные уже имеют b
(байтовый тип).
Так что невозможно, чтобы byte
снова закодировал Unicode byte
в python. Это делает эту ошибку.
Он выглядит как читаемый в интерпретаторе Python (он просто отображается для чтения человеком), но реальные данные кодируются в байтовом формате Unicode.
Таким образом, использование decode
превращает байтстрем в текст Unicode в интерпретаторе Python, он обрабатывает текст без b
Итак, это будет хорошо работать с заменой encode
на decode
.
trainLabels = [k.decode("utf-8") for k in labels]